1# AVPlayer 2 3 4## 概述 5 6为媒体源提供播放能力的API。 7 8**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 9 10**起始版本:** 11 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [avplayer.h](avplayer_8h.md) | 定义avplayer接口。使用AVPlayer提供的Native API播放媒体源。 | 21| [avplayer_base.h](avplayer__base_8h.md) | 定义AVPlayer的结构体和枚举。 | 22 23 24### 结构体 25 26| 名称 | 描述 | 27| -------- | -------- | 28| struct [AVPlayerCallback](_a_v_player_callback.md) | (已废弃)包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。 | 29 30 31### 类型定义 32 33| 名称 | 描述 | 34| -------- | -------- | 35| typedef struct [MediaKeySession](#mediakeysession) [MediaKeySession](#mediakeysession) | MediaKeySession类型。 | 36| typedef struct [DRM_MediaKeySystemInfo](#drm_mediakeysysteminfo) [DRM_MediaKeySystemInfo](#drm_mediakeysysteminfo) | DRM_MediaKeySystemInfo类型。 | 37| typedef void(\* [Player_MediaKeySystemInfoCallback](#player_mediakeysysteminfocallback)) (OH_AVPlayer \*player, [DRM_MediaKeySystemInfo](#drm_mediakeysysteminfo) \*mediaKeySystemInfo) | 播放器DRM信息更新时被调用。 | 38| typedef enum [AVPlayerState](#avplayerstate-1) [AVPlayerState](#avplayerstate) | 播放状态。 | 39| typedef enum [AVPlayerSeekMode](#avplayerseekmode-1) [AVPlayerSeekMode](#avplayerseekmode) | 跳转模式。 | 40| typedef enum [AVPlaybackSpeed](#avplaybackspeed-1) [AVPlaybackSpeed](#avplaybackspeed) | 播放速度。 | 41| typedef enum [AVPlayerOnInfoType](#avplayeroninfotype-1) [AVPlayerOnInfoType](#avplayeroninfotype) | OnInfo类型。 | 42| typedef enum [AVPlayerBufferingType](#avplayerbufferingtype-1) [AVPlayerBufferingType](#avplayerbufferingtype) | 播放缓冲消息类型定义。 | 43| typedef void(\*[OH_AVPlayerOnInfo](#oh_avplayeroninfo)) (OH_AVPlayer \*player, [AVPlayerOnInfoType](#avplayeroninfotype) type, int32_t extra) | (已废弃)收到播放器消息时调用。 | 44| typedef void(\*[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback)) (OH_AVPlayer \*player, [AVPlayerOnInfoType](#avplayeroninfotype) type, OH_AVFormat \*infoBody, void \*userData) | 收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。 | 45| typedef void(\* [OH_AVPlayerOnError](#oh_avplayeronerror)) (OH_AVPlayer \*player, int32_t errorCode, const char \*errorMsg) | (已废弃)在API 9以上的版本发生错误时调用。 | 46| typedef void(\* [OH_AVPlayerOnErrorCallback](#oh_avplayeronerrorcallback)) (OH_AVPlayer \*player, int32_t errorCode, const char \*errorMsg, void \*userData) | 发生错误时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnError函数。 | 47| typedef struct [AVPlayerCallback](_a_v_player_callback.md) [AVPlayerCallback](#avplayercallback) | (已废弃)包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。 | 48 49 50### 枚举 51 52| 名称 | 描述 | 53| -------- | -------- | 54| [AVPlayerState](#avplayerstate-1) {<br/>AV_IDLE = 0, <br/>AV_INITIALIZED = 1, <br/>AV_PREPARED = 2, <br/>AV_PLAYING = 3,<br/>AV_PAUSED = 4, <br/>AV_STOPPED = 5, <br/>AV_COMPLETED = 6, <br/>AV_RELEASED = 7,<br/>AV_ERROR = 8<br/>} | 播放状态。 | 55| [AVPlayerSeekMode](#avplayerseekmode) { <br/>AV_SEEK_NEXT_SYNC = 0, <br/>AV_SEEK_PREVIOUS_SYNC, <br/>AV_SEEK_CLOSEST = 2<br/>} | 跳转模式。 | 56| [AVPlaybackSpeed](#avplaybackspeed-1) {<br/>AV_SPEED_FORWARD_0_75_X, <br/>AV_SPEED_FORWARD_1_00_X, <br/>AV_SPEED_FORWARD_1_25_X, <br/> AV_SPEED_FORWARD_1_75_X,<br/>AV_SPEED_FORWARD_2_00_X, <br/>AV_SPEED_FORWARD_0_50_X, <br/>AV_SPEED_FORWARD_1_50_X<br/>} | 播放速度。 | 57| [AVPlayerOnInfoType](#avplayeroninfotype-1) {<br/>AV_INFO_TYPE_SEEKDONE = 0, <br/>AV_INFO_TYPE_SPEEDDONE = 1, <br/>AV_INFO_TYPE_BITRATEDONE = 2, <br/>AV_INFO_TYPE_EOS = 3,<br/>AV_INFO_TYPE_STATE_CHANGE = 4, <br/>AV_INFO_TYPE_POSITION_UPDATE = 5, <br/>AV_INFO_TYPE_MESSAGE = 6, <br/>AV_INFO_TYPE_VOLUME_CHANGE = 7,<br/>AV_INFO_TYPE_RESOLUTION_CHANGE = 8, <br/>AV_INFO_TYPE_BUFFERING_UPDATE = 9, <br/>AV_INFO_TYPE_BITRATE_COLLECT = 10, <br/>AV_INFO_TYPE_INTERRUPT_EVENT = 11,<br/>AV_INFO_TYPE_DURATION_UPDATE = 12, <br/>AV_INFO_TYPE_IS_LIVE_STREAM = 13, <br/>AV_INFO_TYPE_TRACKCHANGE = 14, <br/>AV_INFO_TYPE_TRACK_INFO_UPDATE = 15,<br/>AV_INFO_TYPE_SUBTITLE_UPDATE = 16, AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17<br/>} | OnInfo类型。 | 58| [AVPlayerBufferingType](#avplayerbufferingtype-1) { <br/>AVPLAYER_BUFFERING_START = 1, <br/>AVPLAYER_BUFFERING_END, <br/>AVPLAYER_BUFFERING_PERCENT, <br/>AVPLAYER_BUFFERING_CACHED_DURATION <br/>} | 播放缓冲消息类型定义。 | 59 60 61### 函数 62 63| 名称 | 描述 | 64| -------- | -------- | 65| OH_AVPlayer \*[OH_AVPlayer_Create](#oh_avplayer_create) (void) | 创建播放器。 | 66| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetURLSource](#oh_avplayer_seturlsource) (OH_AVPlayer \*player, const char \*url) | 设置播放器的播放源。对应的源可以是http url。 | 67| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetFDSource](#oh_avplayer_setfdsource) (OH_AVPlayer \*player, int32_t fd, int64_t offset, int64_t size) | 设置播放器的播放媒体文件描述符来源。 | 68| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Prepare](#oh_avplayer_prepare) (OH_AVPlayer \*player) | 准备播放环境,异步缓存媒体数据。 | 69| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Play](#oh_avplayer_play) (OH_AVPlayer \*player) | 开始播放。 | 70| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Pause](#oh_avplayer_pause) (OH_AVPlayer \*player) | 暂停播放。 | 71| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Stop](#oh_avplayer_stop) (OH_AVPlayer \*player) | 停止播放。 | 72| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Reset](#oh_avplayer_reset) (OH_AVPlayer \*player) | 将播放器恢复到初始状态。 | 73| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Release](#oh_avplayer_release) (OH_AVPlayer \*player) | 异步释放播放器资源。 | 74| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_ReleaseSync](#oh_avplayer_releasesync) (OH_AVPlayer \*player) | 同步释放播放器资源。 | 75| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetVolume](#oh_avplayer_setvolume) (OH_AVPlayer \*player, float leftVolume, float rightVolume) | 设置播放器的音量。 | 76| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_Seek](#oh_avplayer_seek) (OH_AVPlayer \*player, int32_t mSeconds, [AVPlayerSeekMode](#avplayerseekmode) mode) | 改变播放位置。 | 77| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetCurrentTime](#oh_avplayer_getcurrenttime) (OH_AVPlayer \*player, int32_t \*currentTime) | 获取播放位置,精确到毫秒。 | 78| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetVideoWidth](#oh_avplayer_getvideowidth) (OH_AVPlayer \*player, int32_t \*videoWidth) | 获取视频宽度。 | 79| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetVideoHeight](#oh_avplayer_getvideoheight) (OH_AVPlayer \*player, int32_t \*videoHeight) | 获取视频高度。 | 80| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetPlaybackSpeed](#oh_avplayer_setplaybackspeed) (OH_AVPlayer \*player, [AVPlaybackSpeed](#avplaybackspeed) speed) | 设置播放器播放速率。 | 81| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetPlaybackSpeed](#oh_avplayer_getplaybackspeed) (OH_AVPlayer \*player, [AVPlaybackSpeed](#avplaybackspeed) \*speed) | 获取当前播放器播放速率。 | 82| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetAudioRendererInfo](#oh_avplayer_setaudiorendererinfo) (OH_AVPlayer \*player, OH_AudioStream_Usage streamUsage) | 设置player音频流类型。 | 83| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetAudioInterruptMode](#oh_avplayer_setaudiointerruptmode) (OH_AVPlayer \*player, OH_AudioInterrupt_Mode interruptMode) | 设置player音频流的打断模式。 | 84| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetAudioEffectMode](#oh_avplayer_setaudioeffectmode) (OH_AVPlayer \*player, OH_AudioStream_AudioEffectMode effectMode) | 设置player音频流的音效模式。 | 85| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SelectBitRate](#oh_avplayer_selectbitrate) (OH_AVPlayer \*player, uint32_t bitRate) | 设置hls播放器使用的码率。 | 86| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetVideoSurface](#oh_avplayer_setvideosurface) (OH_AVPlayer \*player, OHNativeWindow \*window) | 设置播放画面窗口。 | 87| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetDuration](#oh_avplayer_getduration) (OH_AVPlayer \*player, int32_t \*duration) | 获取媒体文件的总时长,精确到毫秒。 | 88| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetState](#oh_avplayer_getstate) (OH_AVPlayer \*player, [AVPlayerState](#avplayerstate) \*state) | 获取当前播放状态。 | 89| bool [OH_AVPlayer_IsPlaying](#oh_avplayer_isplaying) (OH_AVPlayer \*player) | 判断播放器是否在播放。 | 90| bool [OH_AVPlayer_IsLooping](#oh_avplayer_islooping) (OH_AVPlayer \*player) | 判断是用循环播放。 | 91| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetLooping](#oh_avplayer_setlooping) (OH_AVPlayer \*player, bool loop) | 设置循环播放。 | 92| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetPlayerCallback](#oh_avplayer_setplayercallback) (OH_AVPlayer \*player, [AVPlayerCallback](_a_v_player_callback.md) callback) | 设置播放器回调方法。 | 93| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SelectTrack](#oh_avplayer_selecttrack) (OH_AVPlayer \*player, int32_t index) | 选择音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。 | 94| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_DeselectTrack](#oh_avplayer_deselecttrack) (OH_AVPlayer \*player, int32_t index) | 取消选择当前音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。 | 95| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetCurrentTrack](#oh_avplayer_getcurrenttrack) (OH_AVPlayer \*player, int32_t trackType, int32_t \*index) | 获取当前有效的轨道索引。该接口在当前版本暂不支持,将在后续版本开放能力。 | 96| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetMediaKeySystemInfoCallback](#oh_avplayer_setmediakeysysteminfocallback) (OH_AVPlayer \*player, Player_MediaKeySystemInfoCallback callback) | 设置播放器媒体密钥系统信息回调的方法。 | 97| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_GetMediaKeySystemInfo](#oh_avplayer_getmediakeysysteminfo) (OH_AVPlayer \*player, [DRM_MediaKeySystemInfo](../apis-drm-kit/_d_r_m___media_key_system_info.md) \*mediaKeySystemInfo) | 获取媒体密钥系统信息以创建媒体密钥会话。 | 98| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetDecryptionConfig](#oh_avplayer_setdecryptionconfig) (OH_AVPlayer \*player, [MediaKeySession](../apis-drm-kit/_drm.md#mediakeysession) \*mediaKeySession, bool secureVideoPath) | 设置解密信息。 | 99| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetOnInfoCallback](#oh_avplayer_setoninfocallback) (OH_AVPlayer \*player, [OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback) callback, void \*userData) | 设置播放器消息回调监听函数。 | 100| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVPlayer_SetOnErrorCallback](#oh_avplayer_setonerrorcallback) (OH_AVPlayer \*player, [OH_AVPlayerOnErrorCallback](#oh_avplayeronerrorcallback) callback, void \*userData) | 设置播放器错误回调监听函数。 | 101 102 103### 变量 104 105| 名称 | 描述 | 106| -------- | -------- | 107| const char \* [OH_PLAYER_STATE](#oh_player_state) | 获取播放状态的关键字, 对应值类型是int32_t。 | 108| const char \* [OH_PLAYER_STATE_CHANGE_REASON](#oh_player_state_change_reason) | 获取播放状态变更原因的关键字, 对应值类型是int32_t。 | 109| const char \* [OH_PLAYER_VOLUME](#oh_player_volume) | 获取音量的关键字, 对应值类型是float。 | 110| const char \* [OH_PLAYER_BITRATE_ARRAY](#oh_player_bitrate_array) | 获取比特率列表的关键字, 对应值类型是uint8_t字节数组[AV_INFO_TYPE_BITRATE_COLLECT](#avplayeroninfotype-1)。 | 111| const char \* [OH_PLAYER_AUDIO_INTERRUPT_TYPE](#oh_player_audio_interrupt_type) | 获取音频打断类型的关键字, 对应值类型是int32_t。 | 112| const char \* [OH_PLAYER_AUDIO_INTERRUPT_FORCE](#oh_player_audio_interrupt_force) | 获取音频打断FORCE类型的关键字, 对应值类型是int32_t。 | 113| const char \* [OH_PLAYER_AUDIO_INTERRUPT_HINT](#oh_player_audio_interrupt_hint) | 获取音频打断HINT类型的关键字, 对应值类型是int32_t。 | 114| const char \* [OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON](#oh_player_audio_device_change_reason) | 获取音频音频设备变更原因的关键字, 对应值类型是int32_t。 | 115| const char \* [OH_PLAYER_BUFFERING_TYPE](#oh_player_buffering_type) | 获取缓冲更新消息类型的关键字, 对应值类型是[AVPlayerBufferingType](#avplayerbufferingtype-1)。 | 116| const char \* [OH_PLAYER_BUFFERING_VALUE](#oh_player_buffering_value) | 获取缓冲更新消息具体数值的关键字, 对应值类型是int32_t。 | 117| const char \* [OH_PLAYER_SEEK_POSITION](#oh_player_seek_position) | 获取Seek后播放进度信息的关键字, 对应值类型是int32_t。 | 118| const char \* [OH_PLAYER_PLAYBACK_SPEED](#oh_player_playback_speed) | 获取播放倍速信息的关键字, 对应值类型是[AVPlaybackSpeed](#avplaybackspeed-1)。 | 119| const char \* [OH_PLAYER_BITRATE](#oh_player_bitrate) | 获取比特率信息的关键字, 对应值类型是int32_t。 | 120| const char \* [OH_PLAYER_CURRENT_POSITION](#oh_player_current_position) | 获取播放进度信息的关键字, 对应值类型是int32_t。 | 121| const char \* [OH_PLAYER_DURATION](#oh_player_duration) | 获取媒体资源时长信息的关键字, 对应值类型是int64_t。 | 122| const char \* [OH_PLAYER_VIDEO_WIDTH](#oh_player_video_width) | 获取视频宽度信息的关键字, 对应值类型int32_t。 | 123| const char \* [OH_PLAYER_VIDEO_HEIGHT](#oh_player_video_height) | 获取视频高度信息的关键字, 对应值类型int32_t。 | 124| const char \* [OH_PLAYER_MESSAGE_TYPE](#oh_player_message_type) | 获取播放器消息信息的关键字, 对应值类型int32_t。 | 125| const char \* [OH_PLAYER_IS_LIVE_STREAM](#oh_player_is_live_stream) | 获取媒体资源是否为直播类型信息的关键字, 对应值类型int32_t。 | 126 127 128## 类型定义说明 129 130 131### AVPlaybackSpeed 132 133``` 134typedef enum AVPlaybackSpeed AVPlaybackSpeed 135``` 136**描述** 137播放速度 138 139**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 140 141**起始版本:** 11 142 143 144### AVPlayerBufferingType 145 146``` 147typedef enum AVPlayerBufferingType AVPlayerBufferingType 148``` 149**描述** 150播放缓冲消息类型定义。 151 152**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 153 154**起始版本:** 12 155 156 157### AVPlayerCallback 158 159``` 160typedef struct AVPlayerCallback AVPlayerCallback 161``` 162**描述** 163包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。应用需注册此实例结构体到OH_AVPlayer实例中,并对回调上报的信息进行处理,保证AVPlayer的正常运行。 164 165**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 166 167**起始版本:** 11 168 169**废弃版本:** 12 170 171**替代接口:**[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback) [OH_AVPlayerOnErrorCallback](#oh_avplayeronerrorcallback) 172 173**参数:** 174 175| 名称 | 描述 | 176| -------- | -------- | 177| onInfo | 监控AVPlayer过程信息,参考[OH_AVPlayerOnInfo](#oh_avplayeroninfo) | 178| onError | 监控AVPlayer操作错误,参考[OH_AVPlayerOnError](#oh_avplayeronerror) | 179 180 181### AVPlayerOnInfoType 182 183``` 184typedef enum AVPlayerOnInfoType AVPlayerOnInfoType 185``` 186**描述** 187OnInfo类型。 188 189**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 190 191**起始版本:** 11 192 193 194### AVPlayerSeekMode 195 196``` 197typedef enum AVPlayerSeekMode AVPlayerSeekMode 198``` 199**描述** 200跳转模式 201 202**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 203 204**起始版本:** 11 205 206 207### AVPlayerState 208 209``` 210typedef enum AVPlayerState AVPlayerState 211``` 212**描述** 213播放状态 214 215**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 216 217**起始版本:** 11 218 219 220### DRM_MediaKeySystemInfo 221 222``` 223typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo 224``` 225**描述** 226DRM_MediaKeySystemInfo类型。 227 228**起始版本:** 12 229 230 231### MediaKeySession 232 233``` 234typedef struct MediaKeySession MediaKeySession 235``` 236**描述** 237MediaKeySession类型。 238 239**起始版本:** 12 240 241 242### OH_AVPlayerOnError 243 244``` 245typedef void(* OH_AVPlayerOnError) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg) 246``` 247**描述** 248在API9以上的版本发生错误时调用。 249 250**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 251 252**起始版本:** 11 253 254**废弃版本:** 12 255 256**替代接口:**[OH_AVPlayerOnErrorCallback](#oh_avplayeronerrorcallback) 257 258**参数:** 259 260| 名称 | 描述 | 261| -------- | -------- | 262| 指向OH_AVPlayer实例的指针 | | 263| errorCode | 错误码。<br> AV_ERR_NO_MEMORY:无内存,取值为1<br>AV_ERR_OPERATE_NOT_PERMIT:操作不允许,取值为2<br>AV_ERR_INVALID_VAL:无效值,取值为3<br>AV_ERR_IO:IO错误,取值为4<br>AV_ERR_TIMEOUT:超时错误,取值为5<br>AV_ERR_UNKNOWN:未知错误,取值为6<br>AV_ERR_SERVICE_DIED:服务死亡,取值为7<br>AV_ERR_INVALID_STATE:当前状态不支持此操作,取值为8<br>AV_ERR_UNSUPPORT:未支持的接口,取值为9<br>AV_ERR_EXTEND_START:扩展错误码初始值,取值为100 | 264| errorMsg | 错误消息 | 265 266 267### OH_AVPlayerOnErrorCallback 268 269``` 270typedef void(* OH_AVPlayerOnErrorCallback) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg, void *userData) 271``` 272**描述** 273发生错误时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnError函数。 274 275**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 276 277**起始版本:** 12 278 279**参数:** 280 281| 名称 | 描述 | 282| -------- | -------- | 283| player | 指向OH_AVPlayer实例的指针。 | 284| errorCode | 错误码。<br> AV_ERR_NO_MEMORY:无内存,取值为1<br>AV_ERR_OPERATE_NOT_PERMIT:操作不允许,取值为2<br>AV_ERR_INVALID_VAL:无效值,取值为3<br>AV_ERR_IO:IO错误,取值为4<br>AV_ERR_TIMEOUT:超时错误,取值为5<br>AV_ERR_UNKNOWN:未知错误,取值为6<br>AV_ERR_SERVICE_DIED:服务死亡,取值为7<br>AV_ERR_INVALID_STATE:当前状态不支持此操作,取值为8<br>AV_ERR_UNSUPPORT:未支持的接口,取值为9<br>AV_ERR_EXTEND_START:扩展错误码初始值,取值为100 | 285| errorMsg | 错误消息。 | 286| userData | 原样返回用户设置回调时传入的userData数据。 | 287 288 289### OH_AVPlayerOnInfo 290 291``` 292typedef void(* OH_AVPlayerOnInfo) (OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra) 293``` 294**描述** 295收到播放器消息时调用。 296 297信息类型(type)和信息(extra)的对应关系如表所示。 298 299| 信息类型(type) | 对应的extra描述 | 300| -------- | -------- | 301| AV_INFO_TYPE_SEEKDONE | 跳转到对应播放位置时返回消息,extra表示seek到的位置。 | 302| AV_INFO_TYPE_SPEEDDONE | 播放倍速设置完成时返回消息,extra表示播放倍速信息,具体请参考[AVPlaybackSpeed](#avplaybackspeed-1)。 | 303| AV_INFO_TYPE_BITRATEDONE | 比特率设置完成时返回消息,extra表示比特率信息。 | 304| AV_INFO_TYPE_EOS | 播放完成时返回消息。| 305| AV_INFO_TYPE_STATE_CHANGE | 状态改变时返回消息,extra表示当前播放状态,具体请参见[AVPlayerState](#avplayerstate-1)。 | 306| AV_INFO_TYPE_POSITION_UPDATE | 返回当前播放位置,extra表示当前位置。 | 307| AV_INFO_TYPE_MESSAGE | 视频开始渲染时返回消息,extra表示视频首帧渲染。 | 308| AV_INFO_TYPE_VOLUME_CHANGE | 音量改变时返回消息,此场景extra未定义。 | 309| AV_INFO_TYPE_RESOLUTION_CHANGE | 首次获取视频大小或视频大小更新时返回消息,此场景extra未定义。 | 310| AV_INFO_TYPE_BUFFERING_UPDATE | 返回多队列缓冲时间,extra表示视频时长。 | 311| AV_INFO_TYPE_BITRATE_COLLECT | 上报HLS视频比特率列表消息。上报时每个比特率已经被转为uint8_t字节数组,使用者需要将uint8_t字节数组强制转换为uint32_t整型数组。 | 312| AV_INFO_TYPE_INTERRUPT_EVENT | 音频焦点改变时返回消息,extra表示音频打断提示,具体请参见[OH_AudioInterrupt_Hint](../apis-audio-kit/_o_h_audio.md#oh_audiointerrupt_hint),应用可决定是否根据打断提示作进一步处理。 | 313| AV_INFO_TYPE_DURATION_UPDATE | 返回播放时长,extra表示视频时长。 | 314| AV_INFO_TYPE_IS_LIVE_STREAM | 播放为直播流时返回消息,extra表示是否为直播流,0表示非直播流,1表示直播流。 | 315| AV_INFO_TYPE_TRACKCHANGE | 轨道改变时返回消息,此场景extra未定义。 | 316| AV_INFO_TYPE_TRACK_INFO_UPDATE |轨道更新时返回消息,此场景extra未定义。 | 317| AV_INFO_TYPE_SUBTITLE_UPDATE | 字幕信息更新时返回消息,此场景extra未定义。 | 318| AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE | 音频输出设备改变时返回消息,extra表示设备改变原因,具体请参见[OH_AudioStream_DeviceChangeReason](../apis-audio-kit/_o_h_audio.md#oh_audiostream_devicechangereason)。 | 319 320**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 321 322**起始版本:** 11 323 324**废弃版本:** 12 325 326**替代接口:**[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback) 327 328**参数:** 329 330| 名称 | 描述 | 331| -------- | -------- | 332| player | 指向OH_AVPlayer实例的指针。 | 333| type | 信息类型。类型为[AVPlayerOnInfoType](#avplayeroninfotype-1),与extra的对应关系可见方法描述。 | 334| extra | 其他信息,如播放文件的开始时间位置。 | 335 336 337### OH_AVPlayerOnInfoCallback 338 339``` 340typedef void(* OH_AVPlayerOnInfoCallback) (OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat *infoBody, void *userData) 341``` 342**描述** 343收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。 344 345**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 346 347**起始版本:** 12 348 349**参数:** 350 351| 名称 | 描述 | 352| -------- | -------- | 353| player | 指向OH_AVPlayer实例的指针。 | 354| type | 信息类型。具体请参见[AVPlayerOnInfoType](#avplayeroninfotype-1)。 | 355| infoBody | 指向携带具体消息的指针,仅在该回调方法内有效。 | 356| userData | 原样返回用户设置回调时传入的userData数据。 | 357 358 359### Player_MediaKeySystemInfoCallback 360 361``` 362typedef void(* Player_MediaKeySystemInfoCallback) (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo) 363``` 364**描述** 365播放器DRM信息更新时被调用。 366 367**起始版本:** 12 368 369**参数:** 370 371| 名称 | 描述 | 372| -------- | -------- | 373| player | 指向OH_AVPlayer实例的指针。 | 374| mediaKeySystemInfo | DRM信息。 | 375 376**返回:** 377 378void 379 380 381## 枚举类型说明 382 383 384### AVPlaybackSpeed 385 386``` 387enum AVPlaybackSpeed 388``` 389**描述** 390播放速度 391 392**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 393 394**起始版本:** 11 395 396| 枚举值 | 描述 | 397| -------- | -------- | 398| AV_SPEED_FORWARD_0_75_X | 0.75倍速播放 | 399| AV_SPEED_FORWARD_1_00_X | 正常播放 | 400| AV_SPEED_FORWARD_1_25_X | 1.25倍速播放 | 401| AV_SPEED_FORWARD_1_75_X | 1.75倍速播放 | 402| AV_SPEED_FORWARD_2_00_X | 2.0倍速播放 | 403| AV_SPEED_FORWARD_0_50_X | 0.5倍速播放<br>**起始版本:** 12 | 404| AV_SPEED_FORWARD_1_50_X | 1.5倍速播放<br>**起始版本:** 12 | 405 406 407### AVPlayerBufferingType 408 409``` 410enum AVPlayerBufferingType 411``` 412**描述** 413播放缓冲消息类型定义。 414 415**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 416 417**起始版本:** 12 418 419| 枚举值 | 描述 | 420| -------- | -------- | 421| AVPLAYER_BUFFERING_START | 缓冲开始消息。 | 422| AVPLAYER_BUFFERING_END | 缓冲结束消息。 | 423| AVPLAYER_BUFFERING_PERCENT | 缓冲执行进度百分比,取值范围:整数,[0, 100]。 | 424| AVPLAYER_BUFFERING_CACHED_DURATION | 缓冲数据可播放时长,单位:毫秒。 | 425 426 427### AVPlayerOnInfoType 428 429``` 430enum AVPlayerOnInfoType 431``` 432**描述** 433OnInfo类型。 434 435可用于[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback)和[OH_AVPlayerOnInfo(已废弃)](#oh_avplayeroninfo),用于表示收到的播放器信息类型。 436 437- 从API 12开始,推荐用户使用[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback)。不同的OnInfo类型,可获取到不同信息(infoBody),infoBody中包含key-value关系表,详见下述枚举值表。 438 439- 使用API 11版本的开发者,需要使用旧接口。针对已废弃接口OH_AVPlayerOnInfo中使用的对应关系,可直接参考[OH_AVPlayerOnInfo的API说明](#oh_avplayeroninfo)。 440 441**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 442 443**起始版本:** 11 444 445| 枚举值 | 描述 | 446| -------- | -------- | 447| AV_INFO_TYPE_SEEKDONE | 跳转到对应播放位置时返回消息。<br>key为OH_PLAYER_SEEK_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。| 448| AV_INFO_TYPE_SPEEDDONE | 播放倍速设置完成时返回消息。<br>key为OH_PLAYER_PLAYBACK_SPEED:取值类型[AVPlaybackSpeed](#avplaybackspeed-1)。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlaybackSpeed](#avplaybackspeed-1)。 | 449| AV_INFO_TYPE_BITRATEDONE | 比特率设置完成时返回消息。<br>key为OH_PLAYER_BITRATE:取值类型uint32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制为uint32_t。 | 450| AV_INFO_TYPE_EOS | 播放完成时返回消息。| 451| AV_INFO_TYPE_STATE_CHANGE | 状态改变时返回消息。<br>- key为OH_PLAYER_STATE:取值类型int32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlayerState](#avplayerstate-1)。<br>- key为OH_PLAYER_STATE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1:用户操作触发;2:系统变更触发。 | 452| AV_INFO_TYPE_POSITION_UPDATE | 返回当前播放位置。<br>key为OH_PLAYER_CURRENT_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 453| AV_INFO_TYPE_MESSAGE | 视频开始渲染时返回消息。<br>key为OH_PLAYER_MESSAGE_TYPE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1表示视频开始渲染。 | 454| AV_INFO_TYPE_VOLUME_CHANGE | 音量改变时返回消息。<br>key为OH_PLAYER_VOLUME:取值类型float。系统通过float传递value,应用需通过float获取。取值范围[0.0, 1.0]。 | 455| AV_INFO_TYPE_RESOLUTION_CHANGE | 首次获取视频大小或视频大小更新时返回消息。<br>key为OH_PLAYER_VIDEO_WIDTH 或 OH_PLAYER_VIDEO_HEIGHT:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 456| AV_INFO_TYPE_BUFFERING_UPDATE | 返回多队列缓冲时间。<br>- key为OH_PLAYER_BUFFERING_TYPE:取值类型[AVPlayerBufferingType](#avplayerbufferingtype-1)。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlayerBufferingType](#avplayerbufferingtype-1)。<br>- key为OH_PLAYER_BUFFERING_VALUE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效,分别表示缓冲进度完成百分比、缓冲数据可播放时长。 | 457| AV_INFO_TYPE_BITRATE_COLLECT | 上报HLS视频比特率列表消息。<br>key为OH_PLAYER_BITRATE_ARRAY:取值类型uint8_t字节数组。应用需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。 | 458| AV_INFO_TYPE_INTERRUPT_EVENT | 音频焦点改变时返回消息。<br>取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。<br>key为:<br>- OH_PLAYER_AUDIO_INTERRUPT_TYPE:取值1表示中断事件开始;2表示结束。<br>- OH_PLAYER_AUDIO_INTERRUPT_FORCE:取值0表示强制打断,系统改变音频播放状态;1表示共享打断,应用改变音频播放状态。<br>- OH_PLAYER_AUDIO_INTERRUPT_HINT:取值0表示NONE,无提示;1表示RESUME,提示音频恢复;2表示PAUSE,提示音频暂停暂时失去焦点;3表示STOP,提示音频停止;4表示DUCK,音频降低音量;5表示UNDUCK,音频恢复音量。 | 459| AV_INFO_TYPE_DURATION_UPDATE | 返回播放时长。<br>key为OH_PLAYER_DURATION:取值类型int64_t。系统通过int64_t传递value,应用需通过int64_t获取。 | 460| AV_INFO_TYPE_IS_LIVE_STREAM | 播放为直播流时返回消息。<br>key为OH_PLAYER_IS_LIVE_STREAM:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。0表示非直播流,1表示直播流。 | 461| AV_INFO_TYPE_TRACKCHANGE | 轨道改变时返回消息,此场景暂未定义。 | 462| AV_INFO_TYPE_TRACK_INFO_UPDATE |轨道更新时返回消息,此场景暂未定义。 | 463| AV_INFO_TYPE_SUBTITLE_UPDATE | 字幕信息更新时返回消息,此场景暂未定义。 | 464| AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE | 音频输出设备改变时返回消息。<br>key为OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 465 466 467### AVPlayerSeekMode 468 469``` 470enum AVPlayerSeekMode 471``` 472**描述** 473跳转模式 474 475**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 476 477**起始版本:** 11 478 479| 枚举值 | 描述 | 480| -------- | -------- | 481| AV_SEEK_NEXT_SYNC | 同步到时间点之后的关键帧。 | 482| AV_SEEK_PREVIOUS_SYNC | 同步到时间点之前的关键帧。 | 483| AV_SEEK_CLOSEST | 同步到距离指定时间点最近的帧。<br/>**起始版本:** 12 | 484 485 486### AVPlayerState 487 488``` 489enum AVPlayerState 490``` 491**描述** 492播放状态 493 494**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 495 496**起始版本:** 11 497 498| 枚举值 | 描述 | 499| -------- | -------- | 500| AV_IDLE | 空闲 | 501| AV_INITIALIZED | 初始化 | 502| AV_PREPARED | 准备 | 503| AV_PLAYING | 播放 | 504| AV_PAUSED | 暂停 | 505| AV_STOPPED | 停止 | 506| AV_COMPLETED | 结束 | 507| AV_RELEASED | 释放 | 508| AV_ERROR | 错误 | 509 510 511## 函数说明 512 513 514### OH_AVPlayer_Create() 515 516``` 517OH_AVPlayer* OH_AVPlayer_Create (void) 518``` 519**描述** 520创建播放器。 521 522> **说明:** 523> 524> - 推荐单个应用创建的音视频播放器实例(即音频、视频、音视频三类相加)不超过16个。<!--Del--> 525> - 可创建的音视频播放器实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放器实例。<!--DelEnd--> 526 527**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 528 529**起始版本:** 11 530 531**返回:** 532 533如果创建成功返回指向OH_AVPlayer实例的指针,否则返回空指针。 534 535可能的失败原因: 536 5371. PlayerFactory::CreatePlayer执行失败; 5382. new PlayerObject执行失败。 539 540 541### OH_AVPlayer_DeselectTrack() 542 543``` 544OH_AVErrCode OH_AVPlayer_DeselectTrack (OH_AVPlayer *player, int32_t index) 545``` 546**描述** 547取消选择当前音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。 548 549**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 550 551**起始版本:** 11 552 553**参数:** 554 555| 名称 | 描述 | 556| -------- | -------- | 557| player | 指向OH_AVPlayer实例的指针 | 558| index | 索引 | 559 560**返回:** 561 562函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 563 564AV_ERR_OK:成功取消。 565 566AV_ERR_INVALID_VAL:输入player为空指针、player DeselectTrack执行失败。 567 568 569### OH_AVPlayer_GetCurrentTime() 570 571``` 572OH_AVErrCode OH_AVPlayer_GetCurrentTime (OH_AVPlayer *player, int32_t *currentTime) 573``` 574**描述** 575获取播放位置,精确到毫秒。 576 577**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 578 579**起始版本:** 11 580 581**参数:** 582 583| 名称 | 描述 | 584| -------- | -------- | 585| player | 指向OH_AVPlayer实例的指针 | 586| currentTime | 播放位置 | 587 588**返回:** 589 590函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 591 592AV_ERR_OK:获取当前位置。 593 594AV_ERR_INVALID_VAL:输入player为空指针、player GetCurrentTime执行失败。 595 596 597### OH_AVPlayer_GetCurrentTrack() 598 599``` 600OH_AVErrCode OH_AVPlayer_GetCurrentTrack (OH_AVPlayer *player, int32_t trackType, int32_t *index) 601``` 602**描述** 603获取当前有效的轨道索引。该接口在当前版本暂不支持,将在后续版本开放能力。 604 605请将其设置为准备/正在播放/暂停/完成状态。 606 607**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 608 609**起始版本:** 11 610 611**参数:** 612 613| 名称 | 描述 | 614| -------- | -------- | 615| player | 指向OH_AVPlayer实例的指针 | 616| trackType | 媒体类型。0:音频,1:视频 | 617| index | 索引 | 618 619**返回:** 620 621函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 622 623AV_ERR_OK:成功获取。 624 625AV_ERR_INVALID_VAL:输入player为空指针、player GetCurrentTrack执行失败。 626 627 628### OH_AVPlayer_GetDuration() 629 630``` 631OH_AVErrCode OH_AVPlayer_GetDuration (OH_AVPlayer *player, int32_t *duration) 632``` 633**描述** 634获取媒体文件的总时长,精确到毫秒。 635 636**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 637 638**起始版本:** 11 639 640**参数:** 641 642| 名称 | 描述 | 643| -------- | -------- | 644| player | 指向OH_AVPlayer实例的指针 | 645| duration | 媒体文件的总时长 | 646 647**返回:** 648 649函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 650 651AV_ERR_OK:获取当前时长。 652 653AV_ERR_INVALID_VAL:输入player为空指针、player GetDuration执行失败。 654 655 656### OH_AVPlayer_GetMediaKeySystemInfo() 657 658``` 659OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo) 660``` 661**描述** 662获取媒体密钥系统信息以创建媒体密钥会话。 663 664**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 665 666**起始版本:** 12 667 668**参数:** 669 670| 名称 | 描述 | 671| -------- | -------- | 672| player | 指向OH_AVPlayer实例的指针 | 673| mediaKeySystemInfo | 媒体密钥系统信息 | 674 675**返回:** 676 677函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 678 679AV_ERR_OK:成功设置。 680 681AV_ERR_INVALID_VAL:输入player为空指针、内存不足。 682 683### OH_AVPlayer_GetPlaybackSpeed() 684 685``` 686OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed *speed) 687``` 688**描述** 689获取当前播放器播放速率。 690 691**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 692 693**起始版本:** 11 694 695**参数:** 696 697| 名称 | 描述 | 698| -------- | -------- | 699| player | 指向OH_AVPlayer实例的指针 | 700| speed | 可以获取的速率模式[AVPlaybackSpeed](#avplaybackspeed) | 701 702**返回:** 703 704函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 705 706AV_ERR_OK:成功获取播放速率。 707 708AV_ERR_INVALID_VAL:输入player为空指针、player GetPlaybackSpeed执行失败。 709 710 711### OH_AVPlayer_GetState() 712 713``` 714OH_AVErrCode OH_AVPlayer_GetState (OH_AVPlayer *player, AVPlayerState *state) 715``` 716**描述** 717获取当前播放状态。 718 719**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 720 721**起始版本:** 11 722 723**参数:** 724 725| 名称 | 描述 | 726| -------- | -------- | 727| player | 指向OH_AVPlayer实例的指针 | 728| state | 当前播放状态 | 729 730**返回:** 731 732函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 733 734AV_ERR_OK:获取当前播放状态。 735 736AV_ERR_INVALID_VAL:输入player为空指针、player GetState执行失败。 737 738 739### OH_AVPlayer_GetVideoHeight() 740 741``` 742OH_AVErrCode OH_AVPlayer_GetVideoHeight (OH_AVPlayer *player, int32_t *videoHeight) 743``` 744**描述** 745获取视频高度。 746 747**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 748 749**起始版本:** 11 750 751**参数:** 752 753| 名称 | 描述 | 754| -------- | -------- | 755| player | 指向OH_AVPlayer实例的指针 | 756| videoHeights | 视频高度 | 757 758**返回:** 759 760函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 761 762AV_ERR_OK:成功获取视频高度。 763 764AV_ERR_INVALID_VAL:输入player为空指针。 765 766 767### OH_AVPlayer_GetVideoWidth() 768 769``` 770OH_AVErrCode OH_AVPlayer_GetVideoWidth (OH_AVPlayer *player, int32_t *videoWidth) 771``` 772**描述** 773获取视频宽度。 774 775**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 776 777**起始版本:** 11 778 779**参数:** 780 781| 名称 | 描述 | 782| -------- | -------- | 783| player | 指向OH_AVPlayer实例的指针 | 784| videoWidth | 视频宽度 | 785 786**返回:** 787 788函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 789 790AV_ERR_OK:成功获取视频宽度。 791 792AV_ERR_INVALID_VAL:输入player为空指针。 793 794 795### OH_AVPlayer_IsLooping() 796 797``` 798bool OH_AVPlayer_IsLooping (OH_AVPlayer *player) 799``` 800**描述** 801判断是否循环播放。 802 803**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 804 805**起始版本:** 11 806 807**参数:** 808 809| 名称 | 描述 | 810| -------- | -------- | 811| player | 指向OH_AVPlayer实例的指针 | 812 813**返回:** 814 815如果循环播放,则返回true;如果不是循环播放或者输入player为空指针则返回false。 816 817 818### OH_AVPlayer_IsPlaying() 819 820``` 821bool OH_AVPlayer_IsPlaying (OH_AVPlayer *player) 822``` 823**描述** 824判断播放器是否在播放。 825 826**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 827 828**起始版本:** 11 829 830**参数:** 831 832| 名称 | 描述 | 833| -------- | -------- | 834| player | 指向OH_AVPlayer实例的指针 | 835 836**返回:** 837 838如果正在播放,则返回true;如果不在播放或者输入player为空指针则返回false。 839 840 841### OH_AVPlayer_Pause() 842 843``` 844OH_AVErrCode OH_AVPlayer_Pause (OH_AVPlayer *player) 845``` 846**描述** 847暂停播放。 848 849**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 850 851**起始版本:** 11 852 853**参数:** 854 855| 名称 | 描述 | 856| -------- | -------- | 857| player | 指向OH_AVPlayer实例的指针 | 858 859**返回:** 860 861函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 862 863AV_ERR_OK:成功将**Pause**添加到任务队列中。 864 865AV_ERR_INVALID_VAL:输入player为空指针、player Pause执行失败。 866 867 868### OH_AVPlayer_Play() 869 870``` 871OH_AVErrCode OH_AVPlayer_Play (OH_AVPlayer *player) 872``` 873**描述** 874开始播放。 875 876此函数必须在**Prepare**之后调用。如果播放器状态为<Prepared>。调用此函数开始播放。 877 878**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 879 880**起始版本:** 11 881 882**参数:** 883 884| 名称 | 描述 | 885| -------- | -------- | 886| player | 指向OH_AVPlayer实例的指针 | 887 888**返回:** 889 890函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 891 892AV_ERR_OK:开始播放。 893 894AV_ERR_INVALID_VAL:输入player为空指针、player Play执行失败。 895 896 897### OH_AVPlayer_Prepare() 898 899``` 900OH_AVErrCode OH_AVPlayer_Prepare (OH_AVPlayer *player) 901``` 902**描述** 903准备播放环境,异步缓存媒体数据。 904 905此函数必须在**SetSource**之后调用。 906 907**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 908 909**起始版本:** 11 910 911**参数:** 912 913| 名称 | 描述 | 914| -------- | -------- | 915| player | 指向OH_AVPlayer实例的指针 | 916 917**返回:** 918 919函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 920 921AV_ERR_OK:成功将**Prepare**添加到任务队列中。 922 923AV_ERR_INVALID_VAL:输入player为空指针、player Prepare执行失败。 924 925 926### OH_AVPlayer_Release() 927 928``` 929OH_AVErrCode OH_AVPlayer_Release (OH_AVPlayer *player) 930``` 931**描述** 932异步释放播放器资源。 933 934异步释放保证性能,但无法保证是否释放了播放画面的surfacebuffer。调用者需要保证播放画面窗口的生命周期安全。 935 936**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 937 938**起始版本:** 11 939 940**参数:** 941 942| 名称 | 描述 | 943| -------- | -------- | 944| player | 指向OH_AVPlayer实例的指针 | 945 946**返回:** 947 948函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 949 950AV_ERR_OK:成功将**Release**添加到任务队列中。 951 952AV_ERR_INVALID_VAL:输入player为空指针、player Release执行失败。 953 954 955### OH_AVPlayer_ReleaseSync() 956 957``` 958OH_AVErrCode OH_AVPlayer_ReleaseSync (OH_AVPlayer *player) 959``` 960**描述** 961同步释放播放器资源。 962 963同步过程保证了播放画面的显示缓存释放,但这个过程花费时间较长,要求调用者自己设计异步机制。 964 965**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 966 967**起始版本:** 11 968 969**参数:** 970 971| 名称 | 描述 | 972| -------- | -------- | 973| player | 指向OH_AVPlayer实例的指针 | 974 975**返回:** 976 977函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 978 979AV_ERR_OK:播放被释放。 980 981AV_ERR_INVALID_VAL:输入player为空指针、player ReleaseSync执行失败。 982 983### OH_AVPlayer_Reset() 984 985``` 986OH_AVErrCode OH_AVPlayer_Reset (OH_AVPlayer *player) 987``` 988**描述** 989将播放器恢复到初始状态。 990 991函数调用完成后,调用**SetSource**添加播放源。调用**Prepare**后,调用**Play**重新开始播放。 992 993**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 994 995**起始版本:** 11 996 997**参数:** 998 999| 名称 | 描述 | 1000| -------- | -------- | 1001| player | 指向OH_AVPlayer实例的指针 | 1002 1003**返回:** 1004 1005函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1006 1007AV_ERR_OK:成功将**reset**添加到任务队列。 1008 1009AV_ERR_INVALID_VAL:输入player为空指针、player Reset执行失败。 1010 1011 1012### OH_AVPlayer_Seek() 1013 1014``` 1015OH_AVErrCode OH_AVPlayer_Seek (OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode) 1016``` 1017**描述** 1018改变播放位置。 1019 1020此函数可以在播放或暂停时使用。 1021 1022**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1023 1024**参数:** 1025 1026| 名称 | 描述 | 1027| -------- | -------- | 1028| player | 指向OH_AVPlayer实例的指针。 | 1029| mSeconds | 播放目标位置,精确到毫秒。 | 1030| mode | 播放器的跳转模式。具体请参考[AVPlayerSeekMode](#avplayerseekmode)。 | 1031 1032**返回:** 1033 1034函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1035 1036AV_ERR_OK:完成跳转。 1037 1038AV_ERR_INVALID_VAL:输入player为空指针、player Seek执行失败。 1039 1040 1041### OH_AVPlayer_SelectBitRate() 1042 1043``` 1044OH_AVErrCode OH_AVPlayer_SelectBitRate (OH_AVPlayer *player, uint32_t bitRate) 1045``` 1046**描述** 1047设置hls播放器使用的码率。 1048 1049播放比特率,以比特/秒为单位,以比特/秒为单位。 仅对HLS协议网络流有效。默认情况下, 播放器会根据网络连接情况选择合适的码率和速度。 通过INFO_TYPE_BITRATE_COLLECT上报有效码率链表 设置并选择指定的码率,选择小于和最接近的码率 到指定的码率播放。准备好后,读取它以查询当前选择的比特率。 1050 1051**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1052 1053**起始版本:** 11 1054 1055**参数:** 1056 1057| 名称 | 描述 | 1058| -------- | -------- | 1059| player | 指向OH_AVPlayer实例的指针 | 1060| bitRate | 码率,单位为bps | 1061 1062**返回:** 1063 1064**返回:** 1065 1066函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1067 1068AV_ERR_OK:设置码率成功。 1069 1070AV_ERR_INVALID_VAL:输入player为空指针、player SelectBitRate执行失败。 1071 1072 1073### OH_AVPlayer_SelectTrack() 1074 1075``` 1076OH_AVErrCode OH_AVPlayer_SelectTrack (OH_AVPlayer *player, int32_t index) 1077``` 1078**描述** 1079选择音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。 1080 1081默认播放第一个带数据的音频流。设置生效后,原曲目将失效。将音轨设置为准备状态。 1082 1083**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1084 1085**起始版本:** 11 1086 1087**参数:** 1088 1089| 名称 | 描述 | 1090| -------- | -------- | 1091| player | 指向OH_AVPlayer实例的指针 | 1092| index | 索引 | 1093 1094**返回:** 1095 1096函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1097 1098AV_ERR_OK:成功选择。 1099 1100AV_ERR_INVALID_VAL:输入player为空指针、player SelectTrack执行失败。 1101 1102 1103### OH_AVPlayer_SetAudioEffectMode() 1104 1105``` 1106OH_AVErrCode OH_AVPlayer_SetAudioEffectMode (OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode) 1107``` 1108**描述** 1109设置player音频流的音效模式。 1110 1111**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1112 1113**起始版本:** 12 1114 1115**参数:** 1116 1117| 名称 | 描述 | 1118| -------- | -------- | 1119| player | 指向OH_AVPlayer实例的指针。 | 1120| interruptMode | player音频流使用的音效模式[OH_AudioStream_AudioEffectMode](../apis-audio-kit/_o_h_audio.md#oh_audiostream_audioeffectmode)。 | 1121 1122**返回:** 1123 1124函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1125 1126AV_ERR_OK:成功设置。 1127 1128AV_ERR_INVALID_VAL:输入player为空指针或者effectMode值无效。 1129 1130 1131### OH_AVPlayer_SetAudioInterruptMode() 1132 1133``` 1134OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode (OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode) 1135``` 1136**描述** 1137设置player音频流的打断模式。 1138 1139**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1140 1141**起始版本:** 12 1142 1143**参数:** 1144 1145| 名称 | 描述 | 1146| -------- | -------- | 1147| player | 指向OH_AVPlayer实例的指针。 | 1148| interruptMode | player音频流使用的打断模式[OH_AudioInterrupt_Mode](../apis-audio-kit/_o_h_audio.md#oh_audiointerrupt_mode)。 | 1149 1150**返回:** 1151 1152函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1153 1154AV_ERR_OK:成功设置。 1155 1156AV_ERR_INVALID_VAL:输入player为空指针或者interruptMode值无效。 1157 1158 1159### OH_AVPlayer_SetAudioRendererInfo() 1160 1161``` 1162OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo (OH_AVPlayer *player, OH_AudioStream_Usage streamUsage) 1163``` 1164**描述** 1165设置player音频流类型。 1166 1167**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1168 1169**起始版本:** 12 1170 1171**参数:** 1172 1173| 名称 | 描述 | 1174| -------- | -------- | 1175| player | 指向OH_AVPlayer实例的指针。 | 1176| streamUsage | player音频流设置的类型[OH_AudioStream_Usage](../apis-audio-kit/_o_h_audio.md#oh_audiostream_usage)。 | 1177 1178**返回:** 1179 1180函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1181 1182AV_ERR_OK:成功设置。 1183 1184AV_ERR_INVALID_VAL:输入player为空指针或者streamUsage值无效。 1185 1186 1187### OH_AVPlayer_SetDecryptionConfig() 1188 1189``` 1190OH_AVErrCode OH_AVPlayer_SetDecryptionConfig (OH_AVPlayer *player, MediaKeySession *mediaKeySession, bool secureVideoPath) 1191``` 1192**描述** 1193设置解密信息。 1194 1195**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1196 1197**起始版本:** 12 1198 1199**参数:** 1200 1201| 名称 | 描述 | 1202| -------- | -------- | 1203| player | 指向OH_AVPlayer实例的指针。 | 1204| mediaKeySession | 具有解密功能的媒体密钥会话实例。 | 1205| secureVideoPath | 是否需要安全解码器。 | 1206 1207**返回:** 1208 1209函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1210 1211AV_ERR_OK:成功设置。 1212 1213AV_ERR_INVALID_VAL:输入player为空指针、player SetDecryptionConfig执行失败。 1214 1215 1216### OH_AVPlayer_SetFDSource() 1217 1218``` 1219OH_AVErrCode OH_AVPlayer_SetFDSource (OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size) 1220``` 1221**描述** 1222设置播放器的播放媒体文件描述符来源。 1223 1224**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1225 1226**起始版本:** 11 1227 1228**参数:** 1229 1230| 名称 | 描述 | 1231| -------- | -------- | 1232| player | 指向OH_AVPlayer实例的指针 | 1233| fd | 媒体源的文件描述符 | 1234| offset | 媒体源在文件描述符中的偏移量 | 1235| size | 表示媒体源的大小 | 1236 1237**返回:** 1238 1239函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1240 1241AV_ERR_OK:fd设置成功。 1242 1243AV_ERR_INVALID_VAL:输入player为空指针、player SetFdSource执行失败。 1244 1245 1246### OH_AVPlayer_SetLooping() 1247 1248``` 1249OH_AVErrCode OH_AVPlayer_SetLooping (OH_AVPlayer *player, bool loop) 1250``` 1251**描述** 1252设置循环播放。 1253 1254**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1255 1256**起始版本:** 11 1257 1258**参数:** 1259 1260| 名称 | 描述 | 1261| -------- | -------- | 1262| player | 指向OH_AVPlayer实例的指针 | 1263| loop | 循环播放开关 | 1264 1265**返回:** 1266 1267函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1268 1269AV_ERR_OK:循环播放设置成功。 1270 1271AV_ERR_INVALID_VAL:输入player为空指针、player SetLooping执行失败。 1272 1273 1274### OH_AVPlayer_SetMediaKeySystemInfoCallback() 1275 1276``` 1277OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback (OH_AVPlayer *player, Player_MediaKeySystemInfoCallback callback) 1278``` 1279**描述** 1280设置播放器媒体密钥系统信息回调的方法。 1281 1282**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1283 1284**起始版本:** 12 1285 1286**参数:** 1287 1288| 名称 | 描述 | 1289| -------- | -------- | 1290| player | 指向OH_AVPlayer实例的指针。 | 1291| callback | 对象指针。 | 1292 1293**返回:** 1294 1295函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1296 1297AV_ERR_OK:设置成功。 1298 1299AV_ERR_INVALID_VAL:输入player为空、callback为空、player SetDrmSystemInfoCallback执行失败。 1300 1301 1302### OH_AVPlayer_SetOnErrorCallback() 1303 1304``` 1305OH_AVErrCode OH_AVPlayer_SetOnErrorCallback (OH_AVPlayer * player, OH_AVPlayerOnErrorCallback callback, void * userData ) 1306``` 1307**描述** 1308设置播放器错误回调监听函数。 1309 1310**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1311 1312**起始版本:** 12 1313 1314**参数:** 1315 1316| 名称 | 描述 | 1317| -------- | -------- | 1318| player | 指向OH_AVPlayer实例的指针。 | 1319| callback | 执行回调监听函数的指针, 空指针表示取消设置播放器错误回调监听。 | 1320| userData | 指向应用调用者设置的实例的指针。 | 1321 1322**返回:** 1323 1324函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1325 1326AV_ERR_OK:成功。 1327 1328AV_ERR_NO_MEMORY:输入分配内存失败。 1329 1330AV_ERR_INVALID_VAL:输入player为空指针或者函数执行失败。 1331 1332 1333### OH_AVPlayer_SetOnInfoCallback() 1334 1335``` 1336OH_AVErrCode OH_AVPlayer_SetOnInfoCallback (OH_AVPlayer * player, OH_AVPlayerOnInfoCallback callback, void * userData ) 1337``` 1338**描述** 1339设置播放器消息回调监听函数。 1340 1341**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1342 1343**起始版本:** 12 1344 1345**参数:** 1346 1347| 名称 | 描述 | 1348| -------- | -------- | 1349| player | 指向OH_AVPlayer实例的指针。 | 1350| callback | 执行回调监听函数的指针, 空指针表示取消设置播放器消息回调监听。 | 1351| userData | 指向应用调用者设置的实例的指针。 | 1352 1353**返回:** 1354 1355函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1356 1357AV_ERR_OK:成功。 1358 1359AV_ERR_NO_MEMORY:输入分配内存失败。 1360 1361AV_ERR_INVALID_VAL:输入player为空指针或者函数执行失败。 1362 1363 1364### OH_AVPlayer_SetPlaybackSpeed() 1365 1366``` 1367OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed speed) 1368``` 1369**描述** 1370设置播放器播放速率。 1371 1372**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1373 1374**参数:** 1375 1376| 名称 | 描述 | 1377| -------- | -------- | 1378| player | 指向OH_AVPlayer实例的指针 | 1379| speed | 可以设置速率模式[AVPlaybackSpeed](#avplaybackspeed) | 1380 1381**返回:** 1382 1383函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1384 1385AV_ERR_OK:成功设置播放速率。 1386 1387AV_ERR_INVALID_VAL:输入player为空指针。 1388 1389 1390### OH_AVPlayer_SetPlayerCallback() 1391 1392``` 1393OH_AVErrCode OH_AVPlayer_SetPlayerCallback (OH_AVPlayer *player, AVPlayerCallback callback) 1394``` 1395**描述** 1396设置播放器回调函数。由于通过此方法设置的信息监听回调函数[OH_AVPlayerOnInfo](#oh_avplayeroninfo)和错误监听回调函数[OH_AVPlayerOnError](#oh_avplayeronerror)可以传递信息有限,也不便于应用区分多个播放器实例。从 API 12 开始,应使用[OH_AVPlayer_SetOnInfoCallback()](#oh_avplayer_setoninfocallback)、[OH_AVPlayer_SetOnErrorCallback()](#oh_avplayer_setonerrorcallback)接口分别设置信息监听回调函数[OH_AVPlayerOnInfoCallback](../../reference/apis-media-kit/_a_v_player.md#oh_avplayeroninfocallback)和错误监听回调函数[OH_AVPlayerOnErrorCallback](../../reference/apis-media-kit/_a_v_player.md#oh_avplayeronerrorcallback)。 1397 1398**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1399 1400**起始版本:** 11 1401 1402**参数:** 1403 1404| 名称 | 描述 | 1405| -------- | -------- | 1406| player | 指向OH_AVPlayer实例的指针 | 1407| callback | 回调对象指针 | 1408 1409**返回:** 1410 1411函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1412 1413AV_ERR_OK:成功设置播放器回调。 1414 1415AV_ERR_INVALID_VAL:输入player为空指针、callback.onInfo或onError为空、player SetPlayerCallback执行失败。 1416 1417 1418### OH_AVPlayer_SetURLSource() 1419 1420``` 1421OH_AVErrCode OH_AVPlayer_SetURLSource (OH_AVPlayer *player, const char *url) 1422``` 1423**描述** 1424设置播放器的播放源。对应的源可以是http url。 1425 1426**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1427 1428**起始版本:** 11 1429 1430**参数:** 1431 1432| 名称 | 描述 | 1433| -------- | -------- | 1434| player | 指向OH_AVPlayer实例的指针 | 1435| url | 播放源 | 1436 1437**返回:** 1438 1439函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1440 1441AV_ERR_OK:设置成功。 1442 1443AV_ERR_INVALID_VAL:输入player为空指针、url为空、player SetUrlSource执行失败。 1444 1445 1446### OH_AVPlayer_SetVideoSurface() 1447 1448``` 1449OH_AVErrCode OH_AVPlayer_SetVideoSurface (OH_AVPlayer *player, OHNativeWindow *window) 1450``` 1451**描述** 1452设置播放画面窗口。 1453此函数必须在**SetSource**之后,**Prepare**之前调用。 1454 1455**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1456 1457**参数:** 1458 1459| 名称 | 描述 | 1460| -------- | -------- | 1461| player | 指向OH_AVPlayer实例的指针 | 1462| window | 指向OHNativeWindow实例的指针 | 1463 1464**返回:** 1465 1466函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1467 1468AV_ERR_OK:设置播放画面窗口成功。 1469 1470AV_ERR_INVALID_VAL:输入player为空指针、输入window为空指针、player SetVideoSurface执行失败。 1471 1472 1473### OH_AVPlayer_SetVolume() 1474 1475``` 1476OH_AVErrCode OH_AVPlayer_SetVolume (OH_AVPlayer *player, float leftVolume, float rightVolume) 1477``` 1478**描述** 1479设置播放器的音量。 1480 1481可以在播放或暂停的过程中使用。<0>表示无声音,<1>为原始值。 1482 1483**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1484 1485**起始版本:** 11 1486 1487**参数:** 1488 1489| 名称 | 描述 | 1490| -------- | -------- | 1491| player | 指向OH_AVPlayer实例的指针 | 1492| leftVolume | 要设置的左声道目标音量 | 1493| rightVolume | 要设置的右声道目标音量 | 1494 1495**返回:** 1496 1497函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1498 1499AV_ERR_OK:设置音量成功。 1500 1501AV_ERR_INVALID_VAL:输入player为空指针、player SetVolume执行失败。 1502 1503 1504### OH_AVPlayer_Stop() 1505 1506``` 1507OH_AVErrCode OH_AVPlayer_Stop (OH_AVPlayer *player) 1508``` 1509**描述** 1510停止播放。 1511 1512**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1513 1514**起始版本:** 11 1515 1516**参数:** 1517 1518| 名称 | 描述 | 1519| -------- | -------- | 1520| player | 指向OH_AVPlayer实例的指针 | 1521 1522**返回:** 1523 1524函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1): 1525 1526AV_ERR_OK:成功将**stop**添加到任务队列。 1527 1528AV_ERR_INVALID_VAL:输入player为空指针、player Stop执行失败。 1529 1530 1531## 变量说明 1532 1533 1534### OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON 1535 1536``` 1537const char* OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON 1538``` 1539**描述** 1540获取音频音频设备变更原因的关键字, 对应值类型是int32_t。 1541 1542**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1543 1544**起始版本:** 12 1545 1546 1547### OH_PLAYER_AUDIO_INTERRUPT_FORCE 1548 1549``` 1550const char* OH_PLAYER_AUDIO_INTERRUPT_FORCE 1551``` 1552**描述** 1553获取音频打断FORCE类型的关键字, 对应值类型是int32_t。 1554 1555**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1556 1557**起始版本:** 12 1558 1559 1560### OH_PLAYER_AUDIO_INTERRUPT_HINT 1561 1562``` 1563const char* OH_PLAYER_AUDIO_INTERRUPT_HINT 1564``` 1565**描述** 1566获取音频打断HINT类型的关键字, 对应值类型是int32_t。 1567 1568**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1569 1570**起始版本:** 12 1571 1572 1573### OH_PLAYER_AUDIO_INTERRUPT_TYPE 1574 1575``` 1576const char* OH_PLAYER_AUDIO_INTERRUPT_TYPE 1577``` 1578**描述** 1579获取音频打断类型的关键字, 对应值类型是int32_t。 1580 1581**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1582 1583**起始版本:** 12 1584 1585 1586### OH_PLAYER_BITRATE 1587 1588``` 1589const char* OH_PLAYER_BITRATE 1590``` 1591**描述** 1592获取比特率信息的关键字, 对应值类型是int32_t。 1593 1594**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1595 1596**起始版本:** 12 1597 1598 1599### OH_PLAYER_BITRATE_ARRAY 1600 1601``` 1602const char* OH_PLAYER_BITRATE_ARRAY 1603``` 1604**描述** 1605获取比特率列表的关键字, 对应值类型是uint8_t字节数组。通过该关键字获取信息时: 1606- 需要先使用 uint8_t 类型指针变量保存比特率列表,使用 size_t 类型变量保存字节数组长度。 1607- 然后分配若干个 uint32_t 类型的存储空间,接收将 uint8_t 字节数组转换为 uint32_t 类型比特率整数值。可以参考[完整实例](../../media/media/using-ndk-avplayer-for-playerback.md#完整示例)中**OHAVPlayerOnInfoCallback**函数。 1608 1609**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1610 1611**起始版本:** 12 1612 1613 1614### OH_PLAYER_BUFFERING_TYPE 1615 1616``` 1617const char* OH_PLAYER_BUFFERING_TYPE 1618``` 1619**描述** 1620获取缓冲更新消息类型的关键字, 对应值类型是[AVPlayerBufferingType](#avplayerbufferingtype-1)。通过该关键字获取信息时,需要先使用 int32_t 类型变量保存结果,再转换为类型[AVPlayerBufferingType](#avplayerbufferingtype-1)。 1621 1622**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1623 1624**起始版本:** 12 1625 1626 1627### OH_PLAYER_BUFFERING_VALUE 1628 1629``` 1630const char* OH_PLAYER_BUFFERING_VALUE 1631``` 1632**描述** 1633获取缓冲更新消息具体数值的关键字, 对应值类型是int32_t。参见[AVPlayerBufferingType](#avplayerbufferingtype-1),当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效。 1634 1635**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1636 1637**起始版本:** 12 1638 1639 1640### OH_PLAYER_CURRENT_POSITION 1641 1642``` 1643const char* OH_PLAYER_CURRENT_POSITION 1644``` 1645**描述** 1646获取播放进度信息的关键字, 对应值类型是int32_t。 1647 1648**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1649 1650**起始版本:** 12 1651 1652 1653### OH_PLAYER_DURATION 1654 1655``` 1656const char* OH_PLAYER_DURATION 1657``` 1658**描述** 1659获取媒体资源时长信息的关键字, 对应值类型是int64_t。 1660 1661**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1662 1663**起始版本:** 12 1664 1665 1666### OH_PLAYER_IS_LIVE_STREAM 1667 1668``` 1669const char* OH_PLAYER_IS_LIVE_STREAM 1670``` 1671**描述** 1672获取媒体资源是否为直播类型信息的关键字, 对应值类型int32_t。 1673 16741:直播。 1675 1676**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1677 1678**起始版本:** 12 1679 1680 1681### OH_PLAYER_MESSAGE_TYPE 1682 1683``` 1684const char* OH_PLAYER_MESSAGE_TYPE 1685``` 1686**描述** 1687获取播放器消息信息的关键字, 对应值类型int32_t。 1688 16891:视频帧开始渲染。 1690 1691**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1692 1693**起始版本:** 12 1694 1695 1696### OH_PLAYER_PLAYBACK_SPEED 1697 1698``` 1699const char* OH_PLAYER_PLAYBACK_SPEED 1700``` 1701**描述** 1702获取播放倍速信息的关键字, 对应值类型是[AVPlaybackSpeed](#avplaybackspeed-1)。通过该关键字获取信息时,需要先使用 int32_t 类型变量保存结果,再转换为类型[AVPlaybackSpeed](#avplaybackspeed-1)。 1703 1704**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1705 1706**起始版本:** 12 1707 1708 1709### OH_PLAYER_SEEK_POSITION 1710 1711``` 1712const char* OH_PLAYER_SEEK_POSITION 1713``` 1714**描述** 1715获取Seek后播放进度信息的关键字, 对应值类型是int32_t。 1716 1717**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1718 1719**起始版本:** 12 1720 1721 1722### OH_PLAYER_STATE 1723 1724``` 1725const char* OH_PLAYER_STATE 1726``` 1727**描述** 1728获取播放状态的关键字, 对应值类型是int32_t。 1729 1730**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1731 1732**起始版本:** 12 1733 1734 1735### OH_PLAYER_STATE_CHANGE_REASON 1736 1737``` 1738const char* OH_PLAYER_STATE_CHANGE_REASON 1739``` 1740**描述** 1741获取播放状态变更原因的关键字, 对应值类型是int32_t。 1742 17431:用户操作触发;2:系统变更触发。 1744 1745**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1746 1747**起始版本:** 12 1748 1749 1750### OH_PLAYER_VIDEO_HEIGHT 1751 1752``` 1753const char* OH_PLAYER_VIDEO_HEIGHT 1754``` 1755**描述** 1756获取视频高度信息的关键字, 对应值类型int32_t。 1757 1758**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1759 1760**起始版本:** 12 1761 1762 1763### OH_PLAYER_VIDEO_WIDTH 1764 1765``` 1766const char* OH_PLAYER_VIDEO_WIDTH 1767``` 1768**描述** 1769获取视频宽度信息的关键字, 对应值类型int32_t。 1770 1771**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1772 1773**起始版本:** 12 1774 1775 1776### OH_PLAYER_VOLUME 1777 1778``` 1779const char* OH_PLAYER_VOLUME 1780``` 1781**描述** 1782获取音量的关键字, 对应值类型是float。 1783 1784**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1785 1786**起始版本:** 12 1787