QT 使用QMediaPlayer实现的简易视频播放器
效果如下:
功能点
- 播放指定视频
- 点击屏幕暂停/播放
- 开始/暂停/重置视频
- 拖拽到指定位置播放
类介绍
- 需要在配置文件中加入Multimedia, MultimediaWidgets这俩个库。
- Multimedia:提供了一套用于处理音频、视频、摄像头和广播数据的API。
- MultimediaWidgets:提供了一些与多媒体相关的图形界面组件。
- QVideoProbe是Qt多媒体模块中的一个类,它用于监控视频流的输出。这个类允许你接收视频帧的数据,而不需要直接与视频输出设备交互。
- QMediaPlayer 使用生产者-消费者模型来处理媒体内容。它从媒体源(如文件或网络流)获取数据,然后通过播放控制接口(如播放、暂停、停止)和播放状态接口(如当前播放位置、总时长)来控制媒体内容的播放。
- 使用 QMediaPlayer时,通常需要将其与一个或多个媒体输出组件结合使用,例如QVideoWidget用于视频播放,QAudioOutput用于音频播放。
注意:在Qt6中使用QMediaPlayer
时,使用的是setSource
函数设置视频资源,而Qt5中并没有这个函数,使用的是setMedia
函数。而且有个非常坑的地方,Qt6设置完QVideoWidget
直接使用没有问题,而Qt5就会存在问题。
信息栏会报错:
DirectShowPlayerService::doRender: Unresolved error code 0x80040266
在window上需安装LAV解码器的,并放在Qt的安装目录下。
在Linux上个人验证并不需要安装
解决办法: