基于QT实现简易音视频播放器

目录:

        一、界面布局

        二、播放本地音频

                2.1 打开本地音频保存路径

                2.2 选中想要播放的音频加入到播放列表

                2.3 播放低延迟音频效果

                2.4 实现相关播放操作

        三、播放本地视频

                3.1 打开本地视频保存路径

                3.2 选中想要播放的视频加入到播放列表

                3.3 实现相关播放操作

                3.4 使用QMovie播放本地视频

一、界面布局

1、这里的界面布局是UI界面拖动控件布局的方式,界面背景和控件样式可以根据自己的喜好自行设置;控件的图标需要自己下载.png样式的图标,并且添加到资源文件夹下。

 2、功能实现

        pro里面的需要添加如下代码

QT       += core gui multimedia multimediawidgets

       · widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>
#include <QFileDialog>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT
protected:
    void paintEvent(QPaintEvent *event);

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_pushButton_open_clicked();                          //打开
    void on_pushButton_pre_clicked();                           //上一个
    void on_pushButton_start_stop_clicked();                    //暂停——播放
    void on_pushButton_next_clicked();                          //下一个
    void on_pushButton_stop_clicked();                          //结束
    void on_horizontalSlider_pace_valueChanged(int value);      //进度
    void on_verticalSlider_volume_valueChanged(int value);      //音量

private:
    Ui::Widget *ui;
    QMediaPlayer *myplayer = nullptr;           //播放者
    QMediaPlaylist *myplayerlist = nullptr;     //播放列表
    QVideoWidget *mywidget = nullptr;           //在哪播放

    bool isstart = false;                       //初始播放状态为false
};

#endif // WIDGET_H

        ·widget.cpp

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

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //播放者
    myplayer = new QMediaPlayer;
    //播放列表
    myplayerlist = new QMediaPlaylist;
    //在哪播放
    mywidget = new QVideoWidget(ui->label);

    myplayer->setPlaylist(myplayerlist);
    myplayer->setVideoOutput(mywidget);
    mywidget->resize(ui->label->size());    //设置播放界面大小
    setWindowTitle("QT-视频播放器");          //设置界面名称

    myplayer->setVolume(50);                     //设置初始音量为50
    ui->verticalSlider_volume->setRange(0,100);//设置音量范围
    ui->verticalSlider_volume->setValue(50);   //设置滑动杆的初始位置为50
    //设置播放进度
    connect(myplayer,&QMediaPlayer::positionChanged,ui->horizontalSlider_pace,&QSlider::setValue);
    connect(myplayer,&QMediaPlayer::durationChanged,ui->horizontalSlider_pace,[&](qint64 temp){
                ui->horizontalSlider_pace->setRange(0,(int)temp);
            });
}

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

void Widget::paintEvent(QPaintEvent *event)
{
    mywidget->resize(ui->label->size());//设置播放界面大小为标签大小
}
//打开
void Widget::on_pushButton_open_clicked()
{
    //打开文件
    QStringList mylist = QFileDialog::getOpenFileNames(this,"选择播放路径",                         //弹出"选择播放路径"窗口
                                                       "D:\\Qt\\220701QT\\VideoPlayer\\音视频",    //播放路径
                                                       "allfiles(*.*);;"                          //所以文件类型
                                                       "MP3(*.mp3);;"                             //音频
                                                       "MP4(*.mp4);;");                           //视频
    myplayerlist->clear();
    for(const auto &k:mylist)
        myplayerlist->addMedia(QUrl(k));
}
//上一个
void Widget::on_pushButton_pre_clicked()
{
    myplayer->stop();
    myplayerlist->previous();
    myplayer->play();
}
//暂停——播放
void Widget::on_pushButton_start_stop_clicked()
{
    if(isstart)
    {
        ui->pushButton_start_stop->setStyleSheet("QPushButton#pushButton_start_stop{border-image:url(:/播放.png)}");
        isstart = false;
        myplayer->pause();//暂停
    }
    else
    {
        ui->pushButton_start_stop->setStyleSheet("QPushButton#pushButton_start_stop{border-image:url(:/暂停.png)}");
        isstart = true;
        myplayer->play();
        ui->pushButton_stop->setEnabled(true);
    }
}
//下一个
void Widget::on_pushButton_next_clicked()
{
    myplayer->stop();
    myplayerlist->next();
    myplayer->play();
}
//结束
void Widget::on_pushButton_stop_clicked()
{
    myplayer->stop();
    ui->pushButton_stop->setEnabled(false);
    ui->pushButton_start_stop->setStyleSheet("QPushButton#pushButton_start_stop{border-image:url(:/播放.png)}");
}
//进度
void Widget::on_horizontalSlider_pace_valueChanged(int value)
{
    myplayer->setPosition((qint64)value);
}
//音量
void Widget::on_verticalSlider_volume_valueChanged(int value)
{
    myplayer->setVolume(value);
}

