You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt6在Windows平台使用QMediaRecorder录制WAV文件是否支持?

Qt6 Windows下QMediaRecorder无WAV格式支持问题

这是Qt6的已知兼容性问题,根源在于Qt6对Windows多媒体后端的调整:

  • Qt5采用Windows Multimedia Foundation(WMMF)的旧接口,对WAV格式的支持完善;
  • Qt6切换为更现代的Media Foundation(MF)组件,但Qt对MF的封装中暂未完整适配WAV的编码支持,导致supportedFileFormats枚举中不显示Wave格式。

可行解决方案

1. 手动指定WAV格式参数

绕过supportedFileFormats的枚举限制,直接配置PCM编码和WAV容器:

QMediaRecorder recorder;
// 配置音频编码参数(PCM是WAV的核心编码)
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/pcm");
audioSettings.setSampleRate(44100);
audioSettings.setBitRate(1411200); // 对应44.1kHz、16位、双声道
audioSettings.setChannelCount(2);
audioSettings.setQuality(QMultimedia::HighQuality);

// 强制设置媒体格式为WAV
QMediaFormat format;
format.setCodec(QMediaFormat::AudioCodec::PCM);
format.setFileFormat(QMediaFormat::Wave);

recorder.setAudioSettings(audioSettings);
recorder.setMediaFormat(format);
recorder.setOutputLocation(QUrl::fromLocalFile("recording.wav"));

2. 回退到Qt5的多媒体后端

通过设置环境变量强制Qt6使用旧的WMMF后端,恢复WAV格式支持:

QT_MEDIA_BACKEND=windowsmedia

注意:此方法会丢失Qt6多媒体模块的部分新特性,仅作为临时规避方案。

该问题已在Qt官方bug跟踪系统中被多个用户反馈,后续版本可能会修复适配,但当前稳定版需通过上述方法解决。

内容的提问来源于stack exchange,提问作者Meliodas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:30:49