• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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