标签:video 出现 local qstring 文件 div hbox 解码器 direct
使用QMediaPlayer和QVideoWidget播放视频
添加模块:
QT += multimedia
QT += multimediawidgets
引用头文件:
#include <QMediaPlayer>
#include <QVideoWidget>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QHBoxLayout *m_layout= new QHBoxLayout(this);
QMediaPlayer *m_player = new QMediaPlayer(this);
m_player->setMedia(QUrl::fromLocalFile(QString::fromLocal8Bit("C:/baituo.mp4")));
QVideoWidget *m_videoW = new QVideoWidget(this);
m_layout->addWidget(m_videoW);
this->setLayout(m_layout);
m_player->setVideoOutput(m_videoW);
m_player->play();
}
代码写起来很简单,编译也能通过,但是运行就会出错
如果文件路径不对或者文件名是中文的,则会显示如下错误:
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
标签:video 出现 local qstring 文件 div hbox 解码器 direct
原文地址:https://www.cnblogs.com/mtn007/p/11802875.html