若該文爲原創文章,未經允許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/78643466
目錄
2.主界面已經拖入一個QWidget,並使其提升爲QVideoWidget
Qt實用技巧:使用QMediaPlayer播放mp4文件
需求
做軟件時,點擊一個按鈕切入另一個界面,需要播放一段動畫。
原理
使用QMediaplayer,QVideoWidget,QMediaPlaylist實現,注意安裝解碼器 lavfilter(本機可播放,但qt不能播放,可能是解碼器的原因)
《lavfilter-0.70.2解碼器》下載地址:http://download.csdn.net/download/qq21497936/10134168
更多格式,請查看《Qt實用技巧:使用QMediaPlayer和Windows自帶組件播放swf、rmvb、mpg、mp4等視頻文件》地址:http://blog.csdn.net/qq21497936/article/details/78651732
相關博客
《Qt實用技巧:使用QMediaPlayer播放mp4文件》
《Qt實用技巧:使用QMediaPlayer和Windows自帶組件播放swf、rmvb、mpg、mp4等視頻文件》
《Qt實用技巧:使用OpenCV庫操作攝像頭拍照、調節參數和視頻錄製》
《Qt實用技巧:使用OpenCV庫的視頻播放器(支持播放器操作,如暫停、恢復、停止、時間、進度條拽託等)》
注意
無法播放.swf文件。
效果圖
代碼
1.工程文件
QT += multimedia
QT += multimediawidgets
2.主界面已經拖入一個QWidget,並使其提升爲QVideoWidget,文件代碼
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMediaPlayer>
#include <QVideoWidget>
#include <QMediaPlaylist>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_openPlayFile_clicked();
private:
Ui::MainWindow *ui;
QMediaPlayer *_oMediaPlayer;
QMediaPlaylist *_pMediaPlaylist;
};
#endif // MAINWINDOW_H
3.源文件代碼
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
_pMediaPlayer = new QMediaPlayer(this);
_pMediaPlaylist = new QMediaPlaylist(_mediaPlayer);
_pMediaPlayer->setVideoOutput(ui->widget);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_openPlayFile_clicked()
{
QString path = QFileDialog::getOpenFileName(this, "打開播放文件", ".", "所有文件(*.*)");
if(path.isEmpty())
return;
qDebug() << __FILE__ << __LINE__ << path;
_pMediaPlaylist->clear();
_pMediaPlaylist->addMedia(QUrl::fromLocalFile(path));
_pMediaPlaylist->setCurrentIndex(0);
_pMediaPlayer->setPlaylist(_mediaPlaylist);
_pMediaPlayer->play();
}
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/78643466
目錄