效果展示
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

实现视频播放,视频暂停,视频停止,进度条调节,音量调节,时长显示功能&spm=1001.2101.3001.5002&articleId=143244188&d=1&t=3&u=42ba73acc0cf473f83b39ada3f6b5d74)
1211

被折叠的 条评论
为什么被折叠?



