113 多媒体模块播放音乐

113.1 Qt的多媒体模块

Qt的多媒体模块为录音、录像、拍照、音视频播放,乃至数字收音机等功能提供支持。要在应用程序中使用Qt的多媒体模块,只需在项目文件(.pro)中增加“QT += multimedia”即可。

113.2 QSound

QSound类用于播放音频文件,包含如下方法:

113.3 QMediaPlayer

QMediaPlayer类表示通用的媒体播放器,包含如下方法:

113.4 LAV Filters

如果不能正常播放所指定的多媒体文件,且在调试窗格看到类似“doRender: Unknown error 0x80040266”的错误提示。在排除多媒体文件损坏的前提下,可以认定为系统中缺少DirectShow解码器。毕竟Qt的Windows版本,底层使用的就是DirectShow Player Service。

DirectShow解码器,即LAV Filters,可以从这里下载:https://lav-filters.en.lo4d.com/download

113.5 案例

113.5.1 创建项目

通过QtCreator,在C:\Users\Minwei\Projects\Qt路径下,创建名为MediaPlayer的项目。

C:\Users\Minwei\Projects\Qt\MediaPlayer\MediaPlayer.pro:

113.5.2 设计界面

C:\Users\Minwei\Projects\Qt\MediaPlayer\mediaplayerdialog.ui:

113.5.3 实现功能

C:\Users\Minwei\Projects\Qt\MediaPlayer\mediaplayerdialog.h:

C:\Users\Minwei\Projects\Qt\MediaPlayer\mediaplayerdialog.cpp:

113.5.4 测试验证

运行效果如图所示: