如何在Qt中选择setCodec()函数的参数进行录音

How to select the parameter of the setCodec() function for audio recording in Qt

本文关键字:函数 参数 录音 Qt setCodec 选择      更新时间:2023-10-16

我在Qt中使用QAudioRecorder录制语音,这是示例代码。

audioRecorder = new QAudioRecorder;
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/amr"); //here's my question
audioSettings.setQuality(QMultimedia::HighQuality);
audioRecorder->setEncodingSettings(audioSettings);
audioRecorder->setOutputLocation(QUrl::fromLocalFile("test.amr"));
audioRecorder->record();

但是我不知道如何使用setCodec()函数

void QAudioEncoderSettings::setCodec(const QString & codec)

如何找出我可以使用的参数(如"audio/amr""audio/x-wav")及其确切含义?谢谢

您可以在不同插件的源代码中看到候选编解码器。

  • G流
    • 音频/mpeg
    • 音频/vorbis
    • 音频/spex
    • 音频/GSM
    • 音频/PCM
    • 音频/AMR
    • 音频/AMR-WB
    • 音频/FLAC

  • 音频捕获
    • 音频/pcm

  • QNX
    • aac
    • 未加工的

您可以在QMediaRecorder类中调用supportedAudioCodecs来获取支持的编解码器列表。

MWE:

    QAudioRecorder *recorder = new QAudioRecorder(this);
    QStringList codecs_list = recorder->supportedAudioCodecs();
    for( int i=0 ; i<codecs_list.count() ; i++ )
    {
        qDebug() << codecs_list[i];
    }