Qt实现一个简单的视频播放器

5 篇文章 0 订阅
3 篇文章 0 订阅

目录

1 工程配置

1.1 创建新工程

1.2 ui界面配置

1.3 .pro配置

2 代码

2.1 main.c代码

2.2 widget.c

2.3 widget.h


        本文主要记述了如何使用Qt编写一个简单的视频播放器,整个示例采用Qt自带组件就可以完成。可以实现视频的播放和暂停等功能。

1 工程配置

1.1 创建新工程

如下步骤,创建一个名为13-video_player_demo的工程文件,选择基于QWidget就可以,带上ui文件。

1.2 ui界面配置

界面就有四个组件:垂直布局、三个按钮

1.3 .pro配置

在.pro文件内加入:

multimedia multimediawidgets

即:

QT       += core gui multimedia multimediawidgets

2 代码

2.1 main.c代码

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

2.2 widget.c

#include "widget.h"
#include "ui_widget.h"
#include <QFileInfo>
#include <QFileDialog>
#include <QDir>
#include <QMessageBox>
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 创建实例化对象
    player = new QMediaPlayer(this);       
    videoplayer = new QVideoWidget(this);
    // 将videoplayer添加到verticalLayout里面,不然将单独开个页面
    ui->verticalLayout->addWidget(videoplayer);
    // 将videoplayer设置为player的输出
    player->setVideoOutput(videoplayer);
    // 当视频状态发送变化时触发
    connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), SLOT(OnStateChange(QMediaPlayer::State)));
}

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


void Widget::on_btn_Import_clicked()
{

    QString strCurrentPath = QDir::homePath();
    QString stdDlgTitle = "请选择视频文件";
    QString strFilter = "MP4 File(*.mp4);;All File(*.*)";
    QString strAllFiles = QFileDialog::getOpenFileName(this, stdDlgTitle,
                                                       strCurrentPath,strFilter);
    if(strAllFiles.isEmpty()) {
        QMessageBox::information(this,"错误","打开视频文件失败,请重新检查",QMessageBox::Yes|QMessageBox::No);
        return;
    }

    QFileInfo fileInfos(strAllFiles);
    qDebug() << "File info: " << fileInfos.fileName() << ", path: " << fileInfos.filePath();

    player->setMedia(QUrl::fromLocalFile(strAllFiles));
    player->play();  // 播放
}

void Widget::on_btn_play_clicked()
{
    player->play();  // 播放
}

void Widget::on_btn_pause_clicked()
{
    player->pause();  // 停止播放
}

void Widget::OnStateChange(QMediaPlayer::State state)
{
    qDebug() << "state change";
    //播放器状态变化
    bool isPlaying = (state==QMediaPlayer::PlayingState);
    ui->btn_play->setEnabled(!isPlaying);
    ui->btn_pause->setEnabled(isPlaying);
}

2.3 widget.h

#ifndef WIDGET_H
#define WIDGET_H

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

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    QVideoWidget    *videoplayer;
    QMediaPlayer    *player;

private slots:
    void on_btn_Import_clicked();

    void on_btn_play_clicked();

    void on_btn_pause_clicked();

    void OnStateChange(QMediaPlayer::State state);

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

3 注意

1 有时候需要在Linux系统上下载想要的视频软件

2 直接从windows上拉个文件到Linux上,可能由于编码原因不能播放

        可以在Linux上录一段视频

        可以进行转码

