【问题标题】:How can I record and save audio in QT C++?如何在 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"。 如何保存音频文件?

【问题讨论】:

    标签: c++ qt audio recording


    【解决方案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,您可以看到可用的插件并尝试安装其中的一些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多