如何在QT C++中录制和保存音频?

问题描述:

我正在尝试使用Qtc++来录制和保存音频文件,这里是我为此目的的代码。如何在QT C++中录制和保存音频?

QAudioRecorder * audioRecorder = new QAudioRecorder(); 

if(audioRecorder->state() == audioRecorder->StoppedState) 
{ 
    // Set recording Settings 
    QAudioEncoderSettings settings; 
    settings.setCodec("audio/pcm");  // Not sure what to put here 
    settings.setSampleRate(16000); 
    settings.setBitRate(32); 
    settings.setQuality(QMultimedia::HighQuality); 
    settings.setEncodingMode(QMultimedia::ConstantQualityEncoding); 

    audioRecorder->setEncodingSettings(settings); 

    //Set Audio Input 
    audioRecorder->setAudioInput(audioRecorder->defaultAudioInput()); 

    // Sets Output location where to store the file 
    QUrl url("hello.wav"); 
    audioRecorder->setOutputLocation(QUrl::fromLocalFile("hello.wav")); 
    audioRecorder->setContainerFormat("mp3"); 

    audioRecorder->record(); 

    qDebug()<<audioRecorder->state(); 
} 
else 
{ 
    qDebug()<<"stopped"; 
} 

但它不保存任何文件,而是显示消息no service found for - "org.qt-project.qt.audiosource"。 如何保存音频文件?

您应该安装一些Qt Multimedia Backend - 检查此列表(适用于您使用的Qt版本)并为您的操作系统选择后端。

+0

感谢@trivelt,您提供的源代码非常难以开始。你能建议任何初学者级别的资源吗? –

+0

嗯,你使用哪种操作系统和Qt版本? – trivelt

+0

我使用的是Ubuntu 16.04,QT版本是5.7。 @trivelt –