#c #qt
#c #qt
Вопрос:
Я хотел бы использовать QAudioRecorder
для записи звука с микрофона. Мой вопрос в том, должен ли быть продолжающийся вызов Skype или другое приложение попытается использовать микрофон, приведет ли это к какой-либо ошибке или и это приложение, и мое приложение получат одинаковые входные аудиоданные?
Аналогичным образом, могу ли я использовать QCamera
и QMediaRecorder
для доступа к веб-камере, которая уже используется?
Ответ №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(amp;b, amp;QPushButton::clicked, [amp;](){
if(b.text() == "Start"){
audioRecorder->record();
b.setText("Stop");
}
else{
audioRecorder->stop();
app.quit();
}
});
b.show();
return app.exec();
}
Я предполагаю, что это также сработает, если вы запустите эту программу одновременно со Skype.
Итак, входной звук может обрабатываться программой Qt одновременно с его обработкой другими программами.