Qt視頻播放器


使用Qt開發視頻播放器

基礎開發說明

環境准備

開發使用Qt5自帶解碼器,僅支持avi視頻解碼。可以安裝其它解碼器來播放其它視頻格式。

開發過程

Qt模塊

pro文件中添加 QT += multimedia multimediawidgets
頭文件中添加

#include <QMediaPlayer>
#include <QVideoWidget>

代碼

頭文件
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLayout>
#include <QMediaPlayer>
#include <QVideoWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
cpp文件
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setWindowTitle("視頻播放器");
    QMediaPlayer *player = new QMediaPlayer; // 用於解析視頻流的媒體播放器
    QVideoWidget *videowidget = new QVideoWidget;  // 用於播放視頻
//    QVBoxLayout *layout = new QVBoxLayout;  // 用於指定視頻播放的位置



//    player->setMedia(QUrl::fromLocalFile("C:\\Users\\Administrator\\Desktop\\2021-12-31_14-28-58.mkv"));  //打開音視頻流文件
    player->setMedia(QUrl::fromLocalFile("C:\\Users\\Administrator\\Desktop\\22.avi"));  //打開音視頻流文件
//    videowidget->resize(this->size());  //把視頻輸出圖像的大小重新調整為label的大小
    //指定視頻播放的位置
//    layout->addWidget(videowidget);
//    ui->label->setLayout(layout);

    player->setVideoOutput(videowidget);  //設置視頻輸出附加到媒體播放器
    player->play();  //開始播放視頻
    videowidget->setParent(this); // 將顯示控件放到widget中
    videowidget->setGeometry(0,0,this->size().width(),this->size().height()); // 設置視頻顯示的坐標與大小。
}

Widget::~Widget()
{
    delete ui;
}

進階開發教程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM