【发布时间】:2023-03-08 09:05:01
【问题描述】:
我想使用QAudioRecorder 来录制来自麦克风的音频。我的问题是,如果有正在进行的 Skype 通话或其他应用程序会尝试使用麦克风,这会导致一些错误,还是该应用程序和我的应用程序会接收相同的音频输入数据?
同样,我可以使用QCamera 和QMediaRecorder 访问已经在使用的网络摄像头吗?
【问题讨论】:
我想使用QAudioRecorder 来录制来自麦克风的音频。我的问题是,如果有正在进行的 Skype 通话或其他应用程序会尝试使用麦克风,这会导致一些错误,还是该应用程序和我的应用程序会接收相同的音频输入数据?
同样,我可以使用QCamera 和QMediaRecorder 访问已经在使用的网络摄像头吗?
【问题讨论】:
是的,这会很好,不会有任何错误。两个应用程序将接收相同的音频输入数据。我使用 Windows 的录音机程序和使用以下代码构建的简单 Qt 程序测试了同时录制相同的东西,结果是两个输出文件都正确录制了声音:
#include <QApplication>
#include <QAudioRecorder>
#include <QPushButton>
#include <QUrl>
int main(int argc, char **argv){
QApplication app(argc, argv);
QAudioRecorder *audioRecorder = new QAudioRecorder;
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/amr");
audioSettings.setQuality(QMultimedia::HighQuality);
audioRecorder->setEncodingSettings(audioSettings);
audioRecorder->setOutputLocation(QUrl::fromLocalFile("C:\\Users\\dduck\\Desktop\\test.amr"));
QPushButton b("Start");
QObject::connect(&b, &QPushButton::clicked, [&](){
if(b.text() == "Start"){
audioRecorder->record();
b.setText("Stop");
}
else{
audioRecorder->stop();
app.quit();
}
});
b.show();
return app.exec();
}
我认为如果您与 Skype 同时运行该程序,它也会起作用。
所以是的,Qt 程序可以在处理输入音频的同时处理其他程序。
【讨论】: