如何在 QT C++ 中录制和保存音频?
Posted
技术标签:
【中文标题】如何在 QT C++ 中录制和保存音频?【英文标题】:How can I record and save audio in QT C++? 【发布时间】:2017-08-16 11:18:24 【问题描述】:我正在尝试使用 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"
。
如何保存音频文件?
【问题讨论】:
【参考方案1】:您应该安装一些Qt Multimedia Backend - 检查此列表(适合您使用的 Qt 版本)并为您的操作系统选择后端。
【讨论】:
感谢@trivelt,您提供的来源很难开始。你能推荐任何初学者级别的资源吗? 嗯,你用的是哪个操作系统和Qt版本? 我使用的是 ubuntu 16.04,QT 版本是 5.7。 @trivelt 你安装了 gstreamer 吗?如果不试试这个:sudo apt-get install libgstreamer1.0-0
另外,我记得,对于某些 QtMultimedia 功能,您还需要安装其他 gstreamer 插件。如果您输入sudo apt-get install gstreamer1.0
并双击tab
,您可以看到可用的插件并尝试安装其中的一些。以上是关于如何在 QT C++ 中录制和保存音频?的主要内容,如果未能解决你的问题,请参考以下文章
xcode:如何在使用 AVFoundation 录制音频后保存音频文件