dtkmultimedia
DTK Multimedia module
载入中...
搜索中...
未找到
dmpvproxy.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DMPVPROXY_H
6#define DMPVPROXY_H
7
8#define MWV206_0
9
10#include <dplayerbackend.h>
11#undef Bool
12
13class mpv_handle;
14
15DMULTIMEDIA_BEGIN_NAMESPACE
16class DMpvGLWidget;
17class PlayingMovieInfo;
18
20{
21 struct container
22 {
23 public:
24 explicit container(mpv_handle *pHandle);
25 ~container();
26 mpv_handle *m_pHandle;
27 };
28 QSharedPointer<container> sptr;
29
30public:
31 static MpvHandle fromRawHandle(mpv_handle *pHandle);
32 operator mpv_handle *() const;
33};
34
35enum DecodeMode { AUTO = 0,
36 HARDWARE,
37 SOFTWARE };
38
39class DMpvProxyPrivate;
41{
42 Q_OBJECT
43 Q_DECLARE_PRIVATE(DMpvProxy)
44
45Q_SIGNALS:
46 void has_mpv_events();
47 void crashCheck();
48 void notifyCreateOpenGL(MpvHandle handle);
49
50public:
51 MpvHandle getMpvHandle();
52 explicit DMpvProxy(QObject *parent = 0);
53 virtual ~DMpvProxy();
54 void setDecodeModel(const QVariant &value);
57 void firstInit();
60 bool isPlayable() const override;
62 qint64 duration() const override;
63 qint64 elapsed() const override;
64 QSize videoSize() const override;
65 void setPlaySpeed(double dTimes) override;
66 void savePlaybackPosition() override;
67 bool loadSubtitle(const QFileInfo &fileInfo) override;
68 void toggleSubtitle() override;
69 bool isSubVisible() override;
70 void selectSubtitle(int nId) override;
71 int sid() const override;
72 void setSubDelay(double dSecs) override;
73 double subDelay() const override;
74 void updateSubStyle(const QString &sFont, int nSize) override;
75 void setSubCodepage(const QString &sCodePage) override;
76 QString subCodepage() override;
77 void addSubSearchPath(const QString &sPath) override;
78 void selectTrack(int nId) override;
79 int aid() const override;
80 void changeSoundMode(SoundMode soundMode) override;
81 int volume() const override;
82 bool muted() const override;
83 void setVideoAspect(double dValue) override;
84 double videoAspect() const override;
85 int videoRotation() const override;
86 void setVideoRotation(int nDegree) override;
87 QImage takeScreenshot() const override;
88 void burstScreenshot() override;
89 void stopBurstScreenshot() override;
90 QVariant getProperty(const QString &) const override;
91 void setProperty(const QString &, const QVariant &) override;
92 void nextFrame() override;
93 void previousFrame() override;
95 void makeCurrent() override;
96
97public slots:
98 void play() override;
99 void pauseResume() override;
100 void stop() override;
101 void seekForward(int nSecs) override;
102 void seekBackward(int nSecs) override;
103 void seekAbsolute(int nPos) override;
104 void volumeUp() override;
105 void volumeDown() override;
106 void changeVolume(int nVol) override;
107 void toggleMute() override;
108 void setMute(bool bMute) override;
109 void setWinID(const qint64 &winID) override;
110
111protected:
112 void initMember();
113 void initGpuInfoFuns();
114 bool isSurportHardWareDecode(const QString sDecodeName, const int &nVideoWidth, const int &nVideoHeight);
115 int getDecodeProbeValue(const QString sDecodeName);
116
117protected slots:
118 void handle_mpv_events();
119 void stepBurstScreenshot();
120
121protected:
122 QScopedPointer<DMpvProxyPrivate> d_ptr;
123};
124
125DMULTIMEDIA_END_NAMESPACE
126
127#endif /* ifndef DMPVPROXY_H */
DMpvProxy类提供mpv播放功能的引擎类.
Definition dmpvproxy.h:41
bool muted() const override
获取媒体播放是否静音.
void refreshDecode()
刷新解码模式.
void makeCurrent() override
指定绘制设备.
void toggleSubtitle() override
设置是否显示Sub字幕.
void savePlaybackPosition() override
保存当前视频播放位置.
void nextFrame() override
媒体下一帧.
void changehwaccelMode(hwaccelMode hwaccelMode) override
改变硬件加速模式.
void previousFrame() override
媒体上一帧.
int aid() const override
获取音轨id.
void addSubSearchPath(const QString &sPath) override
添加媒体Sub字幕路径.
double videoAspect() const override
获取媒体播放显示长宽比.
qint64 elapsed() const override
获取媒体已播放时长.
QSize videoSize() const override
获取媒体分辨率.
void updateSubStyle(const QString &sFont, int nSize) override
更新媒体播放文字显示样式.
bool isPlayable() const override
当前媒体是否能够播放.
void setSubDelay(double dSecs) override
设置Sub字幕延迟显示时间.
void setPlaySpeed(double dTimes) override
设置媒体播放速度.
void changeSoundMode(SoundMode soundMode) override
改变声音播放模式.
void setProperty(const QString &, const QVariant &) override
设置播放属性.
QImage takeScreenshot() const override
获取当前视频播放的截图.
double subDelay() const override
获取Sub字幕延迟显示时间.
void stopBurstScreenshot() override
停止连拍截图.
bool isSubVisible() override
Sub字幕是否显示.
void burstScreenshot() override
连拍截图,截图间隔时间为5秒
void pollingEndOfPlayback()
轮询直到播放结束.
void initSetting()
初始化播放设置.
void setVideoAspect(double dValue) override
设置媒体播放显示长宽比.
qint64 duration() const override
获取媒体时长.
bool loadSubtitle(const QFileInfo &fileInfo) override
加载媒体Sub字幕标题.
int sid() const override
获取Sub字幕id.
int volume() const override
获取媒体播放音量.
int videoRotation() const override
获取顺时针旋转视频角度.
void setVideoRotation(int nDegree) override
设置顺时针旋转视频角度.
void initMpvFuns()
初始化mpv接口函数.
const PlayingMovieInfo & playingMovieInfo() override
获取当前播放媒体信息.
QString subCodepage() override
获取媒体Sub字幕编码页.
void setDecodeModel(const QVariant &value)
设置解码模式.
void firstInit()
第一次打开播放器播放视频.
void selectSubtitle(int nId) override
根据id选择加载媒体Sub字幕.
QVariant getProperty(const QString &) const override
根据参数获取播放属性.
void setSubCodepage(const QString &sCodePage) override
设置媒体Sub字幕编码页.
void selectTrack(int nId) override
根据id选择音频轨道.
DPlayerBackend类提供播放功能的引擎类.
Definition dplayerbackend.h:25
hwaccelMode
硬件加速
Definition dplayerbackend.h:50
SoundMode
声音模式
Definition dplayerbackend.h:45
Definition dmpvproxy.h:20
Definition dplayerbackend.h:18