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