目录
- 一. 需求
- 二. 实现
- 三. 效果
一. 需求
利用Qt自带的媒体模块,播放mp4等媒体文件。
二. 实现
pro文件修改
QT += core gui multimedia multimediawidgets
ui中放一个QWidget,并提升为QVideoWidget.
widget.h 文件。
#ifndef WIDGET_H #define WIDGET_H #include <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 <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
三. 效果
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)