7 #pragma once // NOLINT(build/header_guard)
10 #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)
14 #include "AgoraOptional.h"
20 #define KEY_PLAYER_REAL_TIME_STREAM_ANALYZE_DURATION "analyze_duration"
26 #define KEY_PLAYER_ENABLE_AUDIO "enable_audio"
32 #define KEY_PLAYER_ENABLE_VIDEO "enable_video"
38 #define KEY_PLAYER_ENABLE_SEARCH_METADATA "enable_search_metadata"
44 #define KEY_PLAYER_SEI_FILTER_TYPE "set_sei_filter_type"
51 static const uint8_t kMaxCharBufferLength = 50;
56 enum MEDIA_PLAYER_STATE {
59 PLAYER_STATE_IDLE = 0,
65 PLAYER_STATE_OPEN_COMPLETED,
74 PLAYER_STATE_PLAYBACK_COMPLETED,
77 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED,
83 PLAYER_STATE_PAUSING_INTERNAL = 50,
86 PLAYER_STATE_STOPPING_INTERNAL,
89 PLAYER_STATE_SEEKING_INTERNAL,
92 PLAYER_STATE_GETTING_INTERNAL,
95 PLAYER_STATE_NONE_INTERNAL,
98 PLAYER_STATE_DO_NOTHING_INTERNAL,
101 PLAYER_STATE_SET_TRACK_INTERNAL,
104 PLAYER_STATE_FAILED = 100,
110 enum MEDIA_PLAYER_ERROR {
113 PLAYER_ERROR_NONE = 0,
116 PLAYER_ERROR_INVALID_ARGUMENTS = -1,
119 PLAYER_ERROR_INTERNAL = -2,
122 PLAYER_ERROR_NO_RESOURCE = -3,
125 PLAYER_ERROR_INVALID_MEDIA_SOURCE = -4,
128 PLAYER_ERROR_UNKNOWN_STREAM_TYPE = -5,
131 PLAYER_ERROR_OBJ_NOT_INITIALIZED = -6,
134 PLAYER_ERROR_CODEC_NOT_SUPPORTED = -7,
137 PLAYER_ERROR_VIDEO_RENDER_FAILED = -8,
140 PLAYER_ERROR_INVALID_STATE = -9,
143 PLAYER_ERROR_URL_NOT_FOUND = -10,
146 PLAYER_ERROR_INVALID_CONNECTION_STATE = -11,
149 PLAYER_ERROR_SRC_BUFFER_UNDERFLOW = -12,
152 PLAYER_ERROR_INTERRUPTED = -13,
155 PLAYER_ERROR_NOT_SUPPORTED = -14,
158 PLAYER_ERROR_TOKEN_EXPIRED = -15,
161 PLAYER_ERROR_IP_EXPIRED = -16,
164 PLAYER_ERROR_UNKNOWN = -17,
171 enum MEDIA_STREAM_TYPE {
174 STREAM_TYPE_UNKNOWN = 0,
177 STREAM_TYPE_VIDEO = 1,
180 STREAM_TYPE_AUDIO = 2,
183 STREAM_TYPE_SUBTITLE = 3,
190 enum MEDIA_PLAYER_EVENT {
193 PLAYER_EVENT_SEEK_BEGIN = 0,
196 PLAYER_EVENT_SEEK_COMPLETE = 1,
199 PLAYER_EVENT_SEEK_ERROR = 2,
202 PLAYER_EVENT_AUDIO_TRACK_CHANGED = 5,
205 PLAYER_EVENT_BUFFER_LOW = 6,
208 PLAYER_EVENT_BUFFER_RECOVER = 7,
211 PLAYER_EVENT_FREEZE_START = 8,
214 PLAYER_EVENT_FREEZE_STOP = 9,
217 PLAYER_EVENT_SWITCH_BEGIN = 10,
220 PLAYER_EVENT_SWITCH_COMPLETE = 11,
223 PLAYER_EVENT_SWITCH_ERROR = 12,
226 PLAYER_EVENT_FIRST_DISPLAYED = 13,
233 enum PLAYER_PRELOAD_EVENT {
236 PLAYER_PRELOAD_EVENT_BEGIN = 0,
239 PLAYER_PRELOAD_EVENT_COMPLETE = 1,
242 PLAYER_PRELOAD_EVENT_ERROR = 2,
326 enum MEDIA_PLAYER_METADATA_TYPE {
329 PLAYER_METADATA_TYPE_UNKNOWN = 0,
332 PLAYER_METADATA_TYPE_SEI = 1,