[填坑]使用Qt5.12播放mp4文件的注意事项

16 篇文章 1 订阅

1、配置工作

如果要用multimedia,请首先去安装LAV解码器 http://forum.doom9.org/showthread.php?t=156191 不安装无法使用该模块

#视频播放需要pro文件加入以下模块
QT += multimedia
QT += multimediawidgets
//添加以下头文件
#include <QMainWindow>
#include <QMediaPlayer>
#include <QVideoWidget>
#include <QMediaPlaylist>

   若使用ui编程,先拖入一个QWidget,然后将其提升为QVideoWidget (直接在“提升的类名称”处填写,可以自动搜索到对应头文件的)

2、编程填坑

 //MainWindow类中添加成员

QMediaPlayer *pMediaPlayer;
QMediaPlaylist *pMediaPlaylist;

 

 //MainWindow构造函数中添加

ui->widget_video->setAspectRatioMode(Qt::IgnoreAspectRatio); //不可少!!否则可能播放没反应
//ui->widget_video->setFullScreen(true); //不可轻易用,可能导致工具栏菜单栏消失
pMediaPlayer = new QMediaPlayer(this); 
pMediaPlaylist = new QMediaPlaylist(pMediaPlayer);
pMediaPlayer->setVideoOutput(ui->widget_video); //ui->widget_video为刚刚添加并提升的部件

最大的坑是setAspectRatioMode(Qt::IgnoreAspectRatio);     不可少!!否则可能播放没反应

//在控制播放的按钮中添加
pMediaPlaylist->clear();
pMediaPlaylist->addMedia(QUrl::fromLocalFile("D:/a.mp4"));   //注意路径,此为大坑
pMediaPlaylist->addMedia(QUrl::fromLocalFile("F:/123/src/b.mp4"));
pMediaPlaylist->setCurrentIndex(0);
pMediaPlayer->setPlaylist(pMediaPlaylist);
pMediaPlayer->play();

解决方案:

1、QT播放视频没有反应,没有设置setAspectRatioMode(Qt::IgnoreAspectRatio);

2、QT无法播放视频 DirectShowPlayerService错误,需要下载安装 LAV 解码器,

3、QT播放视频提示地址错误 DirectShowPlayerService::doSetUrlSource(class QMutexLocker *)),未填写正确路径,不会写路径的可以跳转到  [填坑]QT中路径如何写 https://blog.csdn.net/qq_20515461/article/details/88092980

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值