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