利用Qt自带的媒体模块实现播放mp4文件
目录
- 一. 需求
- 二. 实现
- 三. 效果
一. 需求
利用Qt自带的媒体模块,播放mp4等媒体文件。
二. 实现
pro文件修改
QT 编程客栈 += core gui multimedia multimediawidgets
ui中放一个QWidget,并提升为QVideoWidget.
widget.h 文件。
#ifndef WIDGET_H #www.devze.comdefine WIDGET_H #include &brmHAJFdlt;QWidget> #include <QMediaPlayer> #include <QVideoWidget> #include <QMediaPlaylist> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); private slots: void on_fileBtn_clicked(); private: Ui::Widget *ui; QMediaPlayer* mediaPlayer; QMediaPlaylist* mediaPlayList; }; #endif // WIDGET_H
widget.cpp 文件
#include "widget.h" #include "ui_widget.h" #include javascript<QFileDialog> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->编程;setupUi(this); mediaPlayer = new QMediaPlayer(this); mediaPlayList = new QMediaPlaylist(mediaPlayer); mediaPlayer->setVideoOutput(ui->widget); } Widget::~Widget() { delete ui; } void Widget::on_fileBtn_clicked() { QString file = QFileDialog::getOpenFileName(this,"open file",".","*.*"); if(file.isEmpty()) return; mediaPlayList->clear(); mediaPlayList->addMedia(QUrl::fromLocalFile(file)); mediaPlayList->setCurrentIndex(0); mediaPlayer->setPlaylist(mediaPlayList); mediaPlayer->play(); }
涉及到媒体,就涉及到编解码,所以就需要安装编解码器,直接安装这个即可:
https://www.codecguide.com/download_kl.htm
不然会出现如下错误: DirectShowplayerService::doRender: Unresolved error code 0x80040266
三. 效果
到此这篇关于利用Qt自带的媒体模块实现播放mp4文件的文章就介绍到这了,更多相关Qt播放mp4文件内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论