### 回答1: 要编译一个视频播放器,首先需要安装Qt 6的开发环境。然后可以按照以下步骤进行操作: 1. 创建一个新的Qt项目,选择桌面应用程序。 2. 在项目中添加Qt Multimedia模块,这个模块包含了视频播放所需的类和函数。 3. 在主窗口中添加一个QMediaPlayer对象,并调用setMedia()函数来设置要播放的视频文件路径。 4. 添加一个QVideoWidget对象,这个对象用来显示视频画面。将QVideoWidget对象设置为QMediaPlayer对象的输出设备,可以通过调用setVideoOutput()函数来实现。 5. 添加一些控制按钮,比如播放、暂停、停止、快进、快退等,这些按钮通过调用QMediaPlayer对象的相应函数来实现。 6. 编译并运行程序,测试其播放本地视频的功能。 下面是一个示例代码: ```cpp #include <QtWidgets> #include <QtMultimedia> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; QVBoxLayout *layout = new QVBoxLayout(&window); QMediaPlayer *player = new QMediaPlayer; QVideoWidget *videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); QPushButton *playButton = new QPushButton("Play"); QObject::connect(playButton, &QPushButton::clicked, player, &QMediaPlayer::play); QPushButton *pauseButton = new QPushButton("Pause"); QObject::connect(pauseButton, &QPushButton::clicked, player, &QMediaPlayer::pause); QPushButton *stopButton = new QPushButton("Stop"); QObject::connect(stopButton, &QPushButton::clicked, player, &QMediaPlayer::stop); QHBoxLayout *buttonLayout = new QHBoxLayout; buttonLayout->addWidget(playButton); buttonLayout->addWidget(pauseButton); buttonLayout->addWidget(stopButton); layout->addWidget(videoWidget); layout->addLayout(buttonLayout); player->setMedia(QUrl::fromLocalFile("/path/to/video/file.mp4")); window.show(); return app.exec(); } ``` 注意,本示例中需要将"/path/to/video/file.mp4"替换为你要播放的视频文件路径。 ### 回答2: 要编译一个能够播放本地视频的Qt6视频播放器,可以按照以下的步骤进行操作: 1. 首先,需要在Qt软件包管理器中安装Qt6的开发工具及相关的多媒体模块。 2. 在Qt Creator中创建一个新的Qt Quick应用程序项目。 3. 在Qt Quick应用程序项目中,添加一个视频播放器的主窗口组件,可以使用Qt Quick Controls来简化界面设计。 4. 为视频播放器主窗口添加一个QMediaPlayer对象,用于管理视频的播放。 5. 在QMediaPlayer对象中设置视频源,可以通过选择本地视频文件的方式或者设置文件路径的方式来指定视频源。 6. 在主窗口组件中,添加用于播放控制的按钮,如播放、暂停、停止等。 7. 在按钮的点击事件处理函数中,调用对应的QMediaPlayer函数来实现视频播放控制的功能。 8. 可以根据需要,为视频播放器添加额外的功能,如音量控制、视频进度条、全屏播放等。 9. 运行程序,将会出现视频播放器的界面。可以通过点击按钮来控制视频的播放、暂停和停止。 10. 在程序运行中,如果想要切换不同的本地视频文件进行播放,可以添加一个文件选择对话框,让用户能够选择要播放的视频文件。 以上是一个基本的步骤,当然在实际编码过程中还可能会遇到其他具体的问题,需要根据情况进行调试和解决。编译成功后,就可以使用Qt6编译的视频播放器来播放本地视频了。 ### 回答3: 要编译一个基于Qt6的视频播放器来播放本地视频,你可以按照以下步骤进行: 步骤1:准备工作 首先,确保你已经安装了Qt6开发环境,并且已经配置好了开发环境的路径。你可以从Qt官方网站下载并安装最新的Qt开发环境。 步骤2:创建Qt项目 打开Qt开发环境,点击"新建项目"按钮,选择"应用程序",然后选择"Qt Widgets 应用"。输入项目名称,选择存储位置,并点击"下一步"。 步骤3:设计播放器界面 在Qt设计器中,你可以设计你的播放器界面。可以添加一个视频播放区域、播放按钮、暂停按钮、停止按钮等控件,并为这些控件添加相应的信号和槽。 步骤4:添加视频播放功能 在Qt编程界面,你可以通过使用Qt提供的Multimedia模块来实现视频播放功能。你可以使用QMediaPlayer类来加载和播放本地视频文件。在槽函数中,你可以使用QMediaPlayer的相应函数来控制视频的播放、暂停和停止。 步骤5:编译和运行 完成上述步骤后,你可以点击Qt开发环境中的"运行"按钮来编译和运行你的项目。你应该能够看到你设计的播放器界面,并且能够播放本地视频文件。 总结: 通过上述步骤,你可以使用Qt6来编译一个视频播放器,用于播放本地视频。你需要在Qt开发环境中创建一个新的项目,设计播放器界面,并使用Qt的Multimedia模块来添加视频播放功能。最后,编译和运行你的项目,就可以播放本地视频了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

B or D

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

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

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

打赏作者

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

抵扣说明:

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

余额充值