在Qt中使用FFmpeg实现播放和录音

初始尝试

从CSDN中找到了对应的库并进行修改,最终编译成功。但运行时发现没有对应的输入声音设备。

查看设备

使用FFmpeg命令查看可用设备:

1
ffmpeg -list_devices true -f dshow -i dummy

图片1

录制测试

尝试直接使用FFmpeg命令录制:

1
ffmpeg -f dshow -i audio="麦克风阵列 (Realtek(R) Audio)" -t 5 test.wav

录制失败,最后发现是没有打开麦克风权限。解决权限问题后成功录制音频。
图片1

音频播放实现

在论坛找到播放代码,发现使用的是<QAudioFormat>中的QAudioOutput。但在Qt6中它已被QAudioSink取代。

编译问题

添加头文件后仍然报错,最终在CMakeLists.txt中添加:

1
Qt6::Multimedia

才解决了头文件找不到的问题。
图片1
图片1

重采样问题

重采样相关的代码编译一直不通过。

即使参考官方文档的示例也无法运行,最终不得不寻找其他解决方案。
图片1
图片1