若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/78643466
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
Qt开发专栏:实用技巧(点击传送门)
需求
做软件时,点击一个按钮切入另一个界面,需要播放一段动画。
原理
使用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实用技巧:视频播放器控件(不依赖系统编解码)》
《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_OBJECTpublic: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
目录