QMediaPlayer
是 Qt 框架中的一个多媒体播放器类,用于处理音频和视频文件的播放。它是 Qt Multimedia 模块的一部分,提供了一个易于使用的接口,允许您在您的 Qt 应用程序中播放各种媒体内容。
QMediaPlayer是个壳(也可以叫框架),依赖本地解码器,视频这块默认基本上就播放个MP4甚至连MP4都不能播放,如果要支持其他格式需要下载k-lite或者LAV Filters安装即可(k-lite或者LAV Filters是指windows上的,其他系统上自行搜索,貌似嵌入式linux上依赖GStreamer(sudo apt-get install gstreamer1.0-libav ubuntu-restricted-extras),并未完整验证,报错提示 Your GStreamer installation is missing a plug-in,需要命令安装 sudo apt-get install ubuntu-restricted-extras)。如果需要做功能强劲的播放器,初学者建议用vlc、mpv,终极万能大法用ffmpeg(解码出来的视频可以用QOpenGLWidget走GPU绘制或者转成QImage绘制,音频数据可以用QAudioOutput播放)
QMediaPlayer用法:
1. 多媒体格式支持: QMediaPlayer
支持许多常见的音频和视频文件格式,包括 MP3、WAV、OGG、MPEG、AVI 等。在 Qt 应用程序中播放各种不同类型的媒体文件。
2. 控制播放: 使用 QMediaPlayer
来控制媒体文件的播放、暂停、停止、快进、快退等操作。这使能够创建自定义的媒体播放器界面,并与用户交互。
3. 音量控制: 通过 setVolume
方法,可以设置音频的音量,以便根据需要调整音量。
4. 通知和错误处理: QMediaPlayer
提供了信号和槽机制,以便能够捕获媒体播放过程中的状态变化、错误信息等,并作出相应的处理。
5. 视频显示: 如果播放的媒体文件包含视频内容,将视频内容显示在 Qt 窗口中。为此,可以使用 QVideoWidget
或其他 Qt 组件来显示视频。
6. 媒体查询: QMediaPlayer
查询媒体文件的元数据,如标题、作者、持续时间等信息。
用例:
#include <QCoreApplication>
#include <QMediaPlayer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建 QMediaPlayer 对象
QMediaPlayer player;
// 设置媒体文件路径
player.setMedia(QUrl::fromLocalFile("/path/to/your/mediafile.mp3"));
// 播放媒体文件
player.play();
return a.exec();
}