1# avplayer.h 2<!--Kit: Media Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @xushubo; @chennotfound--> 5<!--Designer: @dongyu_dy--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9## 概述 10 11定义avplayer接口。使用AVPlayer提供的Native API播放媒体源。 12 13**引用文件:** <multimedia/player_framework/avplayer.h> 14 15**库:** libavplayer.so 16 17**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 18 19**起始版本:** 11 20 21**相关模块:** [AVPlayer](capi-avplayer.md) 22 23**相关示例:** [AVPlayerNDKVideo](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/Media/AVPlayer/AVPlayerNDK) 24 25## 汇总 26 27### 结构体 28 29| 名称 | typedef关键字 | 描述 | 30| -- | -- | -- | 31| [MediaKeySession](capi-avplayer-mediakeysession.md) | MediaKeySession | MediaKeySession类型。 | 32| [DRM_MediaKeySystemInfo](capi-avplayer-drm-mediakeysysteminfo.md) | DRM_MediaKeySystemInfo | DRM_MediaKeySystemInfo类型。 | 33 34### 函数 35 36| 名称 | typedef关键字 | 描述 | 37| -- | -- | -- | 38| [typedef void (\*Player_MediaKeySystemInfoCallback)(OH_AVPlayer \*player, DRM_MediaKeySystemInfo* mediaKeySystemInfo)](#player_mediakeysysteminfocallback) | Player_MediaKeySystemInfoCallback | 播放器DRM信息更新时调用。 | 39| [OH_AVPlayer *OH_AVPlayer_Create(void)](#oh_avplayer_create) | - | 创建播放器。<br>推荐单个应用创建的音视频播放器实例(即音频、视频、音视频三类相加)不超过16个。<!--Del--><br>可创建的音视频播放器实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放器实例。<!--DelEnd--> | 40| [OH_AVErrCode OH_AVPlayer_SetURLSource(OH_AVPlayer *player, const char *url)](#oh_avplayer_seturlsource) | - | 设置播放器的播放源。对应的源可以是http url。 | 41| [OH_AVErrCode OH_AVPlayer_SetFDSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size)](#oh_avplayer_setfdsource) | - | 设置播放器的媒体文件描述符来源。 | 42| [OH_AVErrCode OH_AVPlayer_Prepare(OH_AVPlayer *player)](#oh_avplayer_prepare) | - | 准备播放环境,异步缓存媒体数据。<br>此函数必须在SetSource之后调用。 | 43| [OH_AVErrCode OH_AVPlayer_Play(OH_AVPlayer *player)](#oh_avplayer_play) | - | 开始播放。<br>此函数必须在[OH_AVPlayer_Prepare](capi-avplayer-h.md#oh_avplayer_prepare)之后调用。<br>如果播放器状态为\<Prepared>,调用此函数开始播放。 | 44| [OH_AVErrCode OH_AVPlayer_Pause(OH_AVPlayer *player)](#oh_avplayer_pause) | - | 暂停播放。 | 45| [OH_AVErrCode OH_AVPlayer_Stop(OH_AVPlayer *player)](#oh_avplayer_stop) | - | 停止播放。 | 46| [OH_AVErrCode OH_AVPlayer_Reset(OH_AVPlayer *player)](#oh_avplayer_reset) | - | 将播放器恢复到初始状态。<br>函数调用完成后,调用SetSource添加播放源。调用[OH_AVPlayer_Prepare](capi-avplayer-h.md#oh_avplayer_prepare)后,再调用[OH_AVPlayer_Play](capi-avplayer-h.md#oh_avplayer_play)重新开始播放。 | 47| [OH_AVErrCode OH_AVPlayer_Release(OH_AVPlayer *player)](#oh_avplayer_release) | - | 异步释放播放器资源。异步释放可以提升性能,但不能确保播放画面的SurfaceBuffer已释放。调用者需要确保播放画面窗口的生命周期安全。 | 48| [OH_AVErrCode OH_AVPlayer_ReleaseSync(OH_AVPlayer *player)](#oh_avplayer_releasesync) | - | 同步释放播放器资源。<br>同步过程保证了播放画面的SurfaceBuffer释放,但该过程耗时较长,建议调用者自行设计异步机制。 | 49| [OH_AVErrCode OH_AVPlayer_SetVolume(OH_AVPlayer *player, float leftVolume, float rightVolume)](#oh_avplayer_setvolume) | - | 设置播放器的音量。<br>可以在播放或暂停的过程中使用。0表示无声音,1为原始值。 | 50| [OH_AVErrCode OH_AVPlayer_Seek(OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode)](#oh_avplayer_seek) | - | 改变播放位置。<br>此函数可以在播放或暂停时使用。 | 51| [OH_AVErrCode OH_AVPlayer_GetCurrentTime(OH_AVPlayer *player, int32_t *currentTime)](#oh_avplayer_getcurrenttime) | - | 获取播放位置,精确到毫秒。 | 52| [OH_AVErrCode OH_AVPlayer_GetVideoWidth(OH_AVPlayer *player, int32_t *videoWidth)](#oh_avplayer_getvideowidth) | - | 获取视频宽度。 | 53| [OH_AVErrCode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeight)](#oh_avplayer_getvideoheight) | - | 获取视频高度。 | 54| [OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed)](#oh_avplayer_setplaybackspeed) | - | 根据指定的{AVPlaybackSpeed},设置播放器的播放速率。 | 55| [OH_AVErrCode OH_AVPlayer_SetPlaybackRate(OH_AVPlayer *player, float rate)](#oh_avplayer_setplaybackrate) | - | 在有效范围内,设置播放器的播放速率。<br>支持的状态:已准备/正在播放/已暂停/已完成。 | 56| [OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed *speed)](#oh_avplayer_getplaybackspeed) | - | 获取当前播放器的播放速率。 | 57| [OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo(OH_AVPlayer *player, OH_AudioStream_Usage streamUsage)](#oh_avplayer_setaudiorendererinfo) | - | 设置player音频流类型。 | 58| [OH_AVErrCode OH_AVPlayer_SetVolumeMode(OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode)](#oh_avplayer_setvolumemode) | - | 设置player音频流音量模式。 | 59| [OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode(OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode)](#oh_avplayer_setaudiointerruptmode) | - | 设置player音频流的打断模式。 | 60| [OH_AVErrCode OH_AVPlayer_SetAudioEffectMode(OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode)](#oh_avplayer_setaudioeffectmode) | - | 设置player音频流的音效模式。 | 61| [OH_AVErrCode OH_AVPlayer_SelectBitRate(OH_AVPlayer *player, uint32_t bitRate)](#oh_avplayer_selectbitrate) | - | 设置hls播放器使用的码率。仅对HLS协议网络流有效。<br>默认情况下,播放器会根据网络连接情况选择合适的码率和速度。<br>通过INFO_TYPE_BITRATE_COLLECT上报有效码率链表,设置并选择指定的码率,选择小于和最接近的码率。准备好后,读取以查询当前选择的比特率。 | 62| [OH_AVErrCode OH_AVPlayer_SetVideoSurface(OH_AVPlayer *player, OHNativeWindow *window)](#oh_avplayer_setvideosurface) | - | 设置播放画面窗口。<br>此函数必须在SetSource之后,Prepare之前调用。 | 63| [OH_AVErrCode OH_AVPlayer_GetDuration(OH_AVPlayer *player, int32_t *duration)](#oh_avplayer_getduration) | - | 获取媒体文件的总时长,精确到毫秒。 | 64| [OH_AVErrCode OH_AVPlayer_GetState(OH_AVPlayer *player, AVPlayerState *state)](#oh_avplayer_getstate) | - | 获取当前播放状态。 | 65| [bool OH_AVPlayer_IsPlaying(OH_AVPlayer *player)](#oh_avplayer_isplaying) | - | 判断播放器是否在播放。 | 66| [bool OH_AVPlayer_IsLooping(OH_AVPlayer *player)](#oh_avplayer_islooping) | - | 判断是否循环播放。 | 67| [OH_AVErrCode OH_AVPlayer_SetLooping(OH_AVPlayer *player, bool loop)](#oh_avplayer_setlooping) | - | 设置循环播放。 | 68| [OH_AVErrCode OH_AVPlayer_SetPlayerCallback(OH_AVPlayer *player, AVPlayerCallback callback)](#oh_avplayer_setplayercallback) | - | 设置播放器回调函数。<br>由于通过此方法设置的信息监听回调函数[OH_AVPlayerOnInfo](capi-avplayer-base-h.md#oh_avplayeroninfo)和错误监听回调函数[OH_AVPlayerOnError](capi-avplayer-base-h.md#oh_avplayeronerror)可以传递的信息有限,也不便于应用区分多个播放器实例。从API 12开始,应使用[OH_AVPlayer_SetOnInfoCallback](capi-avplayer-h.md#oh_avplayer_setoninfocallback)、[OH_AVPlayer_SetOnErrorCallback](capi-avplayer-h.md#oh_avplayer_setonerrorcallback)接口分别设置信息监听回调函数[OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback)和错误监听回调函数[OH_AVPlayerOnErrorCallback](capi-avplayer-base-h.md#oh_avplayeronerrorcallback)。 | 69| [OH_AVErrCode OH_AVPlayer_SelectTrack(OH_AVPlayer *player, int32_t index)](#oh_avplayer_selecttrack) | - | 选择音频或字幕轨道。<br>默认播放第一个带数据的音轨,不播放字幕轨迹。<br>设置生效后,原音轨将失效。请设置字幕处于准备/播放/暂停/完成状态,并将音轨设置为准备状态。<br>该接口在当前版本暂不支持,将在后续版本开放能力。 | 70| [OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index)](#oh_avplayer_deselecttrack) | - | 取消选择当前音频或字幕轨道。<br>该接口在当前版本暂不支持,将在后续版本开放能力。 | 71| [OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index)](#oh_avplayer_getcurrenttrack) | - | 获取当前有效的轨道索引。请将状态设置为准备/正在播放/暂停/完成状态。<br>该接口在当前版本暂不支持,将在后续版本开放能力。 | 72| [OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player, Player_MediaKeySystemInfoCallback callback)](#oh_avplayer_setmediakeysysteminfocallback) | - | 设置播放器媒体密钥系统信息回调的方法。 | 73| [OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo)](#oh_avplayer_getmediakeysysteminfo) | - | 获取媒体密钥系统信息以创建媒体密钥会话。 | 74| [OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player, MediaKeySession *mediaKeySession, bool secureVideoPath)](#oh_avplayer_setdecryptionconfig) | - | 设置解密信息。 | 75| [OH_AVErrCode OH_AVPlayer_SetOnInfoCallback(OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData)](#oh_avplayer_setoninfocallback) | - | 设置播放器消息回调监听函数。 | 76| [OH_AVErrCode OH_AVPlayer_SetOnErrorCallback(OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData)](#oh_avplayer_setonerrorcallback) | - | 设置播放器错误回调监听函数。 | 77 78## 函数说明 79 80### Player_MediaKeySystemInfoCallback() 81 82``` 83typedef void (*Player_MediaKeySystemInfoCallback)(OH_AVPlayer *player, DRM_MediaKeySystemInfo* mediaKeySystemInfo) 84``` 85 86**描述** 87 88播放器DRM信息更新时调用。 89 90**起始版本:** 12 91 92 93**参数:** 94 95| 参数项 | 描述 | 96| -- | -- | 97| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 98| [DRM_MediaKeySystemInfo](capi-avplayer-drm-mediakeysysteminfo.md)* mediaKeySystemInfo | DRM信息。 | 99 100### OH_AVPlayer_Create() 101 102``` 103OH_AVPlayer *OH_AVPlayer_Create(void) 104``` 105 106**描述** 107 108创建播放器。<br>推荐单个应用创建的音视频播放器实例(即音频、视频、音视频三类相加)不超过16个。 109 110<!--Del-->可创建的音视频播放器实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放器实例。<!--DelEnd--> 111 112**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 113 114**起始版本:** 11 115 116**返回:** 117 118| 类型 | 说明 | 119| -- | -- | 120| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) | 如果创建成功返回指向OH_AVPlayer实例的指针,否则返回空指针。<br> 可能的失败原因:<br> 1.PlayerFactory::CreatePlayer执行失败。<br> 2.new PlayerObject执行失败。 | 121 122### OH_AVPlayer_SetURLSource() 123 124``` 125OH_AVErrCode OH_AVPlayer_SetURLSource(OH_AVPlayer *player, const char *url) 126``` 127 128**描述** 129 130设置播放器的播放源。对应的源可以是http url。 131 132**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 133 134**起始版本:** 11 135 136 137**参数:** 138 139| 参数项 | 描述 | 140| -- | -- | 141| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 142| const char *url | 播放源。 | 143 144**返回:** 145 146| 类型 | 说明 | 147| -- | -- | 148| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:设置成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,url为空或者player SetUrlSource执行失败。 | 149 150### OH_AVPlayer_SetFDSource() 151 152``` 153OH_AVErrCode OH_AVPlayer_SetFDSource(OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size) 154``` 155 156**描述** 157 158设置播放器的媒体文件描述符来源。 159 160**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 161 162**起始版本:** 11 163 164 165**参数:** 166 167| 参数项 | 描述 | 168| -- | -- | 169| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 170| int32_t fd | 媒体源的文件描述符。 | 171| int64_t offset | 媒体源在文件描述符中的偏移量。 | 172| int64_t size | 表示媒体源的大小。 | 173 174**返回:** 175 176| 类型 | 说明 | 177| -- | -- | 178| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:fd设置成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player SetFdSource执行失败。 | 179 180### OH_AVPlayer_Prepare() 181 182``` 183OH_AVErrCode OH_AVPlayer_Prepare(OH_AVPlayer *player) 184``` 185 186**描述** 187 188准备播放环境,异步缓存媒体数据。<br>此函数必须在SetSource之后调用。 189 190**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 191 192**起始版本:** 11 193 194 195**参数:** 196 197| 参数项 | 描述 | 198| -- | -- | 199| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 200 201**返回:** 202 203| 类型 | 说明 | 204| -- | -- | 205| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Prepare执行失败。 | 206 207### OH_AVPlayer_Play() 208 209``` 210OH_AVErrCode OH_AVPlayer_Play(OH_AVPlayer *player) 211``` 212 213**描述** 214 215开始播放。<br>此函数必须在[OH_AVPlayer_Prepare](capi-avplayer-h.md#oh_avplayer_prepare)之后调用。<br>如果播放器状态为\<Prepared>,调用此函数开始播放。 216 217**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 218 219**起始版本:** 11 220 221 222**参数:** 223 224| 参数项 | 描述 | 225| -- | -- | 226| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 227 228**返回:** 229 230| 类型 | 说明 | 231| -- | -- | 232| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Play执行失败。 | 233 234### OH_AVPlayer_Pause() 235 236``` 237OH_AVErrCode OH_AVPlayer_Pause(OH_AVPlayer *player) 238``` 239 240**描述** 241 242暂停播放。 243 244**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 245 246**起始版本:** 11 247 248 249**参数:** 250 251| 参数项 | 描述 | 252| -- | -- | 253| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 254 255**返回:** 256 257| 类型 | 说明 | 258| -- | -- | 259| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Pause执行失败。 | 260 261### OH_AVPlayer_Stop() 262 263``` 264OH_AVErrCode OH_AVPlayer_Stop(OH_AVPlayer *player) 265``` 266 267**描述** 268 269停止播放。 270 271**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 272 273**起始版本:** 11 274 275 276**参数:** 277 278| 参数项 | 描述 | 279| -- | -- | 280| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 281 282**返回:** 283 284| 类型 | 说明 | 285| -- | -- | 286| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Stop执行失败。 | 287 288### OH_AVPlayer_Reset() 289 290``` 291OH_AVErrCode OH_AVPlayer_Reset(OH_AVPlayer *player) 292``` 293 294**描述** 295 296将播放器恢复到初始状态。<br>函数调用完成后,调用SetSource添加播放源。调用[OH_AVPlayer_Prepare](capi-avplayer-h.md#oh_avplayer_prepare)后,再调用[OH_AVPlayer_Play](capi-avplayer-h.md#oh_avplayer_play)重新开始播放。 297 298**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 299 300**起始版本:** 11 301 302 303**参数:** 304 305| 参数项 | 描述 | 306| -- | -- | 307| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 308 309**返回:** 310 311| 类型 | 说明 | 312| -- | -- | 313| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Reset执行失败。 | 314 315### OH_AVPlayer_Release() 316 317``` 318OH_AVErrCode OH_AVPlayer_Release(OH_AVPlayer *player) 319``` 320 321**描述** 322 323异步释放播放器资源。<br>异步释放可以提升性能,但不能确保播放画面的SurfaceBuffer已释放。调用者需要确保播放画面窗口的生命周期安全。 324 325**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 326 327**起始版本:** 11 328 329 330**参数:** 331 332| 参数项 | 描述 | 333| -- | -- | 334| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 335 336**返回:** 337 338| 类型 | 说明 | 339| -- | -- | 340| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Release执行失败。 | 341 342### OH_AVPlayer_ReleaseSync() 343 344``` 345OH_AVErrCode OH_AVPlayer_ReleaseSync(OH_AVPlayer *player) 346``` 347 348**描述** 349 350同步释放播放器资源。<br>同步过程保证了播放画面的SurfaceBuffer释放,但该过程耗时较长,建议调用者自行设计异步机制。 351 352**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 353 354**起始版本:** 11 355 356 357**参数:** 358 359| 参数项 | 描述 | 360| -- | -- | 361| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 362 363**返回:** 364 365| 类型 | 说明 | 366| -- | -- | 367| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player ReleaseSync执行失败。 | 368 369### OH_AVPlayer_SetVolume() 370 371``` 372OH_AVErrCode OH_AVPlayer_SetVolume(OH_AVPlayer *player, float leftVolume, float rightVolume) 373``` 374 375**描述** 376 377设置播放器的音量。<br>可以在播放或暂停的过程中使用。0表示无声音,1为原始值。 378 379**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 380 381**起始版本:** 11 382 383 384**参数:** 385 386| 参数项 | 描述 | 387| -- | -- | 388| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 389| float leftVolume | 要设置的左声道目标音量。 | 390| float rightVolume | 要设置的右声道目标音量。 | 391 392**返回:** 393 394| 类型 | 说明 | 395| -- | -- | 396| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置音量。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player SetVolume执行失败。 | 397 398### OH_AVPlayer_Seek() 399 400``` 401OH_AVErrCode OH_AVPlayer_Seek(OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode) 402``` 403 404**描述** 405 406改变播放位置。<br>此函数可以在播放或暂停时使用。 407 408**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 409 410**起始版本:** 11 411 412 413**参数:** 414 415| 参数项 | 描述 | 416| -- | -- | 417| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 418| int32_t mSeconds | 播放目标位置,精确到毫秒。 | 419| [AVPlayerSeekMode](capi-avplayer-base-h.md#avplayerseekmode) mode | 播放器的跳转模式。 | 420 421**返回:** 422 423| 类型 | 说明 | 424| -- | -- | 425| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player Seek执行失败。 | 426 427### OH_AVPlayer_GetCurrentTime() 428 429``` 430OH_AVErrCode OH_AVPlayer_GetCurrentTime(OH_AVPlayer *player, int32_t *currentTime) 431``` 432 433**描述** 434 435获取播放位置,精确到毫秒。 436 437**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 438 439**起始版本:** 11 440 441 442**参数:** 443 444| 参数项 | 描述 | 445| -- | -- | 446| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 447| int32_t *currentTime | 播放位置。 | 448 449**返回:** 450 451| 类型 | 说明 | 452| -- | -- | 453| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取当前播放位置。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player GetCurrentTime执行失败。 | 454 455### OH_AVPlayer_GetVideoWidth() 456 457``` 458OH_AVErrCode OH_AVPlayer_GetVideoWidth(OH_AVPlayer *player, int32_t *videoWidth) 459``` 460 461**描述** 462 463获取视频宽度。 464 465**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 466 467**起始版本:** 11 468 469 470**参数:** 471 472| 参数项 | 描述 | 473| -- | -- | 474| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 475| int32_t *videoWidth | 视频宽度。 | 476 477**返回:** 478 479| 类型 | 说明 | 480| -- | -- | 481| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取视频宽度。<br> AV_ERR_INVALID_VAL:输入player为空指针。 | 482 483### OH_AVPlayer_GetVideoHeight() 484 485``` 486OH_AVErrCode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeight) 487``` 488 489**描述** 490 491获取视频高度。 492 493**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 494 495**起始版本:** 11 496 497 498**参数:** 499 500| 参数项 | 描述 | 501| -- | -- | 502| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 503| int32_t *videoHeight | 视频高度。 | 504 505**返回:** 506 507| 类型 | 说明 | 508| -- | -- | 509| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取视频高度。<br> AV_ERR_INVALID_VAL:输入player为空指针。 | 510 511### OH_AVPlayer_SetPlaybackSpeed() 512 513``` 514OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed) 515``` 516 517**描述** 518 519根据指定的[AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed),设置播放器的播放速率。 520 521**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 522 523**起始版本:** 11 524 525 526**参数:** 527 528| 参数项 | 描述 | 529| -- | -- | 530| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 531| [AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed) speed | 速率模式。 | 532 533**返回:** 534 535| 类型 | 说明 | 536| -- | -- | 537| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置播放速率。<br> AV_ERR_INVALID_VAL:输入player为空指针。 | 538 539### OH_AVPlayer_SetPlaybackRate() 540 541``` 542OH_AVErrCode OH_AVPlayer_SetPlaybackRate(OH_AVPlayer *player, float rate) 543``` 544 545**描述** 546 547在有效范围内,设置播放器的播放速率。<br>支持的状态:已准备/正在播放/已暂停/已完成。 548 549**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 550 551**起始版本:** 20 552 553 554**参数:** 555 556| 参数项 | 描述 | 557| -- | -- | 558| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 559| float rate | 播放速率,有效范围是0.125~4。 | 560 561**返回:** 562 563| 类型 | 说明 | 564| -- | -- | 565| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置播放速率。<br> AV_ERR_OPERATE_NOT_PERMIT:如果在不支持的状态下调用或在直播期间调用。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者速率超出范围。 | 566 567### OH_AVPlayer_GetPlaybackSpeed() 568 569``` 570OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed *speed) 571``` 572 573**描述** 574 575获取当前播放器的播放速率。 576 577**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 578 579**起始版本:** 11 580 581 582**参数:** 583 584| 参数项 | 描述 | 585| -- | -- | 586| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 587| [AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed) *speed | 速率模式。 | 588 589**返回:** 590 591| 类型 | 说明 | 592| -- | -- | 593| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取播放速率。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player GetPlaybackSpeed执行失败。 | 594 595### OH_AVPlayer_SetAudioRendererInfo() 596 597``` 598OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo(OH_AVPlayer *player, OH_AudioStream_Usage streamUsage) 599``` 600 601**描述** 602 603设置player音频流类型。 604 605**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 606 607**起始版本:** 12 608 609 610**参数:** 611 612| 参数项 | 描述 | 613| -- | -- | 614| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 615| [OH_AudioStream_Usage](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiostream_usage) streamUsage | player音频流设置的类型。 | 616 617**返回:** 618 619| 类型 | 说明 | 620| -- | -- | 621| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置音频流类型。<br> AV_ERR_INVALID_VAL:输入player为空指针或者streamUsage值无效。 | 622 623### OH_AVPlayer_SetVolumeMode() 624 625``` 626OH_AVErrCode OH_AVPlayer_SetVolumeMode(OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode) 627``` 628 629**描述** 630 631设置player音频流音量模式。 632 633**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 634 635**起始版本:** 18 636 637 638**参数:** 639 640| 参数项 | 描述 | 641| -- | -- | 642| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 643| [OH_AudioStream_VolumeMode](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiostream_volumemode) volumeMode | 指定音频流音量模式。 | 644 645**返回:** 646 647| 类型 | 说明 | 648| -- | -- | 649| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置音频流音量模式。<br> AV_ERR_INVALID_VAL: 输入player为空指针或者volumeMode值无效。<br> AV_ERR_INVALID_STATE:函数在无效状态下调用,应先处于准备状态。<br> AV_ERR_SERVICE_DIED:系统错误。 | 650 651### OH_AVPlayer_SetAudioInterruptMode() 652 653``` 654OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode(OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode) 655``` 656 657**描述** 658 659设置player音频流的打断模式。 660 661**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 662 663**起始版本:** 12 664 665 666**参数:** 667 668| 参数项 | 描述 | 669| -- | -- | 670| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 671| [OH_AudioInterrupt_Mode](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiointerrupt_mode) interruptMode | player音频流使用的打断模式。 | 672 673**返回:** 674 675| 类型 | 说明 | 676| -- | -- | 677| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置音频流的打断模式。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者interruptMode值无效。 | 678 679### OH_AVPlayer_SetAudioEffectMode() 680 681``` 682OH_AVErrCode OH_AVPlayer_SetAudioEffectMode(OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode) 683``` 684 685**描述** 686 687设置player音频流的音效模式。 688 689**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 690 691**起始版本:** 12 692 693 694**参数:** 695 696| 参数项 | 描述 | 697| -- | -- | 698| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 699| [OH_AudioStream_AudioEffectMode](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiostream_audioeffectmode) effectMode | player音频流使用的音效模式。 | 700 701**返回:** 702 703| 类型 | 说明 | 704| -- | -- | 705| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置音频流的音效模式。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者effectMode值无效。 | 706 707### OH_AVPlayer_SelectBitRate() 708 709``` 710OH_AVErrCode OH_AVPlayer_SelectBitRate(OH_AVPlayer *player, uint32_t bitRate) 711``` 712 713**描述** 714 715设置hls播放器使用的码率。仅对HLS协议网络流有效。<br>默认情况下,播放器会根据网络连接情况选择合适的码率和速度。<br>通过INFO_TYPE_BITRATE_COLLECT上报有效码率链表,设置并选择指定的码率,选择小于且最接近的码率。准备好后,读取以查询当前选择的比特率。 716 717**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 718 719**起始版本:** 11 720 721 722**参数:** 723 724| 参数项 | 描述 | 725| -- | -- | 726| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 727| uint32_t bitRate | 码率,单位为bps。 | 728 729**返回:** 730 731| 类型 | 说明 | 732| -- | -- | 733| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置码率。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player SelectBitRate执行失败。 | 734 735### OH_AVPlayer_SetVideoSurface() 736 737``` 738OH_AVErrCode OH_AVPlayer_SetVideoSurface(OH_AVPlayer *player, OHNativeWindow *window) 739``` 740 741**描述** 742 743设置播放画面窗口。<br>此函数必须在SetSource之后,Prepare之前调用。 744 745**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 746 747**起始版本:** 11 748 749 750**参数:** 751 752| 参数项 | 描述 | 753| -- | -- | 754| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 755| OHNativeWindow *window | 指向OHNativeWindow实例的指针。 | 756 757**返回:** 758 759| 类型 | 说明 | 760| -- | -- | 761| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置播放画面窗口。<br> AV_ERR_INVALID_VAL:输入player为空指针,输入window为空指针或者player SetVideoSurface执行失败。 | 762 763### OH_AVPlayer_GetDuration() 764 765``` 766OH_AVErrCode OH_AVPlayer_GetDuration(OH_AVPlayer *player, int32_t *duration) 767``` 768 769**描述** 770 771获取媒体文件的总时长,精确到毫秒。 772 773**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 774 775**起始版本:** 11 776 777 778**参数:** 779 780| 参数项 | 描述 | 781| -- | -- | 782| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 783| int32_t *duration | 媒体文件的总时长。 | 784 785**返回:** 786 787| 类型 | 说明 | 788| -- | -- | 789| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取媒体文件时长。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player GetDuration执行失败。 | 790 791### OH_AVPlayer_GetState() 792 793``` 794OH_AVErrCode OH_AVPlayer_GetState(OH_AVPlayer *player, AVPlayerState *state) 795``` 796 797**描述** 798 799获取当前播放状态。 800 801**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 802 803**起始版本:** 11 804 805 806**参数:** 807 808| 参数项 | 描述 | 809| -- | -- | 810| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 811| [AVPlayerState](capi-avplayer-base-h.md#avplayerstate) *state | 当前播放状态。 | 812 813**返回:** 814 815| 类型 | 说明 | 816| -- | -- | 817| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取当前播放状态。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player GetState执行失败。 | 818 819### OH_AVPlayer_IsPlaying() 820 821``` 822bool OH_AVPlayer_IsPlaying(OH_AVPlayer *player) 823``` 824 825**描述** 826 827判断播放器是否在播放。 828 829**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 830 831**起始版本:** 11 832 833 834**参数:** 835 836| 参数项 | 描述 | 837| -- | -- | 838| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 839 840**返回:** 841 842| 类型 | 说明 | 843| -- | -- | 844| bool | 如果正在播放,则返回true;如果不在播放或者输入player为空指针则返回false。 | 845 846### OH_AVPlayer_IsLooping() 847 848``` 849bool OH_AVPlayer_IsLooping(OH_AVPlayer *player) 850``` 851 852**描述** 853 854判断是否循环播放。 855 856**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 857 858**起始版本:** 11 859 860 861**参数:** 862 863| 参数项 | 描述 | 864| -- | -- | 865| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 866 867**返回:** 868 869| 类型 | 说明 | 870| -- | -- | 871| bool | 如果是循环播放,则返回true;如果不是循环播放或者输入player为空指针则返回false。 | 872 873### OH_AVPlayer_SetLooping() 874 875``` 876OH_AVErrCode OH_AVPlayer_SetLooping(OH_AVPlayer *player, bool loop) 877``` 878 879**描述** 880 881设置循环播放。 882 883**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 884 885**起始版本:** 11 886 887 888**参数:** 889 890| 参数项 | 描述 | 891| -- | -- | 892| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 893| bool loop | 循环播放开关。 | 894 895**返回:** 896 897| 类型 | 说明 | 898| -- | -- | 899| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置循环播放。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player SetLooping执行失败。 | 900 901### OH_AVPlayer_SetPlayerCallback() 902 903``` 904OH_AVErrCode OH_AVPlayer_SetPlayerCallback(OH_AVPlayer *player, AVPlayerCallback callback) 905``` 906 907**描述** 908 909设置播放器回调函数。<br>由于通过此方法设置的信息监听回调函数[OH_AVPlayerOnInfo](capi-avplayer-base-h.md#oh_avplayeroninfo)和错误监听回调函数[OH_AVPlayerOnError](capi-avplayer-base-h.md#oh_avplayeronerror)可以传递的信息有限,也不便于应用区分多个播放器实例。 910 911从API 12开始,应使用[OH_AVPlayer_SetOnInfoCallback](capi-avplayer-h.md#oh_avplayer_setoninfocallback)、[OH_AVPlayer_SetOnErrorCallback](capi-avplayer-h.md#oh_avplayer_setonerrorcallback)接口分别设置信息监听回调函数[OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback)和错误监听回调函数[OH_AVPlayerOnErrorCallback](capi-avplayer-base-h.md#oh_avplayeronerrorcallback)。 912 913**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 914 915**起始版本:** 11 916 917 918**参数:** 919 920| 参数项 | 描述 | 921| -- | -- | 922| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 923| [AVPlayerCallback](capi-avplayer-avplayercallback.md) callback | 回调对象指针。 | 924 925**返回:** 926 927| 类型 | 说明 | 928| -- | -- | 929| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功设置播放器回调。<br> AV_ERR_INVALID_VAL:输入player为空指针,callback.onInfo或onError为空,或者player SetPlayerCallback执行失败。 | 930 931### OH_AVPlayer_SelectTrack() 932 933``` 934OH_AVErrCode OH_AVPlayer_SelectTrack(OH_AVPlayer *player, int32_t index) 935``` 936 937**描述** 938 939选择音频或字幕轨道。<br>默认播放第一个带数据的音轨,不播放字幕轨迹。<br>设置生效后,原音轨将失效。请设置字幕处于准备/播放/暂停/完成状态,并将音轨设置为准备状态。 940 941该接口在当前版本暂不支持,将在后续版本开放能力。 942 943**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 944 945**起始版本:** 11 946 947 948**参数:** 949 950| 参数项 | 描述 | 951| -- | -- | 952| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 953| int32_t index | 索引。 | 954 955**返回:** 956 957| 类型 | 说明 | 958| -- | -- | 959| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player SelectTrack执行失败。 | 960 961### OH_AVPlayer_DeselectTrack() 962 963``` 964OH_AVErrCode OH_AVPlayer_DeselectTrack(OH_AVPlayer *player, int32_t index) 965``` 966 967**描述** 968 969取消选择当前音频或字幕轨道。 970 971该接口在当前版本暂不支持,将在后续版本开放能力。 972 973**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 974 975**起始版本:** 11 976 977 978**参数:** 979 980| 参数项 | 描述 | 981| -- | -- | 982| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 983| int32_t index | 索引。 | 984 985**返回:** 986 987| 类型 | 说明 | 988| -- | -- | 989| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player DeselectTrack执行失败。 | 990 991### OH_AVPlayer_GetCurrentTrack() 992 993``` 994OH_AVErrCode OH_AVPlayer_GetCurrentTrack(OH_AVPlayer *player, int32_t trackType, int32_t *index) 995``` 996 997**描述** 998 999获取当前有效的轨道索引。请将状态设置为准备/正在播放/暂停/完成。 1000 1001该接口在当前版本暂不支持,将在后续版本开放能力。 1002 1003**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1004 1005**起始版本:** 11 1006 1007 1008**参数:** 1009 1010| 参数项 | 描述 | 1011| -- | -- | 1012| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1013| int32_t trackType | 媒体类型。0:音频,1:视频。 | 1014| int32_t *index | 索引。 | 1015 1016**返回:** 1017 1018| 类型 | 说明 | 1019| -- | -- | 1020| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:成功获取轨道索引。<br> AV_ERR_INVALID_VAL:输入player为空指针,或者player GetCurrentTrack执行失败。 | 1021 1022### OH_AVPlayer_SetMediaKeySystemInfoCallback() 1023 1024``` 1025OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback(OH_AVPlayer *player,Player_MediaKeySystemInfoCallback callback) 1026``` 1027 1028**描述** 1029 1030设置播放器媒体密钥系统信息回调的方法。 1031 1032**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1033 1034**起始版本:** 12 1035 1036 1037**参数:** 1038 1039| 参数项 | 描述 | 1040| -- | -- | 1041| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1042| [Player_MediaKeySystemInfoCallback](#player_mediakeysysteminfocallback) callback | 对象指针。 | 1043 1044**返回:** 1045 1046| 类型 | 说明 | 1047| -- | -- | 1048| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针,callback为空指针或player SetDrmSystemInfoCallback执行失败。 | 1049 1050### OH_AVPlayer_GetMediaKeySystemInfo() 1051 1052``` 1053OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo(OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo) 1054``` 1055 1056**描述** 1057 1058获取媒体密钥系统信息以创建媒体密钥会话。 1059 1060**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1061 1062**起始版本:** 12 1063 1064 1065**参数:** 1066 1067| 参数项 | 描述 | 1068| -- | -- | 1069| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1070| [DRM_MediaKeySystemInfo](capi-avplayer-drm-mediakeysysteminfo.md) *mediaKeySystemInfo | 媒体密钥系统信息。 | 1071 1072**返回:** 1073 1074| 类型 | 说明 | 1075| -- | -- | 1076| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针或者内存不足。 | 1077 1078### OH_AVPlayer_SetDecryptionConfig() 1079 1080``` 1081OH_AVErrCode OH_AVPlayer_SetDecryptionConfig(OH_AVPlayer *player, MediaKeySession *mediaKeySession,bool secureVideoPath) 1082``` 1083 1084**描述** 1085 1086设置解密信息。 1087 1088**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1089 1090**起始版本:** 12 1091 1092 1093**参数:** 1094 1095| 参数项 | 描述 | 1096| -- | -- | 1097| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1098| [MediaKeySession](capi-avplayer-mediakeysession.md) *mediaKeySession | 具有解密功能的媒体密钥会话实例。 | 1099| bool secureVideoPath | 是否需要安全解码器。 | 1100 1101**返回:** 1102 1103| 类型 | 说明 | 1104| -- | -- | 1105| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入player为空指针或者player SetDecryptionConfig执行失败。 | 1106 1107### OH_AVPlayer_SetOnInfoCallback() 1108 1109``` 1110OH_AVErrCode OH_AVPlayer_SetOnInfoCallback(OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData) 1111``` 1112 1113**描述** 1114 1115设置播放器消息回调监听函数。 1116 1117**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1118 1119**起始版本:** 12 1120 1121 1122**参数:** 1123 1124| 参数项 | 描述 | 1125| -- | -- | 1126| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1127| [OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback) callback | 执行回调监听函数的指针,空指针表示取消设置播放器消息回调监听。 | 1128| void *userData | 指向应用调用者设置的实例的指针。 | 1129 1130**返回:** 1131 1132| 类型 | 说明 | 1133| -- | -- | 1134| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_NO_MEMORY:内存分配失败。<br> AV_ERR_INVALID_VAL: 输入player为空指针或者函数执行失败。 | 1135 1136### OH_AVPlayer_SetOnErrorCallback() 1137 1138``` 1139OH_AVErrCode OH_AVPlayer_SetOnErrorCallback(OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData) 1140``` 1141 1142**描述** 1143 1144设置播放器错误回调监听函数。 1145 1146**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 1147 1148**起始版本:** 12 1149 1150 1151**参数:** 1152 1153| 参数项 | 描述 | 1154| -- | -- | 1155| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 1156| [OH_AVPlayerOnErrorCallback](capi-avplayer-base-h.md#oh_avplayeronerrorcallback) callback | 执行回调监听函数的指针,空指针表示取消设置播放器错误回调监听。 | 1157| void *userData | 指向应用调用者设置的实例的指针。 | 1158 1159**返回:** 1160 1161| 类型 | 说明 | 1162| -- | -- | 1163| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_NO_MEMORY:内存分配失败。<br> AV_ERR_INVALID_VAL: 输入player为空指针或者函数执行失败。 | 1164 1165 1166