我有一个QAudioRecorder对象,音频录制成功,但录音保存在默认目录中,我如何指定我的位置来存储录音?使用QAudioRecorder::setOutputLocation()失败。
QAudioRecorder
QAudioRecorder::setOutputLocation()
jq6vz3qz1#
我遇到了完全相同的问题,它只是缺少file:///像这样修改你的路径,它会工作:
file:///
recorder->setOutputLocation(QUrl("file:///C:/mypath/test123.mp3"));
nkhmeac62#
QAudioRecorder类继承了QMediaRecorder,这个类有一个属性,名为outputLocation,并带有Access函数:
QUrl outputLocation() const bool setOutputLocation(const QUrl &location)
你可以做到这一点...这里更多信息:https://doc.qt.io/qt-5/qmediarecorder.html#outputLocation-prop
vq8itlhq3#
documentation提供了一些很好的例子来说明如何使用setOutPutLocation()。
setOutPutLocation()
audioRecorder = new QAudioRecorder; QAudioEncoderSettings audioSettings; audioSettings.setQuality(QMultimedia::HighQuality); audioRecorder->setEncodingSettings(audioSettings); audioRecorder->setOutputLocation(QUrl::fromLocalFile("file.mp3")); audioRecorder->record();
它也可以与绝对路径一起使用:
audioRecorder->setOutputLocation(QUrl("file:///C:/path/file.mp3"));
根据文档,setOutPutLocation():
***设置输出位置,如果操作成功则返回。***如果输出位置的文件已经存在,则应覆盖该文件。
位置可以是相对的,也可以是空的;在这种情况下,服务应该使用系统特定的位置和文件命名方案。开始记录后,后端应使用actualLocationChanged()信号报告实际文件位置。为了确保你的方法调用可以正常工作,你可以在调用它的时候查看返回值。或者你可以调用这个方法:https://doc.qt.io/qt-5/qmediarecordercontrol.html#outputLocation将:返回当前使用的输出位置。如果setOutPutLocation()成功,outputLocation()应该返回相同的值。
outputLocation()
3条答案
按热度按时间jq6vz3qz1#
我遇到了完全相同的问题,它只是缺少
file:///
像这样修改你的路径,它会工作:
nkhmeac62#
QAudioRecorder类继承了QMediaRecorder,这个类有一个属性,名为outputLocation,并带有Access函数:
你可以做到这一点...这里更多信息:https://doc.qt.io/qt-5/qmediarecorder.html#outputLocation-prop
vq8itlhq3#
documentation提供了一些很好的例子来说明如何使用
setOutPutLocation()
。它也可以与绝对路径一起使用:
根据文档,
setOutPutLocation()
:***设置输出位置,如果操作成功则返回。***如果输出位置的文件已经存在,则应覆盖该文件。
位置可以是相对的,也可以是空的;在这种情况下,服务应该使用系统特定的位置和文件命名方案。
开始记录后,后端应使用actualLocationChanged()信号报告实际文件位置。
为了确保你的方法调用可以正常工作,你可以在调用它的时候查看返回值。或者你可以调用这个方法:https://doc.qt.io/qt-5/qmediarecordercontrol.html#outputLocation将:
返回当前使用的输出位置。
如果
setOutPutLocation()
成功,outputLocation()
应该返回相同的值。