Qt实用技巧(使用QMediaPlayer播放mp4文件)

少年乘勇气,百战过乌孙。这篇文章主要讲述Qt实用技巧:使用QMediaPlayer播放mp4文件相关的知识,希望能为你提供帮助。




需求        做软件时,点击一个按钮切入另一个界面,需要播放一段动画。


原理        使用QMediaplayer,QVideoWidget,QMediaPlaylist实现,注意安装解码器 lavfilter(本机可播放,但qt不能播放,可能是解码器的原因)


注意        无法播放.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();

【Qt实用技巧(使用QMediaPlayer播放mp4文件)】




    推荐阅读