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

若该文为原创文章,未经允许不得转载
原博主博客地址: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_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

目录

Qt是一个跨平台的图形用户界面(GUI)开发工具集,可以用来开发各种应用程序,包括音视频播放器。 QMediaPlayerQt中的一个多媒体播放类,可以用来播放音频和视频文件。基于QMediaPlayer,我们可以开发一个功能完善的音视频播放器。 首先,我们可以使用QMediaPlayer提供的功能来实现基本的音视频播放控制,包括播放、暂停、停止、快进、快退等。我们可以通过按钮、菜单或者快捷键来触发相应的操作,或者可以根据用户的输入来实现自动播放和暂停。 其次,我们可以通过QMediaPlayer的信号和槽机制来实现一些附加功能。例如,当播放器播放完一个文件时,我们可以发出一个信号来通知用户,或者自动切换到下一个文件。我们还可以监听播放器的状态变化,例如播放、暂停、停止等,以便更新界面和提供相应的反馈信息。 此外,我们还可以使用QMediaPlayer的媒体查询功能来获取音视频文件的元数据,例如时长、作者、标题等信息,以及获取当前播放位置和进度。我们可以将这些信息显示在界面上,让用户获得更好的使用体验。 除了以上功能,我们还可以使用Qt提供的其他模块来增加更多的特性。例如,我们可以使用Qt Multimedia模块的QAudioProbe来实现音频波形显示,使用Qt MultimediaWidgets模块的QVideoWidget来实现视频播放区域,使用Qt Widgets模块的QSlider来实现音视频进度条等。 总之,基于QMediaPlayer的开发,我们可以轻松实现一个功能完善的音视频播放器,满足用户对于音视频播放的基本需求,并且具备一定的扩展性,可以根据实际需求进行功能扩展和自定义。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙红胖子Qt(长沙创微智科)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值