【三十八】【QT开发应用】vlcplayer视频播放器(一)实现视频播放,视频暂停,视频停止,进度条调节,音量调节,时长显示功能

效果展示

vlcplayer_test视频播放器

MainWidget.ui

在这里插入图片描述

  • 注意控件的布局和命名,控件的命名和信号与槽函数的绑定有关,所以这点很重要。

下载VLC组件和环境配置

  • videolan下载地址
  • 我下载的是vlc-3.0.8-win64版本.
    在这里插入图片描述
    在这里插入图片描述
  • 将下载的文件复制粘贴到项目文件中.
    在这里插入图片描述
    在这里插入图片描述
  • 复制粘贴这三个文件到项目的debug文件夹里面.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 然后我们在主文件里面添加#include <vlc/vlc.h>头文件.

MainWidget.h

#pragma once

#include <QtWidgets>
#include "ui_MainWidget.h"
#include <vlc/vlc.h>



class MainWidget : public QWidget
{
   
   
    Q_OBJECT

public:
    MainWidget(QWidget *parent = nullptr);
    ~MainWidget();
    
    libvlc_media_player_t* getMediaPlayer();
    //获取media player对象
    qint64 getDuration();
    //获取总时长,单位是秒
    void setTimeSliderPos(int value);
    //设置时间滑动条的值
    void setVolumeSliderPos(int value);
    //设置音量滑动条的值
    void setTimeText(QString str);
    //设置时间标签文本


private slots:
    void on_btnOpen_clicked();
    //打开按钮槽函数
    void on_btnPlay_clicked();
    //播放按钮槽函数
    void on_btnPause_clicked();
    //暂停按钮槽函数
    void on_btnStop_clicked();
	//停止按钮槽函数
	
    void onTimeSliderMoved(int value);
    //时间滑动条移动槽函数
    void onVolumeSliderMoved(int value);
	//音量滑动条移动槽函数
private:
    Ui::MainWidgetClass ui;

    libvlc_instance_t* m_pInstance = nullptr;
    //视频示例,负责管理全局配置和资源
    libvlc_media_player_t* m_pMediaPlayer = nullptr;
    //VLC 媒体播放器的指针,用于控制媒体的播放、暂停、停止等操作
    libvlc_media_t* m_pMedia = nullptr;
    // VLC 媒体的指针,用于加载和管理特定的媒体内容(如音频或视频文件)
    libvlc_event_manager_t* m_pEvent_manager = nullptr;
    //事件管理器的指针,负责处理 VLC 播放器的各种事件(例如媒体播放完毕、音量变化等)
    qint64 m_totalSecs = -1;
    //总时长,单位是秒
};
  • 我们利用vlc库去实现视频播放器,那么我们就需要按照他人的要求去编写代码,因为vlc库是别人写出来的东西,而他人的要求就是需要我们去定义示例,媒体播放器,媒体,事件等对象,并按照要求去使用.

MainWidget.cpp

#include "MainWidget.h"

void vlc_callback(const struct libvlc_event_t* p_event, void* p_data) {
   
   
	MainWidget* pMain 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

妖精七七_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值