ZegoLiveRoom
media_player.h
Go to the documentation of this file.
1#ifndef ZEGOMediaPlayer_h
2#define ZEGOMediaPlayer_h
3#include "video_format.h"
4
5namespace AVE
6{
8 {
9 public:
11 {
12 TYPE_PLAYER = 0, //only play
13 TYPE_AUX //play and mix into publish stream.
14 };
15
17 {
21 };
22
24 {
25 public:
26 virtual void OnPlayStart() = 0;
27 virtual void OnPlayError(int code) = 0;
28 virtual void OnVideoBegin() = 0;
29 virtual void OnAudioBegin() = 0;
30 virtual void OnPlayEnd() = 0;
31 virtual void OnLoadComplete() = 0;
32 virtual void OnSeekComplete(int code, long timestamp_ms) = 0; //Units in millisecond
33 virtual void OnPlayPause() = 0;
34 virtual void OnPlayResume() = 0;
35 virtual void OnPlayStop() = 0;
36 virtual void OnBufferBegin() = 0;
37 virtual void OnBufferEnd() = 0;
38 virtual void OnSnapshot(void *image) = 0;
39 virtual void OnProcessInterval(long timestamp_ms) = 0;
40 virtual void OnReadEOF() = 0;
41 virtual void OnVideoSizeChanged(int width, int height) = 0;
42 virtual void OnLocalCache(int err, const char *url, const char *local_path) = 0;
43 virtual void OnDecodeError() = 0;
44 virtual void OnMonitorEvent(int event) = 0;
45 };
46
48 {
49 public:
50 virtual void OnPlayVideoData(const char* data, int len, const VideoDataFormat& format, int timestamp_ms) = 0;
51 virtual void OnPlayVideoData2(const char **pData, int* len, const VideoDataFormat& format, int timestamp_ms) = 0;
52 };
53
55 {
56 public:
57 virtual int OnVideoDecryptContextCallback(const unsigned char* data, int length) = 0;
58 virtual int OnVideoDecryptCallback(unsigned char* in_data, int in_length,
59 unsigned char** out_data, int* out_length, VideoCodecType codec_type) = 0;
60 };
61
63 {
64 public: //only pcm data
65 virtual void OnPlayAudioData(unsigned char *const data, int len, int sample_rate, int num_channels, int bit_depth) = 0;
66 };
67
69 {
70 public:
71 virtual int Open(const char *path) = 0;
72 virtual void Close() = 0;
73 virtual int Read(unsigned char *buf, int size) = 0;
74 virtual long long Seek(long long pos, int seekMode) = 0;
75 virtual long long GetSize() = 0;
76 };
77
79 {
80 public:
81 virtual void OnBlockBegin(const char *path) = 0;
82 virtual int OnBlockData(unsigned char *buf, int size) = 0;
83 };
84
85 typedef enum
86 {
88 MSG_TYPE_USER_PACKETED = 0x3E8, //User packeted message
89 MSG_TYPE_USER_DEFINED = 0x3E9, //User input message other than SEI(payload type = 5)
90 MSG_TYPE_MIXER_VOLUME = 0x3EA, //music wave
91 MSG_TYPE_LAYOUT_SETTING = 0x3EB, //layout information
92 MSG_TYPE_USER_DEFINED_NEED_FILTER = 0x3EC, //SEI(payload type = 5), uuid filter is required or all message(payload type = 5) will be thrown.
94
96 {
97 public:
98 virtual void OnMediaSideInfo(const unsigned char* buf, int bufLen, int msgType) = 0; //msgType SideInfoMsgType
99 };
100
102 {
108 };
109 struct LoadParam {
110 const char* path = 0;
111 long start_ms = 0;
112 int loop_count = 0;
113 unsigned char* mem = 0;
114 int mem_len = 0;
116 unsigned char instant_play = 0;
117 const char* iplist = 0;
118 };
119 struct MediaInfo {
120 int width = 0;
121 int height = 0;
122 int frame_rate = 0;
123 };
124 struct PlayStat {
125 double vsrc_fps;
126 double vdec_fps;
127 double vrnd_fps;
128 double asrc_fps;
129 double adec_fps;
130 double arnd_fps;
131 };
133 {
137 };
138
139 typedef enum
140 {
145 virtual int EnableLiveEffect(bool bEnable, int properties, int level) = 0;
146 //EffectPropertyMask properties = PROP_EFFECT_LOCAL | PROP_EFFECT_PUBLISH
147 //level = 0; not use now
148
149 virtual void SetEventCallback(EventCallback* callback) = 0;
150 virtual void SetVideoSourceCallback(VideoSourceCallback* callback) = 0;
151 virtual void SetBlockDataCallback(BlockDataCallback *callback, int block_size) = 0;
152 virtual void SetPlayerType(PlayerType type) = 0;
153 virtual float GetMediaPlayerSoundLevel() = 0;
154 virtual int GetMediaPlayerFreqSpectrum(float *spectrum_buf, int buf_size, int *spectrum_size) = 0;
155 virtual void SetVolume(int volume) = 0; // local volume: 0 ~ 200, default volume is 60
156 virtual void SetPublishVolume(int volume) = 0; // publish volume: 0 ~ 200, default volume is 60
157 virtual int GetVolume() = 0; // local volume
158 virtual int GetPublishVolume() = 0; // publish volume
159 virtual void MuteLocal(bool bMute) = 0;
160 virtual void Load(const char* path, long start_ms = 0, int loop_count = 0) = 0; //loop_count: -1 = infinite loop
161 virtual void Load(unsigned char* mem, int mem_len, long start_ms = 0, int loop_count = 0) = 0;
162 virtual void Start(const char* path, long start_ms = 0, int loop_count = 0) = 0;
163 // repeat_play: play repeat or not;
164 virtual void Start(const char* path, bool repeat_play = false, long start_ms = 0) = 0;
165 virtual void Start(unsigned char* mem, int mem_len, long start_ms = 0, int loop_count = 0) = 0;
166 virtual void Load(LoadParam param) = 0;
167 virtual void Stop() = 0;
168 virtual void Pause() = 0;
169 virtual void Resume() = 0;
170 virtual void SeekTo(long timestamp_ms) = 0; //Units in millisecond
171 virtual long GetDuration() = 0;
172 virtual long GetCurrentDuration() = 0;
173 virtual long SetProcessInterval(long interval_ms) = 0;
174
175 virtual void SetView(void *view, bool enable_alpha_blend) = 0;
176 virtual void SetViewMode(int nMode) = 0;
177 virtual void ClearView() = 0;
178 virtual void EnableViewMirror(bool enable) = 0;
179
180 //format support:ARGB32/ABGR32/RGBA32/BGRA32/I420/NV12/NV21
181 virtual void SetVideoPlayCallback(VideoPlayCallback *callback, VideoPixelFormat format) = 0;
182 virtual void SetVideoCryptoCallback(VideoCryptoCallback* callback) = 0;
183 virtual void SetAudioPlayCallback(AudioPlayCallback *callback) = 0;
184 virtual void SetMediaSideCallback(MediaSideCallback *callback) = 0;
185 virtual long SetAudioStream(long streamidx) = 0;
186 virtual long SetAudioPublishStream(long streamidx) = 0;
187 virtual long GetAudioStreamCount() = 0;
188 virtual void SetRepeatMode(bool repeat_play) = 0;
189 virtual void SetLoopCount(int loop_count) = 0;
190 virtual long TakeSnapshot() = 0;
191 virtual long RequireHWDecoder() = 0;
192 virtual void SetBackgroundColor(int color) = 0; //0x00RRGGBB
193 virtual void EnableAccurateSeek(bool bAccurate = false) = 0;
194 virtual void SetAccurateSeekTimeout(long timeout_ms = 5000) = 0;
195 virtual void SetActiveAudioChannel(AudioChannel channel) = 0;
196 // key_shift_value can set any value between -8.0 ~ 8.0
197 virtual int SetAudioChannelKeyShift(AudioChannel channel, float key_shift_value) = 0;
198 virtual int EnableAudioChannelKeyShift(AudioChannel channel, bool enable, float key_shift_value) = 0;
199 virtual void SetNetSourceCache(int max_cache_ms, int max_cache_size) = 0;
200 virtual int GetNetSourceCacheStat(int *cache_ms, int *cache_size) = 0;
201 virtual void SetBufferThreshold(int buffer_end_threshold_ms) = 0;
202 virtual void SetLoadResourceTimeout(int timeout_ms) = 0;
203 // header format : "Host: xxx\r\nUser-Agent: xxx\r\n"
204 virtual void SetHttpHeaders(const char *header) = 0;
205 // speed between 0.5 ~ 2.0
206 virtual int SetPlaySpeed(float speed) = 0;
207 virtual void EnableMultiAudioTrackDecode(bool bEnable = false) = 0;
208 virtual char* GetMetaDataValue(const char *key) = 0;
209 virtual int GetMediaInfo(MediaInfo *info) = 0;
210 virtual bool IsActive() = 0;
211 virtual int SetVirtualStereoGain(float gain) = 0;
212 virtual int EnableVirtualStereo(bool bEnable, int hAngle) = 0;
213 virtual void DisableStream(StreamType type) = 0;
214 virtual void EnableLocalCache(bool enable, const char *local_dir) = 0;
215 virtual int GetPlayStat(PlayStat *stat) = 0;
216 virtual void EnableStatusMonitor(bool enable) = 0;
217 };
218
220 public:
222 {
223 public:
224 virtual void OnPreloadComplete(unsigned int sound_id) = 0;
225 virtual void OnPlayEnd(unsigned int sound_id) = 0;
226 };
227
229 {
230 public:
231 virtual int Open(unsigned int sound_id, const char *path) = 0;
232 virtual void Close(unsigned int sound_id) = 0;
233 virtual int Read(unsigned int sound_id, unsigned char *buf, int size) = 0;
234 virtual long long Seek(unsigned int sound_id, long long pos, int seekMode) = 0;
235 virtual long long GetSize(unsigned int sound_id) = 0;
236 };
237
238 virtual void SetEventCallback(EffectEventCallback* callback) = 0;
239 virtual void SetAudioSourceCallback(AudioSourceCallback* callback) = 0;
240 virtual int PlayEffect(const char *path, unsigned int sound_id, int loop_count = 0, bool publish_out = false) = 0;
241 virtual int StopEffect(unsigned int sound_id) = 0;
242 virtual void PauseEffect(unsigned int sound_id) = 0;
243 virtual void ResumeEffect(unsigned int sound_id) = 0;
244 virtual void SetVolume(unsigned int sound_id, int volume) = 0;
245 virtual void SetPublishVolume(unsigned int sound_id, int volume) = 0;
246 virtual int SeekTo(unsigned int sound_id, long timestamp_ms) = 0; //Units in millisecond
247 virtual void SetPlaySpeed(unsigned int sound_id, float speed) = 0;
248 virtual long GetDuration(unsigned int sound_id) = 0;
249 virtual long GetCurrentDuration(unsigned int sound_id) = 0;
250 virtual void SetVolumeAll(int volume) = 0;
251 virtual void SetPublishVolumeAll(int volume) = 0;
252 virtual void PauseAll() = 0;
253 virtual void ResumeAll() = 0;
254 virtual void StopAll() = 0;
255 virtual int PreloadEffect(const char *path, unsigned int sound_id) = 0;
256 virtual void UnloadEffect(unsigned int sound_id) = 0;
257
258 virtual bool IsActive(int sound_id) = 0;
259 virtual void ResetVirtualStereo(bool bEnable, float gain, int hAngle) = 0;
260 virtual int SetVirtualStereoGain(float gain, int sound_id) = 0;
261 virtual int EnableVirtualStereo(bool bEnable, int hAngle, int sound_id) = 0;
262 };
263}
264
265#endif /* ZEGOMediaPlayer_h */
Definition: media_player.h:229
virtual long long Seek(unsigned int sound_id, long long pos, int seekMode)=0
virtual void Close(unsigned int sound_id)=0
virtual int Read(unsigned int sound_id, unsigned char *buf, int size)=0
virtual int Open(unsigned int sound_id, const char *path)=0
virtual long long GetSize(unsigned int sound_id)=0
Definition: media_player.h:222
virtual void OnPlayEnd(unsigned int sound_id)=0
virtual void OnPreloadComplete(unsigned int sound_id)=0
Definition: media_player.h:219
virtual void SetVolumeAll(int volume)=0
virtual void PauseEffect(unsigned int sound_id)=0
virtual int PreloadEffect(const char *path, unsigned int sound_id)=0
virtual void SetVolume(unsigned int sound_id, int volume)=0
virtual int PlayEffect(const char *path, unsigned int sound_id, int loop_count=0, bool publish_out=false)=0
virtual void SetPublishVolume(unsigned int sound_id, int volume)=0
virtual void SetPlaySpeed(unsigned int sound_id, float speed)=0
virtual void ResumeEffect(unsigned int sound_id)=0
virtual void UnloadEffect(unsigned int sound_id)=0
virtual long GetCurrentDuration(unsigned int sound_id)=0
virtual bool IsActive(int sound_id)=0
virtual int SeekTo(unsigned int sound_id, long timestamp_ms)=0
virtual void ResumeAll()=0
virtual int EnableVirtualStereo(bool bEnable, int hAngle, int sound_id)=0
virtual void SetEventCallback(EffectEventCallback *callback)=0
virtual long GetDuration(unsigned int sound_id)=0
virtual void StopAll()=0
virtual int SetVirtualStereoGain(float gain, int sound_id)=0
virtual void SetAudioSourceCallback(AudioSourceCallback *callback)=0
virtual void ResetVirtualStereo(bool bEnable, float gain, int hAngle)=0
virtual void PauseAll()=0
virtual void SetPublishVolumeAll(int volume)=0
virtual int StopEffect(unsigned int sound_id)=0
Definition: media_player.h:63
virtual void OnPlayAudioData(unsigned char *const data, int len, int sample_rate, int num_channels, int bit_depth)=0
Definition: media_player.h:79
virtual int OnBlockData(unsigned char *buf, int size)=0
virtual void OnBlockBegin(const char *path)=0
Definition: media_player.h:24
virtual void OnPlayError(int code)=0
virtual void OnProcessInterval(long timestamp_ms)=0
virtual void OnLocalCache(int err, const char *url, const char *local_path)=0
virtual void OnSnapshot(void *image)=0
virtual void OnVideoSizeChanged(int width, int height)=0
virtual void OnMonitorEvent(int event)=0
virtual void OnSeekComplete(int code, long timestamp_ms)=0
Definition: media_player.h:96
virtual void OnMediaSideInfo(const unsigned char *buf, int bufLen, int msgType)=0
Definition: media_player.h:55
virtual int OnVideoDecryptContextCallback(const unsigned char *data, int length)=0
virtual int OnVideoDecryptCallback(unsigned char *in_data, int in_length, unsigned char **out_data, int *out_length, VideoCodecType codec_type)=0
Definition: media_player.h:48
virtual void OnPlayVideoData2(const char **pData, int *len, const VideoDataFormat &format, int timestamp_ms)=0
virtual void OnPlayVideoData(const char *data, int len, const VideoDataFormat &format, int timestamp_ms)=0
Definition: media_player.h:69
virtual int Open(const char *path)=0
virtual long long Seek(long long pos, int seekMode)=0
virtual int Read(unsigned char *buf, int size)=0
Definition: media_player.h:8
virtual void Load(LoadParam param)=0
virtual int EnableAudioChannelKeyShift(AudioChannel channel, bool enable, float key_shift_value)=0
virtual void SetView(void *view, bool enable_alpha_blend)=0
virtual void EnableLocalCache(bool enable, const char *local_dir)=0
virtual void EnableMultiAudioTrackDecode(bool bEnable=false)=0
virtual void SetHttpHeaders(const char *header)=0
virtual void SetActiveAudioChannel(AudioChannel channel)=0
virtual float GetMediaPlayerSoundLevel()=0
virtual long RequireHWDecoder()=0
Alpha_Layout_Mode
Definition: media_player.h:102
@ ALPHA_LAYOUT_NULL
Definition: media_player.h:103
@ ALPHA_LAYOUT_LEFT
Definition: media_player.h:105
@ ALPHA_LAYOUT_RIGHT_TOP
Definition: media_player.h:107
@ ALPHA_LAYOUT_RIGHT
Definition: media_player.h:106
@ ALPHA_LAYOUT_DOWN
Definition: media_player.h:104
virtual int EnableLiveEffect(bool bEnable, int properties, int level)=0
SideInfoMsgType
Definition: media_player.h:86
@ MSG_TYPE_USER_DEFINED
Definition: media_player.h:89
@ MSG_TYPE_MIXER_VOLUME
Definition: media_player.h:90
@ MSG_TYPE_USER_DEFINED_NEED_FILTER
Definition: media_player.h:92
@ MSG_TYPE_LAYOUT_SETTING
Definition: media_player.h:91
@ MSG_TYPE_UNKNOWN
Definition: media_player.h:87
@ MSG_TYPE_USER_PACKETED
Definition: media_player.h:88
StreamType
Definition: media_player.h:133
@ STREAM_AUDIO
Definition: media_player.h:135
@ STREAM_NONE
Definition: media_player.h:134
@ STREAM_VIDEO
Definition: media_player.h:136
virtual void MuteLocal(bool bMute)=0
virtual int EnableVirtualStereo(bool bEnable, int hAngle)=0
virtual void SetVideoCryptoCallback(VideoCryptoCallback *callback)=0
virtual void ClearView()=0
virtual int SetVirtualStereoGain(float gain)=0
virtual int GetVolume()=0
virtual void Start(unsigned char *mem, int mem_len, long start_ms=0, int loop_count=0)=0
EffectPropertyMask
Definition: media_player.h:140
@ PROP_EFFECT_LOCAL
Definition: media_player.h:142
@ PROP_EFFECT_PUBLISH
Definition: media_player.h:143
@ PROP_EFFECT_NONE
Definition: media_player.h:141
virtual void EnableStatusMonitor(bool enable)=0
virtual int GetMediaPlayerFreqSpectrum(float *spectrum_buf, int buf_size, int *spectrum_size)=0
virtual void SetBufferThreshold(int buffer_end_threshold_ms)=0
virtual void SetEventCallback(EventCallback *callback)=0
virtual void SetAudioPlayCallback(AudioPlayCallback *callback)=0
virtual bool IsActive()=0
virtual void Load(unsigned char *mem, int mem_len, long start_ms=0, int loop_count=0)=0
virtual long SetAudioStream(long streamidx)=0
virtual void SetVideoPlayCallback(VideoPlayCallback *callback, VideoPixelFormat format)=0
virtual void SetVolume(int volume)=0
virtual long GetDuration()=0
virtual void SeekTo(long timestamp_ms)=0
virtual void SetNetSourceCache(int max_cache_ms, int max_cache_size)=0
virtual void SetLoopCount(int loop_count)=0
virtual int SetAudioChannelKeyShift(AudioChannel channel, float key_shift_value)=0
virtual void SetVideoSourceCallback(VideoSourceCallback *callback)=0
virtual void Start(const char *path, bool repeat_play=false, long start_ms=0)=0
virtual void Load(const char *path, long start_ms=0, int loop_count=0)=0
virtual void SetAccurateSeekTimeout(long timeout_ms=5000)=0
virtual int GetPublishVolume()=0
virtual void Pause()=0
virtual void SetBlockDataCallback(BlockDataCallback *callback, int block_size)=0
virtual long SetAudioPublishStream(long streamidx)=0
virtual char * GetMetaDataValue(const char *key)=0
virtual void SetPublishVolume(int volume)=0
virtual void SetViewMode(int nMode)=0
virtual int GetPlayStat(PlayStat *stat)=0
virtual int SetPlaySpeed(float speed)=0
virtual void SetRepeatMode(bool repeat_play)=0
virtual long SetProcessInterval(long interval_ms)=0
virtual long GetCurrentDuration()=0
virtual void SetBackgroundColor(int color)=0
virtual void Resume()=0
virtual void SetLoadResourceTimeout(int timeout_ms)=0
virtual void SetPlayerType(PlayerType type)=0
virtual int GetMediaInfo(MediaInfo *info)=0
virtual long GetAudioStreamCount()=0
virtual void SetMediaSideCallback(MediaSideCallback *callback)=0
virtual void EnableViewMirror(bool enable)=0
AudioChannel
Definition: media_player.h:17
@ LEFT_CHANNEL
Definition: media_player.h:18
@ ALL_CHANNEL
Definition: media_player.h:20
@ RIGHT_CHANNEL
Definition: media_player.h:19
virtual void Start(const char *path, long start_ms=0, int loop_count=0)=0
virtual void DisableStream(StreamType type)=0
virtual long TakeSnapshot()=0
virtual void Stop()=0
PlayerType
Definition: media_player.h:11
@ TYPE_AUX
Definition: media_player.h:13
@ TYPE_PLAYER
Definition: media_player.h:12
virtual void EnableAccurateSeek(bool bAccurate=false)=0
virtual int GetNetSourceCacheStat(int *cache_ms, int *cache_size)=0
Definition: audio_capture.h:4
VideoCodecType
Definition: video_format.h:190
VideoPixelFormat
Definition: video_format.h:9
Definition: media_player.h:109
unsigned char * mem
Definition: media_player.h:113
unsigned char alpha_layout
Definition: media_player.h:115
unsigned char instant_play
Definition: media_player.h:116
const char * iplist
Definition: media_player.h:117
int loop_count
Definition: media_player.h:112
int mem_len
Definition: media_player.h:114
long start_ms
Definition: media_player.h:111
const char * path
Definition: media_player.h:110
Definition: media_player.h:119
int frame_rate
Definition: media_player.h:122
int width
Definition: media_player.h:120
int height
Definition: media_player.h:121
Definition: media_player.h:124
double adec_fps
Definition: media_player.h:129
double asrc_fps
Definition: media_player.h:128
double arnd_fps
Definition: media_player.h:130
double vdec_fps
Definition: media_player.h:126
double vrnd_fps
Definition: media_player.h:127
double vsrc_fps
Definition: media_player.h:125
Definition: video_format.h:140