Qt 项目实战:基于QMediaPlayer播放器
QMediaPlayer开发视频播放器
Q:我们为何不使用QMediaPlayer?
A:QMediaPlayer支持的编解码库太少;QMediaPlayer在windows中解码调用的是
DirectShow,在Linux中调用的是GStreamer;相对Windows而言GStreamer扩展编解
码库比较方便,但是windows中的DirectShow太老了,Demuxer Decoder都比较麻烦
较麻烦;
QtMultimediaDemo 这个例子为老师编写的基于QMediaPlayer的播放器,它可以播放
MPEG-4编码方式的视频
使用QMediaPlayer搭建最简单的播放器
step1:pro文件添加内容
step2:框架
step3:测试代码
1 #include "widget.h" 2 3 #include <QApplication> 4 #include <QMediaPlayer> 5 #include <QVideoWidget> 6 #include <QDebug> 7 8 int main(int argc, char *argv[]) 9不支持格式
如何添加不是“非基本图形控件”的派生类
需求:需要在界面上直接拖一个 QVideoWidget,由于基本控件中没有QVideoWidget,所以需要想想办法
新建提升的类
因为QVideoWidget本身就继承于QWidget,所以这里选择QWidget作为基类
控件进行提升
成功播放视频
widget.h
1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QMediaPlayer> 6 #include <QVideoWidget> 7 #include <QMenu> 8 #include <QFileDialog> 9 #include <QFile> 10 #include <QDir> 11 12 QT_BEGIN_NAMESPACE 13 namespace Ui 14 QT_END_NAMESPACE 15 16 class Widget : public QWidget 17 ; 48 #endif // WIDGET_Hwidgetpp
1 #include "widget.h" 2 #include "ui_widget.h" 3 4 Widget::Widget(QWidget *parent) : 5 QWidget(parent), 6 ui(new Ui::Widget), 7 player(new QMediaPlayer) //创建一个MediaPlayer 8 15 16 /* 右键弹出 Menu & Action */ 17 void Widget::createRightPopActions() 18 44 45 void Widget::openLocalVideoSlot() 46 58 59 void Widget::openUrlVideoSlot() 60 64 65 66 /*右键菜单接口*/ 67 void Widget::contextMenuEvent(QContextMenuEvent *event) 68 81 82 83 84 Widget::~Widget() 85无边框的视屏
布局器边框都设置为zero,设置widget的背景颜色为666
上一篇:Qt 调试器常见异常
下一篇:Qt 解决中报错xxx.h:4:10: ‘QMainWindow‘ file not found
Qt
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?