7 #pragma once // NOLINT(build/header_guard)
12 #include "AgoraOptional.h"
18 #define KEY_PLAYER_REAL_TIME_STREAM_ANALYZE_DURATION "analyze_duration"
24 #define KEY_PLAYER_ENABLE_AUDIO "enable_audio"
30 #define KEY_PLAYER_ENABLE_VIDEO "enable_video"
36 #define KEY_PLAYER_ENABLE_SEARCH_METADATA "enable_search_metadata"
42 #define KEY_PLAYER_SEI_FILTER_TYPE "set_sei_filter_type"
49 static const uint8_t kMaxCharBufferLength = 50;
54 enum MEDIA_PLAYER_STATE {
57 PLAYER_STATE_IDLE = 0,
63 PLAYER_STATE_OPEN_COMPLETED,
72 PLAYER_STATE_PLAYBACK_COMPLETED,
75 PLAYER_STATE_PLAYBACK_ALL_LOOPS_COMPLETED,
81 PLAYER_STATE_PAUSING_INTERNAL = 50,
84 PLAYER_STATE_STOPPING_INTERNAL,
87 PLAYER_STATE_SEEKING_INTERNAL,
90 PLAYER_STATE_GETTING_INTERNAL,
93 PLAYER_STATE_NONE_INTERNAL,
96 PLAYER_STATE_DO_NOTHING_INTERNAL,
99 PLAYER_STATE_SET_TRACK_INTERNAL,
102 PLAYER_STATE_FAILED = 100,
108 enum MEDIA_PLAYER_ERROR {
111 PLAYER_ERROR_NONE = 0,
114 PLAYER_ERROR_INVALID_ARGUMENTS = -1,
117 PLAYER_ERROR_INTERNAL = -2,
120 PLAYER_ERROR_NO_RESOURCE = -3,
123 PLAYER_ERROR_INVALID_MEDIA_SOURCE = -4,
126 PLAYER_ERROR_UNKNOWN_STREAM_TYPE = -5,
129 PLAYER_ERROR_OBJ_NOT_INITIALIZED = -6,
132 PLAYER_ERROR_CODEC_NOT_SUPPORTED = -7,
135 PLAYER_ERROR_VIDEO_RENDER_FAILED = -8,
138 PLAYER_ERROR_INVALID_STATE = -9,
141 PLAYER_ERROR_URL_NOT_FOUND = -10,
144 PLAYER_ERROR_INVALID_CONNECTION_STATE = -11,
147 PLAYER_ERROR_SRC_BUFFER_UNDERFLOW = -12,
150 PLAYER_ERROR_INTERRUPTED = -13,
153 PLAYER_ERROR_NOT_SUPPORTED = -14,
156 PLAYER_ERROR_TOKEN_EXPIRED = -15,
159 PLAYER_ERROR_IP_EXPIRED = -16,
162 PLAYER_ERROR_UNKNOWN = -17,
169 enum MEDIA_STREAM_TYPE {
172 STREAM_TYPE_UNKNOWN = 0,
175 STREAM_TYPE_VIDEO = 1,
178 STREAM_TYPE_AUDIO = 2,
181 STREAM_TYPE_SUBTITLE = 3,
188 enum MEDIA_PLAYER_EVENT {
191 PLAYER_EVENT_SEEK_BEGIN = 0,
194 PLAYER_EVENT_SEEK_COMPLETE = 1,
197 PLAYER_EVENT_SEEK_ERROR = 2,
200 PLAYER_EVENT_AUDIO_TRACK_CHANGED = 5,
203 PLAYER_EVENT_BUFFER_LOW = 6,
206 PLAYER_EVENT_BUFFER_RECOVER = 7,
209 PLAYER_EVENT_FREEZE_START = 8,
212 PLAYER_EVENT_FREEZE_STOP = 9,
215 PLAYER_EVENT_SWITCH_BEGIN = 10,
218 PLAYER_EVENT_SWITCH_COMPLETE = 11,
221 PLAYER_EVENT_SWITCH_ERROR = 12,
224 PLAYER_EVENT_FIRST_DISPLAYED = 13,
227 PLAYER_EVENT_REACH_CACHE_FILE_MAX_COUNT = 14,
230 PLAYER_EVENT_REACH_CACHE_FILE_MAX_SIZE = 15,
233 PLAYER_EVENT_TRY_OPEN_START = 16,
236 PLAYER_EVENT_TRY_OPEN_SUCCEED = 17,
239 PLAYER_EVENT_TRY_OPEN_FAILED = 18,
246 enum PLAYER_PRELOAD_EVENT {
249 PLAYER_PRELOAD_EVENT_BEGIN = 0,
252 PLAYER_PRELOAD_EVENT_COMPLETE = 1,
255 PLAYER_PRELOAD_EVENT_ERROR = 2,
339 enum MEDIA_PLAYER_METADATA_TYPE {
342 PLAYER_METADATA_TYPE_UNKNOWN = 0,
345 PLAYER_METADATA_TYPE_SEI = 1,
386 virtual int onReadData(
unsigned char *buffer,
int bufferSize) = 0;
400 virtual int64_t
onSeek(int64_t offset,
int whence) = 0;