1 Star 0 Fork 0

张文超/qtaod-example

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mpvplayer.h 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
张文超 提交于 2024-10-25 16:58 . 基于qt6的简单播放器
#ifndef MPVPLAYER_H
#define MPVPLAYER_H
#include <QWidget>
#include <QSharedPointer>
#include <mpv/client.h>
#include "m3u8parser.h"
class MpvPlayer : public QWidget
{
Q_OBJECT
public:
explicit MpvPlayer(QWidget *parent = nullptr);
virtual ~MpvPlayer();
void createMpvPlayer(QWidget *videoWin);
void stop();
void start();
void playLocalVideo(const QString &filename); // 播放视频
void playHLSVideo(const QString &m3u8_url); // 播放视频
void setVolume(int64_t volume);
void setMute(bool flag);
void setSpeed(double speed);
void setPos(int64_t sec);
private slots:
void onMpvEvents(); // 这个槽函数由 wakeup()调用(通过mpv_events信号)
signals:
void mpvEvents(); // 触发on_mpv_events()槽函数的信号
void mpvPalyEnd(); // 播放结束的信号
void durationChangedSignal(int64_t);
void timePosChangedSignal(int64_t);
void hlsRequestFailedSignal(const QString);
void pieceDownloadFailSignal(int idx, const QString &msg);
void hlsPlayErrorSignal();
void pieceLoadingSignal();
void pieceLoadedSignal();
private:
void handleMpvEvent(mpv_event *event); // 处理mpv事件
void hlsRequestSuccessSlots();
void hlsRequestFailedSlots(const QString msg);
void pieceDownloadSuccessSlots(int idx);
void pieceDownloadFailSlots(int idx, const QString &msg);
private:
QWidget *_parent;
bool _is_hls_video;
QString _store_dir;
int _total_duration;
M3u8Node _cur_piece;
QSharedPointer<M3u8Parser> _m3u8_parser;
mpv_handle *_mpv;
};
#endif // MPVPLAYER_H
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/qigezi/qtaod-example.git
git@gitee.com:qigezi/qtaod-example.git
qigezi
qtaod-example
qtaod-example
master

搜索帮助