【问题标题】:Can input audio be processed by more apps at once with Qt?使用 Qt 可以一次由更多应用程序处理输入音频吗?
【发布时间】:2023-03-08 09:05:01
【问题描述】:

我想使用QAudioRecorder 来录制来自麦克风的音频。我的问题是,如果有正在进行的 Skype 通话或其他应用程序会尝试使用麦克风,这会导致一些错误,还是该应用程序和我的应用程序会接收相同的音频输入数据?

同样,我可以使用QCameraQMediaRecorder 访问已经在使用的网络摄像头吗?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    是的,这会很好,不会有任何错误。两个应用程序将接收相同的音频输入数据。我使用 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 程序可以在处理输入音频的同时处理其他程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多