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

欢迎技术交流和帮助,提供IT相关服务,索要源码请联系博主QQ: 21497936,若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/78643466

目录

需求

原理

相关博客

注意

效果图

代码

1.工程文件

2.主界面已经拖入一个QWidget,并使其提升为QVideoWidget

3.源文件代码


 

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实用技巧:视频播放器控件(不依赖系统编解码)》

 

注意

        无法播放.swf文件。

 

效果图

Qt实用技巧:使用QMediaPlayer播放mp4文件_第1张图片

 

代码

1.工程文件

QT += multimedia
QT += multimediawidgets

2.主界面已经拖入一个QWidget,并使其提升为QVideoWidget,文件代码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 
#include 
#include 

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 
#include 

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/78643466

 

你可能感兴趣的:(Qt开发专栏,C++,#,Qt实用技巧)