二、播放本地音频

        1、打开音频的本地文件夹,将需要播放的音频加入的播放列表中

三、播放本地视频 

        1、打开视频的本地文件夹,将需要播放的视频加入的播放列表中

        2、播放视频

 

 

 

 

  • 8
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Qt 是一个跨平台的应用程序开发框架,能够帮助开发者快速地创建各种类型的应用程序。其中,Qt 视频播放器Qt 框架中的一个重要功能,用于播放各种视频格式的文件。 CSDN 是一个面向程序员的技术社区,提供了丰富的技术资源和交流平台。在 CSDN 上,我们可以找到很多关于 Qt 视频播放器的教程和资料。 Qt 视频播放器通过 Qt 多媒体模块实现视频播放的功能。开发者可以利用 Qt 的多媒体类库,如 QMediaPlayer 和 QVideoWidget,实现视频播放、暂停、停止、快进、快退等功能。同时,Qt 还提供了对常见视频格式的支持,如 MP4、AVI 等,使开发者可以方便地处理不同格式的视频文件。 在 CSDN 上,我们可以找到很多关于 Qt 视频播放器的教程和示例代码。这些教程和示例代码可以帮助开发者了解 Qt 视频播放器的基本使用方法,学习如何自定义视频播放器的外观和功能,以及如何处理视频播放过程中的各种事件。 通过在 CSDN 上学习和交流,我们可以更好地掌握 Qt 视频播放器开发技术,解决遇到的问题,提高开发效率。同时,CSDN 社区也提供了一个交流平台,我们可以在其中与其他开发者分享经验、交流技术,共同推动 Qt 视频播放器的发展。 综上所述,Qt 视频播放器是通过 Qt 框架实现的功能,用于播放各种视频格式的文件。而 CSDN 则为开发者提供了学习、交流和分享的平台,可以帮助我们更好地学习和使用 Qt 视频播放器。 ### 回答2: QT视频播放器CSDN是一个基于QT开发视频播放器,可以用来播放各种视频文件格式。CSDN是一个开发者社区,提供了各种技术文章和资源,而QT是一款跨平台的GUI开发框架。结合使用这两个工具,可以开发出功能强大的视频播放器QT视频播放器CSDN具有多种功能,包括播放、暂停、快进、快退、调整量等等。用户可以通过QT提供的UI界面进行操作,也可以通过设置快捷键来进行控制。播放器还支持播放列表功能,可以一次性导入多个视频文件进行连续播放开发者可以借助CSDN网站上的各种技术文章和资源,学习和掌握QT开发视频播放器的知识和技巧。CSDN上有很多关于QT的教程和案例,可以帮助开发者了解QT的基本使用方法,并实现各种高级功能。同时,CSDN还提供了丰富的开源项目,开发者可以参考这些项目的源代码,加快开发进程。 在使用过程中,有可能会遇到一些问题。此时,可以在CSDN上提问,寻求其他开发者的帮助和建议。CSDN拥有一个庞大的开发者社区,很多问题都能得到及时解答。通过与其他开发者的交流和分享,可以进一步提升自己的开发水平。 总之,QT视频播放器CSDN是一个非常有用的工具,在开发视频播放器时可以充分利用其中的资源和技术支持,帮助开发者更加高效地完成项目。 ### 回答3: Qt视频播放器是一款基于Qt框架开发的多媒体播放器,它提供了丰富的功能和友好的界面,使得用户可以便捷地播放各种格式的视频文件。 Qt作为一个跨平台的开发框架,可以在各种操作系统上运行,因此Qt视频播放器具备了较好的兼容性。它支持在Windows、macOS和Linux等操作系统上进行编译和部署,让用户能够在不同平台上享受到同样稳定可靠的视频播放体验。 Qt视频播放器拥有清晰的界面和丰富的功能,可以实现基本的视频播放功能,如播放、暂停、快进、快退和量调节等。此外,它还支持播放列表功能,用户可以将多个视频文件添加到播放列表中,方便地切换不同的视频文件进行观看。 Qt视频播放器也支持对视频的截图操作,用户可以通过简单的操作将正在播放视频截取下来保存为图片格式。这对于用户来说非常方便,可以用于制作视频封面、保存有趣的场景或做其他用途。 除了基本的视频播放功能外,Qt视频播放器还支持视频格式的转换和编解码功能。用户可以使用该播放器将一个视频文件转换为另一种视频格式,并可以对视频进行编解码的设置,以获得更好的播放效果。 综上所述,Qt视频播放器是一款功能丰富、界面友好并具有较好兼容性的视频播放器。无论是在个人使用还是在开发商用途上,它都能提供稳定、流畅的视频播放体验,深受用户的喜爱。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值