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