Qt视频播放出现的问题

使用QMediaPlayer和QVideoWidget播放视频

添加模块:

QT += multimedia
QT += multimediawidgets

引用头文件:

#include <QMediaPlayer>
#include <QVideoWidget>

 1 Widget::Widget(QWidget *parent) :
 2   QWidget(parent),
 3 ui(new Ui::Widget)
 4 {
 5   ui->setupUi(this);
 6   QHBoxLayout *m_layout= new QHBoxLayout(this);
 7 
 8   QMediaPlayer *m_player = new QMediaPlayer(this);
 9 
10   m_player->setMedia(QUrl::fromLocalFile(QString::fromLocal8Bit("C:/baituo.mp4")));
11 
12   QVideoWidget *m_videoW = new QVideoWidget(this);
13 
14   m_layout->addWidget(m_videoW);
15 
16   this->setLayout(m_layout);
17 
18   m_player->setVideoOutput(m_videoW);
19 
20   m_player->play();
21 }

代码写起来很简单,编译也能通过,但是运行就会出错

如果文件路径不对或者文件名是中文的,则会显示如下错误:
DirectShowPlayerService::doRender: Unresolved error code 0x80040266

 

DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()

Qt 中的多媒体播放,底层是使用DirectShowPlayerService,所以安装一个DirectShow解码器,例如LAV Filters,就可以解决运行出错问题

LAV Filters下载地址:https://github.com/Nevcairiel/LAVFilters/releases

 

 

posted on 2019-11-06 02:07  没头脑007  阅读(809)  评论(0编辑  收藏  举报

导航