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