1 相关参数PCM 音频参数: 8K 16位 单声道Qt版本:6.8及以上录制的文件: wave格式2 使用到的Qt类缓存输入类:QAudioBufferInput (QAudioBufferInput 仅支持 FFmpeg 后端。)桥接器:QMediaCaptureSession录制器:QMediaRecorder声音缓存类: QAudioBuffer这些类的详细资料可以在这里查看:https://doc.qt.io/qt-6/zh/qaudiobufferinput.html3 初始化各种类QMediaRecorder *m_audioRecordernullptr; //录音器最终写文件 QAudioBufferInput *audioBufferInput;//语音数据输入缓存 QMediaCaptureSession *m_captureSession; QAudioFormat outputAudioFormat;outputAudioFormat.setSampleRate(8000); //设置采样率以对赫兹采样。 以秒为单位每秒采集多少声音数据的频率. outputAudioFormat.setChannelCount(1); //将通道数设置为通道。 outputAudioFormat.setSampleFormat(QAudioFormat::Int16); RecordStartedfalse; m_captureSessionnew QMediaCaptureSession(); m_audioRecorder new QMediaRecorder(); //创建录音器 m_captureSession-setRecorder(m_audioRecorder); // 桥接录制器 audioBufferInput new QAudioBufferInput();//创建声音输入缓存 m_captureSession-setAudioBufferInput(audioBufferInput); // 桥接音频输入缓存4 开始录音//设置输出文件 m_audioRecorder-setOutputLocation(QUrl::fromLocalFile(QString::fromStdString(recordFilePath))); QMediaFormat format; format.setFileFormat(QMediaFormat::FileFormat::Wave ); format.setAudioCodec(QMediaFormat::AudioCodec::Wave ); m_audioRecorder-setMediaFormat(format); m_audioRecorder-setAudioSampleRate(8000); m_audioRecorder-setAudioChannelCount(1); m_audioRecorder-setAudioBitRate(96000); m_audioRecorder-setQuality(QMediaRecorder::Quality::NormalQuality); m_audioRecorder-setEncodingMode(QMediaRecorder::ConstantBitRateEncoding); m_audioRecorder-record(); //开始录音 qDebug()录音开始;5 写入网络PCM数据QAudioBuffer audioBuffer QAudioBuffer(Chunk,outputAudioFormat); bool ret audioBufferInput-sendAudioBuffer(audioBuffer); //qDebug() ret;6 停止录音qDebug() 停止录音 ; m_audioRecorder-stop();