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: //only pcm data
57 virtual void OnPlayAudioData(unsigned char *const data, int len, int sample_rate, int num_channels, int bit_depth) = 0;
58 };
59
61 {
62 public:
63 virtual int Open(const char *path) = 0;
64 virtual void Close() = 0;
65 virtual int Read(unsigned char *buf, int size) = 0;
66 virtual long long Seek(long long pos, int seekMode) = 0;
67 virtual long long GetSize() = 0;
68 };
69
71 {
72 public:
73 virtual void OnBlockBegin(const char *path) = 0;
74 virtual int OnBlockData(unsigned char *buf, int size) = 0;
75 };
76
77 typedef enum
78 {
80 MSG_TYPE_USER_PACKETED = 0x3E8, //User packeted message
81 MSG_TYPE_USER_DEFINED = 0x3E9, //User input message other than SEI(payload type = 5)
82 MSG_TYPE_MIXER_VOLUME = 0x3EA, //music wave
83 MSG_TYPE_LAYOUT_SETTING = 0x3EB, //layout information
84 MSG_TYPE_USER_DEFINED_NEED_FILTER = 0x3EC, //SEI(payload type = 5), uuid filter is required or all message(payload type = 5) will be thrown.
86
88 {
89 public:
90 virtual void OnMediaSideInfo(const unsigned char* buf, int bufLen, int msgType) = 0; //msgType SideInfoMsgType
91 };
92
94 {
100 };
101 struct LoadParam {
102 const char* path = 0;
103 long start_ms = 0;
104 int loop_count = 0;
105 unsigned char* mem = 0;
106 int mem_len = 0;
108 unsigned char instant_play = 0;
109 const char* iplist = 0;
110 };
111 struct MediaInfo {
112 int width = 0;
113 int height = 0;
114 int frame_rate = 0;
115 };
116 struct PlayStat {
117 double vsrc_fps;
118 double vdec_fps;
119 double vrnd_fps;
120 double asrc_fps;
121 double adec_fps;
122 double arnd_fps;
123 };
125 {
129 };
130
131 typedef enum
132 {
137 virtual int EnableLiveEffect(bool bEnable, int properties, int level) = 0;
138 //EffectPropertyMask properties = PROP_EFFECT_LOCAL | PROP_EFFECT_PUBLISH
139 //level = 0; not use now
140
141 virtual void SetEventCallback(EventCallback* callback) = 0;
142 virtual void SetVideoSourceCallback(VideoSourceCallback* callback) = 0;
143 virtual void SetBlockDataCallback(BlockDataCallback *callback, int block_size) = 0;
144 virtual void SetPlayerType(PlayerType type) = 0;
145 virtual float GetMediaPlayerSoundLevel() = 0;
146 virtual int GetMediaPlayerFreqSpectrum(float *spectrum_buf, int buf_size, int *spectrum_size) = 0;
147 virtual void SetVolume(int volume) = 0; // local volume: 0 ~ 200, default volume is 60
148 virtual void SetPublishVolume(int volume) = 0; // publish volume: 0 ~ 200, default volume is 60
149 virtual int GetVolume() = 0; // local volume
150 virtual int GetPublishVolume() = 0; // publish volume
151 virtual void MuteLocal(bool bMute) = 0;
152 virtual void Load(const char* path, long start_ms = 0, int loop_count = 0) = 0; //loop_count: -1 = infinite loop
153 virtual void Load(unsigned char* mem, int mem_len, long start_ms = 0, int loop_count = 0) = 0;
154 virtual void Start(const char* path, long start_ms = 0, int loop_count = 0) = 0;
155 // repeat_play: play repeat or not;
156 virtual void Start(const char* path, bool repeat_play = false, long start_ms = 0) = 0;
157 virtual void Start(unsigned char* mem, int mem_len, long start_ms = 0, int loop_count = 0) = 0;
158 virtual void Load(LoadParam param) = 0;
159 virtual void Stop() = 0;
160 virtual void Pause() = 0;
161 virtual void Resume() = 0;
162 virtual void SeekTo(long timestamp_ms) = 0; //Units in millisecond
163 virtual long GetDuration() = 0;
164 virtual long GetCurrentDuration() = 0;
165 virtual long SetProcessInterval(long interval_ms) = 0;
166
167 virtual void SetView(void *view, bool enable_alpha_blend) = 0;
168 virtual void SetViewMode(int nMode) = 0;
169 virtual void ClearView() = 0;
170 virtual void EnableViewMirror(bool enable) = 0;
171
172 //format support:ARGB32/ABGR32/RGBA32/BGRA32/I420/NV12/NV21
173 virtual void SetVideoPlayCallback(VideoPlayCallback *callback, VideoPixelFormat format) = 0;
174 virtual void SetAudioPlayCallback(AudioPlayCallback *callback) = 0;
175 virtual void SetMediaSideCallback(MediaSideCallback *callback) = 0;
176 virtual long SetAudioStream(long streamidx) = 0;
177 virtual long SetAudioPublishStream(long streamidx) = 0;
178 virtual long GetAudioStreamCount() = 0;
179 virtual void SetRepeatMode(bool repeat_play) = 0;
180 virtual void SetLoopCount(int loop_count) = 0;
181 virtual long TakeSnapshot() = 0;
182 virtual long RequireHWDecoder() = 0;
183 virtual void SetBackgroundColor(int color) = 0; //0x00RRGGBB
184 virtual void EnableAccurateSeek(bool bAccurate = false) = 0;
185 virtual void SetAccurateSeekTimeout(long timeout_ms = 5000) = 0;
186 virtual void SetActiveAudioChannel(AudioChannel channel) = 0;
187 // key_shift_value can set any value between -8.0 ~ 8.0
188 virtual int SetAudioChannelKeyShift(AudioChannel channel, float key_shift_value) = 0;
189 virtual int EnableAudioChannelKeyShift(AudioChannel channel, bool enable, float key_shift_value) = 0;
190 virtual void SetNetSourceCache(int max_cache_ms, int max_cache_size) = 0;
191 virtual int GetNetSourceCacheStat(int *cache_ms, int *cache_size) = 0;
192 virtual void SetBufferThreshold(int buffer_end_threshold_ms) = 0;
193 virtual void SetLoadResourceTimeout(int timeout_ms) = 0;
194 // header format : "Host: xxx\r\nUser-Agent: xxx\r\n"
195 virtual void SetHttpHeaders(const char *header) = 0;
196 // speed between 0.5 ~ 2.0
197 virtual int SetPlaySpeed(float speed) = 0;
198 virtual void EnableMultiAudioTrackDecode(bool bEnable = false) = 0;
199 virtual char* GetMetaDataValue(const char *key) = 0;
200 virtual int GetMediaInfo(MediaInfo *info) = 0;
201 virtual bool IsActive() = 0;
202 virtual int SetVirtualStereoGain(float gain) = 0;
203 virtual int EnableVirtualStereo(bool bEnable, int hAngle) = 0;
204 virtual void DisableStream(StreamType type) = 0;
205 virtual void EnableLocalCache(bool enable, const char *local_dir) = 0;
206 virtual int GetPlayStat(PlayStat *stat) = 0;
207 virtual void EnableStatusMonitor(bool enable) = 0;
208 };
209
211 public:
213 {
214 public:
215 virtual void OnPreloadComplete(unsigned int sound_id) = 0;
216 virtual void OnPlayEnd(unsigned int sound_id) = 0;
217 };
218
220 {
221 public:
222 virtual int Open(unsigned int sound_id, const char *path) = 0;
223 virtual void Close(unsigned int sound_id) = 0;
224 virtual int Read(unsigned int sound_id, unsigned char *buf, int size) = 0;
225 virtual long long Seek(unsigned int sound_id, long long pos, int seekMode) = 0;
226 virtual long long GetSize(unsigned int sound_id) = 0;
227 };
228
229 virtual void SetEventCallback(EffectEventCallback* callback) = 0;
230 virtual void SetAudioSourceCallback(AudioSourceCallback* callback) = 0;
231 virtual int PlayEffect(const char *path, unsigned int sound_id, int loop_count = 0, bool publish_out = false) = 0;
232 virtual int StopEffect(unsigned int sound_id) = 0;
233 virtual void PauseEffect(unsigned int sound_id) = 0;
234 virtual void ResumeEffect(unsigned int sound_id) = 0;
235 virtual void SetVolume(unsigned int sound_id, int volume) = 0;
236 virtual void SetPublishVolume(unsigned int sound_id, int volume) = 0;
237 virtual int SeekTo(unsigned int sound_id, long timestamp_ms) = 0; //Units in millisecond
238 virtual void SetPlaySpeed(unsigned int sound_id, float speed) = 0;
239 virtual long GetDuration(unsigned int sound_id) = 0;
240 virtual long GetCurrentDuration(unsigned int sound_id) = 0;
241 virtual void SetVolumeAll(int volume) = 0;
242 virtual void SetPublishVolumeAll(int volume) = 0;
243 virtual void PauseAll() = 0;
244 virtual void ResumeAll() = 0;
245 virtual void StopAll() = 0;
246 virtual int PreloadEffect(const char *path, unsigned int sound_id) = 0;
247 virtual void UnloadEffect(unsigned int sound_id) = 0;
248
249 virtual bool IsActive(int sound_id) = 0;
250 virtual void ResetVirtualStereo(bool bEnable, float gain, int hAngle) = 0;
251 virtual int SetVirtualStereoGain(float gain, int sound_id) = 0;
252 virtual int EnableVirtualStereo(bool bEnable, int hAngle, int sound_id) = 0;
253 };
254}
255
256#endif /* ZEGOMediaPlayer_h */
Definition: media_player.h:220
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:213
virtual void OnPlayEnd(unsigned int sound_id)=0
virtual void OnPreloadComplete(unsigned int sound_id)=0
Definition: media_player.h:210
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:55
virtual void OnPlayAudioData(unsigned char *const data, int len, int sample_rate, int num_channels, int bit_depth)=0
Definition: media_player.h:71
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:88
virtual void OnMediaSideInfo(const unsigned char *buf, int bufLen, int msgType)=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:61
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:94
@ ALPHA_LAYOUT_NULL
Definition: media_player.h:95
@ ALPHA_LAYOUT_LEFT
Definition: media_player.h:97
@ ALPHA_LAYOUT_RIGHT_TOP
Definition: media_player.h:99
@ ALPHA_LAYOUT_RIGHT
Definition: media_player.h:98
@ ALPHA_LAYOUT_DOWN
Definition: media_player.h:96
virtual int EnableLiveEffect(bool bEnable, int properties, int level)=0
SideInfoMsgType
Definition: media_player.h:78
@ MSG_TYPE_USER_DEFINED
Definition: media_player.h:81
@ MSG_TYPE_MIXER_VOLUME
Definition: media_player.h:82
@ MSG_TYPE_USER_DEFINED_NEED_FILTER
Definition: media_player.h:84
@ MSG_TYPE_LAYOUT_SETTING
Definition: media_player.h:83
@ MSG_TYPE_UNKNOWN
Definition: media_player.h:79
@ MSG_TYPE_USER_PACKETED
Definition: media_player.h:80
StreamType
Definition: media_player.h:125
@ STREAM_AUDIO
Definition: media_player.h:127
@ STREAM_NONE
Definition: media_player.h:126
@ STREAM_VIDEO
Definition: media_player.h:128
virtual void MuteLocal(bool bMute)=0
virtual int EnableVirtualStereo(bool bEnable, int hAngle)=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:132
@ PROP_EFFECT_LOCAL
Definition: media_player.h:134
@ PROP_EFFECT_PUBLISH
Definition: media_player.h:135
@ PROP_EFFECT_NONE
Definition: media_player.h:133
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
VideoPixelFormat
Definition: video_format.h:7
Definition: media_player.h:101
unsigned char * mem
Definition: media_player.h:105
unsigned char alpha_layout
Definition: media_player.h:107
unsigned char instant_play
Definition: media_player.h:108
const char * iplist
Definition: media_player.h:109
int loop_count
Definition: media_player.h:104
int mem_len
Definition: media_player.h:106
long start_ms
Definition: media_player.h:103
const char * path
Definition: media_player.h:102
Definition: media_player.h:111
int frame_rate
Definition: media_player.h:114
int width
Definition: media_player.h:112
int height
Definition: media_player.h:113
Definition: media_player.h:116
double adec_fps
Definition: media_player.h:121
double asrc_fps
Definition: media_player.h:120
double arnd_fps
Definition: media_player.h:122
double vdec_fps
Definition: media_player.h:118
double vrnd_fps
Definition: media_player.h:119
double vsrc_fps
Definition: media_player.h:117
Definition: video_format.h:26