1# avplayer_base.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的结构体和枚举。 12 13**引用文件:** <multimedia/player_framework/avplayer_base.h> 14 15**库:** libavplayer.so 16 17**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 18 19**起始版本:** 11 20 21**相关模块:** [AVPlayer](capi-avplayer.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [AVPlayerCallback](capi-avplayer-avplayercallback.md) | AVPlayerCallback | 包含了[OH_AVPlayerOnInfo](#oh_avplayeroninfo)和OH_AVPlayerOnInfo回调函数指针的集合。应用需注册此结构体到OH_AVPlayer实例中,并处理回调上报的信息,保证AVPlayer的正常运行。 | 30| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) | OH_AVPlayer | 初始化AVPlayer。 | 31 32### 枚举 33 34| 名称 | typedef关键字 | 描述 | 35| -- | -- | -- | 36| [AVPlayerState](#avplayerstate) | AVPlayerState | 播放状态。 | 37| [AVPlayerSeekMode](#avplayerseekmode) | AVPlayerSeekMode | 跳转模式。 | 38| [AVPlaybackSpeed](#avplaybackspeed) | AVPlaybackSpeed | 播放速度。 | 39| [AVPlayerOnInfoType](#avplayeroninfotype) | AVPlayerOnInfoType | OnInfo类型。<br>可用于[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback)和[OH_AVPlayerOnInfo](#oh_avplayeroninfo)(已废弃),用于表示收到的播放器信息类型。 | 40| [AVPlayerBufferingType](#avplayerbufferingtype) | AVPlayerBufferingType | 播放缓冲消息类型定义。 | 41 42### 函数 43 44| 名称 | typedef关键字 | 描述 | 45| -- | -- | -- | 46| [typedef void (\*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra)](#oh_avplayeroninfo) | OH_AVPlayerOnInfo | 收到播放器消息时调用。 | 47| [typedef void (\*OH_AVPlayerOnInfoCallback)(OH_AVPlayer \*player, AVPlayerOnInfoType type, OH_AVFormat* infoBody, void *userData)](#oh_avplayeroninfocallback) | OH_AVPlayerOnInfoCallback | 收到播放器消息时被调用。如果应用成功设置该回调,则不会回调[OH_AVPlayerOnInfo](#oh_avplayeroninfo)函数。 | 48| [typedef void (\*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg)](#oh_avplayeronerror) | OH_AVPlayerOnError | 在API 9以上的版本发生错误时调用。 | 49| [typedef void (\*OH_AVPlayerOnErrorCallback)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg, void *userData)](#oh_avplayeronerrorcallback) | OH_AVPlayerOnErrorCallback | 发生错误时被调用。如果应用成功设置该回调,则不会回调[OH_AVPlayerOnError](#oh_avplayeronerror)函数。 | 50 51### 变量 52 53| 名称 | 描述 | 54| -- | -- | 55| const char * OH_PLAYER_STATE | 获取播放状态的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 56| const char * OH_PLAYER_STATE_CHANGE_REASON | 获取播放状态变更原因的关键字,对应值类型是int32_t。<br>1:用户操作触发;2:系统变更触发。<br>**起始版本:** 12 | 57| const char * OH_PLAYER_VOLUME | 获取音量的关键字,对应值类型是float。<br>**起始版本:** 12 | 58| const char * OH_PLAYER_BITRATE_ARRAY | 获取比特率列表的关键字,对应值类型是uint8_t字节数组。通过该关键字获取信息时:<br>需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。<br>然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。<br>可以参考[开发指南](../../media/media/using-ndk-avplayer-for-playback.md)中[OH_AVPlayerOnInfoCallback](#oh_avplayeroninfocallback)函数。<br>**起始版本:** 12 | 59| const char * OH_PLAYER_AUDIO_INTERRUPT_TYPE | 获取音频打断类型的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 60| const char * OH_PLAYER_AUDIO_INTERRUPT_FORCE | 获取音频打断FORCE类型的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 61| const char * OH_PLAYER_AUDIO_INTERRUPT_HINT | 获取音频打断HINT类型的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 62| const char * OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON | 获取音频设备变更原因的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 63| const char * OH_PLAYER_BUFFERING_TYPE | 获取缓冲更新消息类型的关键字,对应值类型是[AVPlayerBufferingType](capi-avplayer-base-h.md#avplayerbufferingtype)。<br>通过该关键字获取信息时,需要先使用int32_t类型变量保存结果,再转换为AVPlayerBufferingType类型。<br>**起始版本:** 12 | 64| const char * OH_PLAYER_BUFFERING_VALUE | 获取缓冲更新消息数值的关键字,对应值类型是int32_t,参见[AVPlayerBufferingType](capi-avplayer-base-h.md#avplayerbufferingtype)。<br>当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效。<br>**起始版本:** 12 | 65| const char * OH_PLAYER_SEEK_POSITION | 获取Seek后播放进度的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 66| const char * OH_PLAYER_PLAYBACK_SPEED | 获取播放倍速信息的关键字, 对应值类型是[AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed)。<br>通过该关键字获取信息时,需要先使用int32_t类型变量保存结果,再转换为AVPlaybackSpeed类型。<br>**起始版本:** 12 | 67| const char * OH_PLAYER_PLAYBACK_RATE | 获取有效播放速率的关键字,对应值类型是浮点数。<br>**起始版本:** 20 | 68| const char * OH_PLAYER_BITRATE | 获取比特率信息的关键字,对应值类型是uint32_t。<br>**起始版本:** 12 | 69| const char * OH_PLAYER_CURRENT_POSITION | 获取播放进度信息的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 70| const char * OH_PLAYER_DURATION | 获取媒体资源时长信息的关键字,对应值类型是int64_t。<br>**起始版本:** 12 | 71| const char * OH_PLAYER_VIDEO_WIDTH | 获取视频宽度信息的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 72| const char * OH_PLAYER_VIDEO_HEIGHT | 获取视频高度信息的关键字,对应值类型是int32_t。<br>**起始版本:** 12 | 73| const char * OH_PLAYER_MESSAGE_TYPE | 获取播放器消息信息的关键字,对应值类型是int32_t。<br>1:视频帧开始渲染。<br>**起始版本:** 12 | 74| const char * OH_PLAYER_IS_LIVE_STREAM | 获取媒体资源是否为直播类型信息的关键字,对应值类型是int32_t。<br>1:直播。<br>**起始版本:** 12 | 75 76## 枚举类型说明 77 78### AVPlayerState 79 80``` 81enum AVPlayerState 82``` 83 84**描述** 85 86播放状态。 87 88**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 89 90**起始版本:** 11 91 92| 枚举项 | 描述 | 93| -- | -- | 94| AV_IDLE = 0 | 空闲 | 95| AV_INITIALIZED = 1 | 初始化 | 96| AV_PREPARED = 2 | 准备 | 97| AV_PLAYING = 3 | 播放 | 98| AV_PAUSED = 4 | 暂停 | 99| AV_STOPPED = 5 | 停止 | 100| AV_COMPLETED = 6 | 结束 | 101| AV_RELEASED = 7 | 释放 | 102| AV_ERROR = 8 | 错误 | 103 104### AVPlayerSeekMode 105 106``` 107enum AVPlayerSeekMode 108``` 109 110**描述** 111 112跳转模式。 113 114**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 115 116**起始版本:** 11 117 118| 枚举项 | 描述 | 119| -- | -- | 120| AV_SEEK_NEXT_SYNC = 0 | 同步到时间点之后的关键帧。 | 121| AV_SEEK_PREVIOUS_SYNC | 同步到时间点之前的关键帧。 | 122| AV_SEEK_CLOSEST = 2 | 同步到距离指定时间点最近的帧。<br>**起始版本:** 12 | 123 124### AVPlaybackSpeed 125 126``` 127enum AVPlaybackSpeed 128``` 129 130**描述** 131 132播放速度。 133 134**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 135 136**起始版本:** 11 137 138| 枚举项 | 描述 | 139| -- | -- | 140| AV_SPEED_FORWARD_0_75_X | 0.75倍速播放。 | 141| AV_SPEED_FORWARD_1_00_X | 正常播放。 | 142| AV_SPEED_FORWARD_1_25_X | 1.25倍速播放。 | 143| AV_SPEED_FORWARD_1_75_X | 1.75倍速播放。 | 144| AV_SPEED_FORWARD_2_00_X | 2.0倍速播放。 | 145| AV_SPEED_FORWARD_0_50_X | 0.5倍速播放。<br>**起始版本:** 12 | 146| AV_SPEED_FORWARD_1_50_X | 1.5倍速播放。<br>**起始版本:** 12 | 147| AV_SPEED_FORWARD_3_00_X | 3.0倍速播放。<br>**起始版本:** 13 | 148| AV_SPEED_FORWARD_0_25_X | 0.25倍速播放。<br>**起始版本:** 13 | 149| AV_SPEED_FORWARD_0_125_X | 0.125倍速播放。<br>**起始版本:** 13 | 150 151### AVPlayerOnInfoType 152 153``` 154enum AVPlayerOnInfoType 155``` 156 157**描述** 158 159OnInfo类型。<br>可用于OH_AVPlayerOnInfoCallback和OH_AVPlayerOnInfo(已废弃),用于表示收到的播放器信息类型。<br>从API 12开始,推荐用户使用[OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback)。不同的OnInfo类型,可获取到不同信息(infoBody),infoBody中包含key-value关系表,详见下述枚举值表。<br>使用API 11版本的开发者,需要使用旧接口。针对已废弃接口OH_AVPlayerOnInfo中使用的对应关系,可直接参考[OH_AVPlayerOnInfo](capi-avplayer-base-h.md#oh_avplayeroninfo)的API说明。 160 161**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 162 163**起始版本:** 11 164 165| 枚举项 | 描述 | 166| -- | -- | 167| AV_INFO_TYPE_SEEKDONE = 0 | 跳转到对应播放位置时返回消息。<br>key为OH_PLAYER_SEEK_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 168| AV_INFO_TYPE_SPEEDDONE = 1 | 播放倍速设置完成时返回消息。<br>key为OH_PLAYER_PLAYBACK_SPEED:取值类型[AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed)。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlaybackSpeed](capi-avplayer-base-h.md#avplaybackspeed)。 | 169| AV_INFO_TYPE_BITRATEDONE = 2 | 比特率设置完成时返回消息。<br>key为OH_PLAYER_BITRATE:取值类型uint32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制为uint32_t。 | 170| AV_INFO_TYPE_EOS = 3 | 播放完成时返回消息。 | 171| AV_INFO_TYPE_STATE_CHANGE = 4 | 状态改变时返回消息。<br>key为OH_PLAYER_STATE:取值类型int32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlayerState](capi-avplayer-base-h.md#avplayerstate)。<br>key为OH_PLAYER_STATE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1:用户操作触发;2:系统变更触发。 | 172| AV_INFO_TYPE_POSITION_UPDATE = 5 | 返回当前播放位置。<br>key为OH_PLAYER_CURRENT_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 173| AV_INFO_TYPE_MESSAGE = 6 | 视频开始渲染时返回消息。<br>key为OH_PLAYER_MESSAGE_TYPE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1表示视频开始渲染。 | 174| AV_INFO_TYPE_VOLUME_CHANGE = 7 | 音量改变时返回消息。<br>key为OH_PLAYER_VOLUME:取值类型float。系统通过float传递value,应用需通过float获取。取值范围[0.0, 1.0]。 | 175| AV_INFO_TYPE_RESOLUTION_CHANGE = 8 | 首次获取视频大小或视频大小更新时返回消息。<br>key为OH_PLAYER_VIDEO_WIDTH 或 OH_PLAYER_VIDEO_HEIGHT:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 176| AV_INFO_TYPE_BUFFERING_UPDATE = 9 | 返回多队列缓冲时间。<br>key为OH_PLAYER_BUFFERING_TYPE:取值类型[AVPlayerBufferingType](capi-avplayer-base-h.md#avplayerbufferingtype)。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为[AVPlayerBufferingType](capi-avplayer-base-h.md#avplayerbufferingtype)。<br>key为OH_PLAYER_BUFFERING_VALUE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。<br>当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效,分别表示缓冲进度完成百分比、缓冲数据可播放时长。 | 177| AV_INFO_TYPE_BITRATE_COLLECT = 10 | 上报HLS视频比特率列表消息。<br>key为OH_PLAYER_BITRATE_ARRAY:取值类型uint8_t字节数组。应用需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。 | 178| AV_INFO_TYPE_INTERRUPT_EVENT = 11 | 音频焦点改变时返回消息。<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,音频恢复音量。 | 179| AV_INFO_TYPE_DURATION_UPDATE = 12 | 返回播放时长。<br>key为OH_PLAYER_DURATION:取值类型int64_t。系统通过int64_t传递value,应用需通过int64_t获取。 | 180| AV_INFO_TYPE_IS_LIVE_STREAM = 13 | 播放为直播流时返回消息。key为OH_PLAYER_IS_LIVE_STREAM:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。0表示非直播流,1表示直播流。 | 181| AV_INFO_TYPE_TRACKCHANGE = 14 | 轨道改变时返回消息,此场景extra未定义。 | 182| AV_INFO_TYPE_TRACK_INFO_UPDATE = 15 | 轨道更新时返回消息,此场景extra未定义。 | 183| AV_INFO_TYPE_SUBTITLE_UPDATE = 16 | 字幕信息更新时返回消息,此场景extra未定义。 | 184| AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17 | 音频输出设备改变时返回消息。<br>key为OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。 | 185| AV_INFO_TYPE_PLAYBACK_RATE_DONE = 18 | 播放速率成功应用时返回消息。<br>key为OH_PLAYER_PLAYBACK_RATE:取值类型float。系统通过float传递value,应用通过float获取。<br>**起始版本:** 20 | 186 187### AVPlayerBufferingType 188 189``` 190enum AVPlayerBufferingType 191``` 192 193**描述** 194 195播放缓冲消息类型定义。 196 197**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 198 199**起始版本:** 12 200 201| 枚举项 | 描述 | 202| -- | -- | 203| AVPLAYER_BUFFERING_START = 1 | 缓冲开始消息。 | 204| AVPLAYER_BUFFERING_END | 缓冲结束消息。 | 205| AVPLAYER_BUFFERING_PERCENT | 缓冲执行进度百分比,取值范围:整数,[0, 100]。 | 206| AVPLAYER_BUFFERING_CACHED_DURATION | 缓冲数据可播放时长,单位:毫秒。 | 207 208 209## 函数说明 210 211### OH_AVPlayerOnInfo() 212 213``` 214typedef void (*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra) 215``` 216 217**描述** 218 219收到播放器消息时调用。 220 221信息类型(type)和信息(extra)的对应关系如表所示。 222 223| 信息类型(type) | 对应的extra描述 | 224| -------- | -------- | 225| AV_INFO_TYPE_SEEKDONE | 跳转到对应播放位置时返回消息,extra表示跳转到的位置。 | 226| AV_INFO_TYPE_SPEEDDONE | 播放倍速设置完成时返回消息,extra表示播放倍速信息,具体请参考[AVPlaybackSpeed](#avplaybackspeed)。 | 227| AV_INFO_TYPE_BITRATEDONE | 比特率设置完成时返回消息,extra表示比特率信息。 | 228| AV_INFO_TYPE_EOS | 播放完成时返回消息。| 229| AV_INFO_TYPE_STATE_CHANGE | 状态改变时返回消息,extra表示当前播放状态,具体请参见[AVPlayerState](#avplayerstate)。 | 230| AV_INFO_TYPE_POSITION_UPDATE | 返回当前播放位置,extra表示当前位置。 | 231| AV_INFO_TYPE_MESSAGE | 视频开始渲染时返回消息,extra表示视频首帧渲染。 | 232| AV_INFO_TYPE_VOLUME_CHANGE | 音量改变时返回消息,此场景下extra未定义。 | 233| AV_INFO_TYPE_RESOLUTION_CHANGE | 首次获取视频大小或视频大小更新时返回消息,此场景下extra未定义。 | 234| AV_INFO_TYPE_BUFFERING_UPDATE | 返回多队列缓冲时间,extra表示视频时长。 | 235| AV_INFO_TYPE_BITRATE_COLLECT | 上报HLS视频比特率列表消息。上报时每个比特率已经转化为uint8_t字节数组,使用者需要将uint8_t字节数组强制转换为uint32_t整型数组。 | 236| AV_INFO_TYPE_INTERRUPT_EVENT | 音频焦点改变时返回消息,extra表示音频打断提示,具体请参见[OH_AudioInterrupt_Hint](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiointerrupt_hint),应用可决定是否根据打断提示作进一步处理。 | 237| AV_INFO_TYPE_DURATION_UPDATE | 返回播放时长,extra表示视频时长。 | 238| AV_INFO_TYPE_IS_LIVE_STREAM | 播放为直播流时返回消息,extra表示是否为直播流,0表示非直播流,1表示直播流。 | 239| AV_INFO_TYPE_TRACKCHANGE | 轨道改变时返回消息,此场景extra未定义。 | 240| AV_INFO_TYPE_TRACK_INFO_UPDATE |轨道更新时返回消息,此场景extra未定义。 | 241| AV_INFO_TYPE_SUBTITLE_UPDATE | 字幕信息更新时返回消息,此场景extra未定义。 | 242| AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE | 音频输出设备改变时返回消息,extra表示设备改变原因,具体请参见[OH_AudioStream_DeviceChangeReason](../apis-audio-kit/capi-native-audiostream-base-h.md#oh_audiostream_devicechangereason)。 | 243 244**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 245 246**起始版本:** 11 247 248**废弃版本:** 12 249 250**替代接口:** [OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback) 251 252 253**参数:** 254 255| 参数项 | 描述 | 256| -- | -- | 257| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 258| [AVPlayerOnInfoType](capi-avplayer-base-h.md#avplayeroninfotype) type | 信息类型。类型为[AVPlayerOnInfoType](capi-avplayer-base-h.md#avplayeroninfotype),与extra的对应关系可见方法描述。 | 259| int32_t extra | 其他信息,如播放文件的开始时间位置。 | 260 261### OH_AVPlayerOnInfoCallback() 262 263``` 264typedef void (*OH_AVPlayerOnInfoCallback)(OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat* infoBody,void *userData) 265``` 266 267**描述** 268 269收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。 270 271**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 272 273**起始版本:** 12 274 275 276**参数:** 277 278| 参数项 | 描述 | 279| -- | -- | 280| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 281| [AVPlayerOnInfoType](capi-avplayer-base-h.md#avplayeroninfotype) type | 信息类型。具体请参见[AVPlayerOnInfoType](capi-avplayer-base-h.md#avplayeroninfotype)。 | 282| [OH_AVFormat](../apis-avcodec-kit/_core.md#oh_avformat)* infoBody | 指向携带具体消息的指针,仅在该回调方法内有效。 | 283| void *userData | 指向应用调用者设置该回调函数时提供的实例的指针。 | 284 285### OH_AVPlayerOnError() 286 287``` 288typedef void (*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg) 289``` 290 291**描述** 292 293在api9以上的版本发生错误时调用 294 295**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 296 297**起始版本:** 11 298 299**废弃版本:** 12 300 301**替代接口:** [OH_AVPlayerOnInfoCallback](capi-avplayer-base-h.md#oh_avplayeroninfocallback) [OH_AVPlayerOnError](capi-avplayer-base-h.md#oh_avplayeronerror) 302 303 304**参数:** 305 306| 参数项 | 描述 | 307| -- | -- | 308| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 309| int32_t 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。 | 310| const char *errorMsg | 错误消息。 | 311 312### OH_AVPlayerOnErrorCallback() 313 314``` 315typedef void (*OH_AVPlayerOnErrorCallback)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg,void *userData) 316``` 317 318**描述** 319 320发生错误时被调用。如果应用成功设置该回调,则不会调用OH_AVPlayerOnError函数。 321 322**系统能力:** SystemCapability.Multimedia.Media.AVPlayer 323 324**起始版本:** 12 325 326 327**参数:** 328 329| 参数项 | 描述 | 330| -- | -- | 331| [OH_AVPlayer](capi-avplayer-oh-avplayer.md) *player | 指向OH_AVPlayer实例的指针。 | 332| int32_t 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错误。API 12-13取值为4;API 14及以后,对应错误细化为错误码5411001~5411011。<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。 | 333| const char *errorMsg | 错误消息。 | 334| void *userData | 原样返回用户设置回调时传入的userData数据。 | 335 336 337