# AVPlayer
## 概述
为媒体源提供播放能力的API。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [avplayer.h](avplayer_8h.md) | 定义avplayer接口。使用AVPlayer提供的Native API播放媒体源。 |
| [avplayer_base.h](avplayer__base_8h.md) | 定义AVPlayer的结构体和枚举。 |
### 结构体
| 名称 | 描述 |
| -------- | -------- |
| [AVPlayerCallback](_a_v_player_callback.md) | OH_AVPlayer中所有回调函数指针的集合。 |
### 类型定义
| 名称 | 描述 |
| -------- | -------- |
| [AVPlayerState](#avplayerstate) | 播放状态 |
| [AVPlayerSeekMode](#avplayerseekmode) | 跳转模式 |
| [AVPlaybackSpeed](#avplaybackspeed) | 播放速度 |
| [AVPlayerOnInfoType](#avplayeroninfotype) | OnInfo类型 |
| (\*[OH_AVPlayerOnInfo](#oh_avplayeroninfo)) (OH_AVPlayer \*player, [AVPlayerOnInfoType](#avplayeroninfotype) type, int32_t extra) | 收到播放器消息时调用。 |
| (\*[OH_AVPlayerOnError](#oh_avplayeronerror)) (OH_AVPlayer \*player, int32_t errorCode, const char \*errorMsg) | 在API 9以上的版本发生错误时调用 |
| [AVPlayerCallback](#avplayercallback) | OH_AVPlayer中所有回调函数指针的集合。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [AVPlayerState](#avplayerstate) {
AV_IDLE = 0, AV_INITIALIZED = 1, AV_PREPARED = 2, AV_PLAYING = 3,
AV_PAUSED = 4, AV_STOPPED = 5, AV_COMPLETED = 6, AV_RELEASED = 7,
AV_ERROR = 8
} | 播放状态 |
| [AVPlayerSeekMode](#avplayerseekmode) { AV_SEEK_NEXT_SYNC = 0, AV_SEEK_PREVIOUS_SYNC } | 跳转模式 |
| [AVPlaybackSpeed](#avplaybackspeed) {
AV_SPEED_FORWARD_0_75_X, AV_SPEED_FORWARD_1_00_X, AV_SPEED_FORWARD_1_25_X, AV_SPEED_FORWARD_1_75_X,
AV_SPEED_FORWARD_2_00_X
} | 播放速度 |
| [AVPlayerOnInfoType](#avplayeroninfotype) {
AV_INFO_TYPE_SEEKDONE = 0, AV_INFO_TYPE_SPEEDDONE = 1, AV_INFO_TYPE_BITRATEDONE = 2, AV_INFO_TYPE_EOS = 3,
AV_INFO_TYPE_STATE_CHANGE = 4, AV_INFO_TYPE_POSITION_UPDATE = 5, AV_INFO_TYPE_MESSAGE = 6, AV_INFO_TYPE_VOLUME_CHANGE = 7,
AV_INFO_TYPE_RESOLUTION_CHANGE = 8, AV_INFO_TYPE_BUFFERING_UPDATE = 9, AV_INFO_TYPE_BITRATE_COLLECT = 10, AV_INFO_TYPE_INTERRUPT_EVENT = 11,
AV_INFO_TYPE_DURATION_UPDATE = 12, AV_INFO_TYPE_IS_LIVE_STREAM = 13, AV_INFO_TYPE_TRACKCHANGE = 14, AV_INFO_TYPE_TRACK_INFO_UPDATE = 15,
AV_INFO_TYPE_SUBTITLE_UPDATE = 16, AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17
} | OnInfo类型 |
### 函数
| 名称 | 描述 |
| -------- | -------- |
| \*[OH_AVPlayer_Create](#oh_avplayer_create) (void) | 创建播放器。 |
| [OH_AVPlayer_SetURLSource](#oh_avplayer_seturlsource) (OH_AVPlayer \*player, const char \*url) | 设置播放器的播放源。对应的源可以是http url。 |
| [OH_AVPlayer_SetFDSource](#oh_avplayer_setfdsource) (OH_AVPlayer \*player, int32_t fd, int64_t offset, int64_t size) | 设置播放器的播放媒体文件描述符来源。 |
| [OH_AVPlayer_Prepare](#oh_avplayer_prepare) (OH_AVPlayer \*player) | 准备播放环境,异步缓存媒体数据。 |
| [OH_AVPlayer_Play](#oh_avplayer_play) (OH_AVPlayer \*player) | 开始播放。 |
| [OH_AVPlayer_Pause](#oh_avplayer_pause) (OH_AVPlayer \*player) | 暂停播放。 |
| [OH_AVPlayer_Stop](#oh_avplayer_stop) (OH_AVPlayer \*player) | 停止播放。 |
| [OH_AVPlayer_Reset](#oh_avplayer_reset) (OH_AVPlayer \*player) | 将播放器恢复到初始状态。 |
| [OH_AVPlayer_Release](#oh_avplayer_release) (OH_AVPlayer \*player) | 异步释放播放器资源。 |
| [OH_AVPlayer_ReleaseSync](#oh_avplayer_releasesync) (OH_AVPlayer \*player) | 同步释放播放器资源。 |
| [OH_AVPlayer_SetVolume](#oh_avplayer_setvolume) (OH_AVPlayer \*player, float leftVolume, float rightVolume) | 设置播放器的音量。 |
| [OH_AVPlayer_Seek](#oh_avplayer_seek) (OH_AVPlayer \*player, int32_t mSeconds, [AVPlayerSeekMode](#avplayerseekmode) mode) | 改变播放位置。 |
| [OH_AVPlayer_GetCurrentTime](#oh_avplayer_getcurrenttime) (OH_AVPlayer \*player, int32_t \*currentTime) | 获取播放位置,精确到毫秒。 |
| [OH_AVPlayer_GetVideoWidth](#oh_avplayer_getvideowidth) (OH_AVPlayer \*player, int32_t \*videoWidth) | 获取视频宽度。 |
| [OH_AVPlayer_GetVideoHeight](#oh_avplayer_getvideoheight) (OH_AVPlayer \*player, int32_t \*videoHeight) | 获取视频高度。 |
| [OH_AVPlayer_SetPlaybackSpeed](#oh_avplayer_setplaybackspeed) (OH_AVPlayer \*player, [AVPlaybackSpeed](#avplaybackspeed) speed) | 设置播放器播放速率。 |
| [OH_AVPlayer_GetPlaybackSpeed](#oh_avplayer_getplaybackspeed) (OH_AVPlayer \*player, [AVPlaybackSpeed](#avplaybackspeed) \*speed) | 获取当前播放器播放速率。 |
| [OH_AVPlayer_SelectBitRate](#oh_avplayer_selectbitrate) (OH_AVPlayer \*player, uint32_t bitRate) | 设置hls播放器使用的码率。 |
| [OH_AVPlayer_SetVideoSurface](#oh_avplayer_setvideosurface) (OH_AVPlayer \*player, OHNativeWindow \*window) | 设置播放画面窗口。 |
| [OH_AVPlayer_GetDuration](#oh_avplayer_getduration) (OH_AVPlayer \*player, int32_t \*duration) | 获取媒体文件的总时长,精确到毫秒。 |
| [OH_AVPlayer_GetState](#oh_avplayer_getstate) (OH_AVPlayer \*player, [AVPlayerState](#avplayerstate) \*state) | 获取当前播放状态。 |
| [OH_AVPlayer_IsPlaying](#oh_avplayer_isplaying) (OH_AVPlayer \*player) | 判断播放器是否在播放。 |
| [OH_AVPlayer_IsLooping](#oh_avplayer_islooping) (OH_AVPlayer \*player) | 判断是用循环播放。 |
| [OH_AVPlayer_SetLooping](#oh_avplayer_setlooping) (OH_AVPlayer \*player, bool loop) | 设置循环播放。 |
| [OH_AVPlayer_SetPlayerCallback](#oh_avplayer_setplayercallback) (OH_AVPlayer \*player, [AVPlayerCallback](_a_v_player_callback.md) callback) | 设置播放器回调方法。 |
| [OH_AVPlayer_SelectTrack](#oh_avplayer_selecttrack) (OH_AVPlayer \*player, int32_t index) | 选择音频或字幕轨道。 |
| [OH_AVPlayer_DeselectTrack](#oh_avplayer_deselecttrack) (OH_AVPlayer \*player, int32_t index) | 取消选择当前音频或字幕轨道。 |
| [OH_AVPlayer_GetCurrentTrack](#oh_avplayer_getcurrenttrack) (OH_AVPlayer \*player, int32_t trackType, int32_t \*index) | 获取当前有效的轨道索引。 |
### 变量
| 名称 | 描述 |
| -------- | -------- |
| [AVPlayerCallback::onInfo](#oninfo) | 监听AVPlayer过程信息,参考[OH_AVPlayerOnInfo](#oh_avplayeroninfo)。 |
| [AVPlayerCallback::onError](#onerror) | 监听AVPlayer操作错误,参考[OH_AVPlayerOnError](#oh_avplayeronerror)。 |
## 类型定义说明
### AVPlaybackSpeed
```
typedef enum AVPlaybackSpeedAVPlaybackSpeed
```
**描述**
播放速度
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
### AVPlayerCallback
```
typedef struct AVPlayerCallbackAVPlayerCallback
```
**描述**
OH_AVPlayer中所有回调函数指针的集合。注册此的实例结构体到OH_AVPlayer实例中,并对回调上报的信息进行处理,保证AVPlayer的正常运行。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
### AVPlayerOnInfoType
```
typedef enum AVPlayerOnInfoTypeAVPlayerOnInfoType
```
**描述**
OnInfo类型
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
### AVPlayerSeekMode
```
typedef enum AVPlayerSeekModeAVPlayerSeekMode
```
**描述**
跳转模式
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
### AVPlayerState
```
typedef enum AVPlayerStateAVPlayerState
```
**描述**
播放状态
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
### OH_AVPlayerOnError
```
typedef void(* OH_AVPlayerOnError) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg)
```
**描述**
在API9以上的版本发生错误时调用。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| errorCode | 错误码 |
| errorMsg | 错误消息 |
### OH_AVPlayerOnInfo
```
typedef void(* OH_AVPlayerOnInfo) (OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra)
```
**描述**
收到播放器消息时调用。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针。 |
| type | 信息类型。具体请参见[AVPlayerOnInfoType](#avplayeroninfotype)。 |
| extra | 其他信息,如播放文件的开始时间位置。 |
## 枚举类型说明
### AVPlaybackSpeed
```
enum AVPlaybackSpeed
```
**描述**
播放速度
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
| 枚举值 | 描述 |
| -------- | -------- |
| AV_SPEED_FORWARD_0_75_X | 0.75倍速播放 |
| AV_SPEED_FORWARD_1_00_X | 正常播放 |
| AV_SPEED_FORWARD_1_25_X | 1.25倍速播放 |
| AV_SPEED_FORWARD_1_75_X | 1.75倍速播放 |
| AV_SPEED_FORWARD_2_00_X | 2.0倍速播放 |
### AVPlayerOnInfoType
```
enum AVPlayerOnInfoType
```
**描述**
OnInfo类型
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
| 枚举值 | 描述 |
| -------- | -------- |
| AV_INFO_TYPE_SEEKDONE | 跳转到对应播放位置时返回消息。 |
| AV_INFO_TYPE_SPEEDDONE | 速率设置完成时返回消息。 |
| AV_INFO_TYPE_BITRATEDONE | 比特率设置完成时返回消息。 |
| AV_INFO_TYPE_EOS | 播放完成时返回消息。 |
| AV_INFO_TYPE_STATE_CHANGE | 状态改变时返回消息。 |
| AV_INFO_TYPE_POSITION_UPDATE | 返回当前播放位置。 |
| AV_INFO_TYPE_MESSAGE | 返回播放消息。 |
| AV_INFO_TYPE_VOLUME_CHANGE | 音量改变时返回消息。 |
| AV_INFO_TYPE_RESOLUTION_CHANGE | 首次获取视频大小或视频大小更新时返回消息。 |
| AV_INFO_TYPE_BUFFERING_UPDATE | 返回多队列缓冲时间。 |
| AV_INFO_TYPE_BITRATE_COLLECT | 返回hls比特率。 |
| AV_INFO_TYPE_INTERRUPT_EVENT | 音频焦点改变时返回消息。 |
| AV_INFO_TYPE_DURATION_UPDATE | 返回播放时长。 |
| AV_INFO_TYPE_IS_LIVE_STREAM | 播放为直播流时返回消息。 |
| AV_INFO_TYPE_TRACKCHANGE | 轨道改变时返回消息。 |
| AV_INFO_TYPE_TRACK_INFO_UPDATE | 字幕轨信息更新时返回消息。 |
| AV_INFO_TYPE_SUBTITLE_UPDATE | 返回字幕信息。 |
| AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE | 音频输出设备改变时返回消息。 |
### AVPlayerSeekMode
```
enum AVPlayerSeekMode
```
**描述**
跳转模式
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
| 枚举值 | 描述 |
| -------- | -------- |
| AV_SEEK_NEXT_SYNC | 同步到时间点之后的关键帧。 |
| AV_SEEK_PREVIOUS_SYNC | 同步到时间点之前的关键帧。 |
### AVPlayerState
```
enum AVPlayerState
```
**描述**
播放状态
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
| 枚举值 | 描述 |
| -------- | -------- |
| AV_IDLE | 空闲 |
| AV_INITIALIZED | 初始化 |
| AV_PREPARED | 准备 |
| AV_PLAYING | 播放 |
| AV_PAUSED | 暂停 |
| AV_STOPPED | 停止 |
| AV_COMPLETED | 结束 |
| AV_RELEASED | 释放 |
| AV_ERROR | 错误 |
## 函数说明
### OH_AVPlayer_Create()
```
OH_AVPlayer* OH_AVPlayer_Create (void )
```
**描述**
创建播放器。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**返回:**
返回指向OH_AVPlayer实例的指针
### OH_AVPlayer_DeselectTrack()
```
OH_AVErrCode OH_AVPlayer_DeselectTrack (OH_AVPlayer * player, int32_t index )
```
**描述**
取消选择当前音频或字幕轨道。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| index | 索引 |
**返回:**
如果成功返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetCurrentTime()
```
OH_AVErrCode OH_AVPlayer_GetCurrentTime (OH_AVPlayer * player, int32_t * currentTime )
```
**描述**
获取播放位置,精确到毫秒。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| currentTime | 播放位置 |
**返回:**
如果获取当前位置,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetCurrentTrack()
```
OH_AVErrCode OH_AVPlayer_GetCurrentTrack (OH_AVPlayer * player, int32_t trackType, int32_t * index )
```
**描述**
获取当前有效的轨道索引。
请将其设置为准备/正在播放/暂停/完成状态。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| trackType | 媒体类型 |
| index | 索引 |
**返回:**
成功返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetDuration()
```
OH_AVErrCode OH_AVPlayer_GetDuration (OH_AVPlayer * player, int32_t * duration )
```
**描述**
获取媒体文件的总时长,精确到毫秒。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| duration | 媒体文件的总时长 |
**返回:**
如果获取当前时长,则返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetPlaybackSpeed()
```
OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed (OH_AVPlayer * player, AVPlaybackSpeed * speed )
```
**描述**
获取当前播放器播放速率。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| speed | 可以获取的速率模式[AVPlaybackSpeed](#avplaybackspeed) |
**返回:**
获取播放速率成功返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetState()
```
OH_AVErrCode OH_AVPlayer_GetState (OH_AVPlayer * player, AVPlayerState * state )
```
**描述**
获取当前播放状态。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| state | 当前播放状态 |
**返回:**
如果获取当前播放状态,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetVideoHeight()
```
OH_AVErrCode OH_AVPlayer_GetVideoHeight (OH_AVPlayer * player, int32_t * videoHeight )
```
**描述**
获取视频高度。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| videoHeights | 视频高度 |
**返回:**
如果获取视频高度,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_GetVideoWidth()
```
OH_AVErrCode OH_AVPlayer_GetVideoWidth (OH_AVPlayer * player, int32_t * videoWidth )
```
**描述**
获取视频宽度。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| videoWidth | 视频宽度 |
**返回:**
如果获取视频宽度,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_IsLooping()
```
bool OH_AVPlayer_IsLooping (OH_AVPlayer * player)
```
**描述**
判断是否循环播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果循环播放,则返回true,否则返回false。
### OH_AVPlayer_IsPlaying()
```
bool OH_AVPlayer_IsPlaying (OH_AVPlayer * player)
```
**描述**
判断播放器是否在播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果正在播放,则返回true,否则返回false
### OH_AVPlayer_Pause()
```
OH_AVErrCode OH_AVPlayer_Pause (OH_AVPlayer * player)
```
**描述**
暂停播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果成功将**Pause**添加到任务队列中,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_Play()
```
OH_AVErrCode OH_AVPlayer_Play (OH_AVPlayer * player)
```
**描述**
开始播放。
此函数必须在**Prepare**之后调用。如果播放器状态为<Prepared>。调用此函数开始播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果开始播放,则返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_Prepare()
```
OH_AVErrCode OH_AVPlayer_Prepare (OH_AVPlayer * player)
```
**描述**
准备播放环境,异步缓存媒体数据。
此函数必须在**SetSource**之后调用。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果成功将**Prepare**添加到任务队列中,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码
### OH_AVPlayer_Release()
```
OH_AVErrCode OH_AVPlayer_Release (OH_AVPlayer * player)
```
**描述**
异步释放播放器资源。
异步释放保证性能,但无法保证是否释放了播放画面的surfacebuffer。调用者需要保证播放画面窗口的生命周期安全。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果成功将**Release**添加到任务队列中,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_ReleaseSync()
```
OH_AVErrCode OH_AVPlayer_ReleaseSync (OH_AVPlayer * player)
```
**描述**
同步释放播放器资源。
同步过程保证了播放画面的surfacebuffer释放,但这个界面会花费很长时间(发动机非怠速状态时),要求调用者自己设计异步机制。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果播放被释放返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_Reset()
```
OH_AVErrCode OH_AVPlayer_Reset (OH_AVPlayer * player)
```
**描述**
将播放器恢复到初始状态。
函数调用完成后,调用**SetSource**添加播放源。调用**Prepare**后,调用**Play**重新开始播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果成功将**reset**添加到任务队列,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_Seek()
```
OH_AVErrCode OH_AVPlayer_Seek (OH_AVPlayer * player, int32_t mSeconds, AVPlayerSeekMode mode )
```
**描述**
改变播放位置。
此函数可以在播放或暂停时使用。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针。 |
| mSeconds | 播放目标位置,精确到毫秒。 |
| mode | 播放器的跳转模式。具体请参考[AVPlayerSeekMode](#avplayerseekmode)。 |
### OH_AVPlayer_SelectBitRate()
```
OH_AVErrCode OH_AVPlayer_SelectBitRate (OH_AVPlayer * player, uint32_t bitRate )
```
**描述**
设置hls播放器使用的码率。
播放比特率,以比特/秒为单位,以比特/秒为单位。 仅对HLS协议网络流有效。默认情况下, 播放器会根据网络连接情况选择合适的码率和速度。 通过INFO_TYPE_BITRATE_COLLECT上报有效码率链表 设置并选择指定的码率,选择小于和最接近的码率 到指定的码率播放。准备好后,读取它以查询当前选择的比特率。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| bitRate | 码率,单位为bps |
**返回:**
设置码率成功返回**AV_ERR_OK**,否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_SelectTrack()
```
OH_AVErrCode OH_AVPlayer_SelectTrack (OH_AVPlayer * player, int32_t index )
```
**描述**
选择音频或字幕轨道。
默认播放第一个带数据的音频流,不播放字幕轨迹。 设置生效后,原曲目将失效。请设置字幕 处于准备/播放/暂停/完成状态,并将音轨设置为准备状态。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| index | 索引 |
**返回:**
如果成功选择返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_SetFDSource()
```
OH_AVErrCode OH_AVPlayer_SetFDSource (OH_AVPlayer * player, int32_t fd, int64_t offset, int64_t size )
```
**描述**
设置播放器的播放媒体文件描述符来源。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| fd | 媒体源的文件描述符 |
| offset | 媒体源在文件描述符中的偏移量 |
| size | 表示媒体源的大小 |
**返回:**
如果fd设置成功返回**AV_ERR_OK**,否则返回**native_averrors.h**中定义的错误码。
### OH_AVPlayer_SetLooping()
```
OH_AVErrCode OH_AVPlayer_SetLooping (OH_AVPlayer * player, bool loop )
```
**描述**
设置循环播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| loop | 循环播放开关 |
**返回:**
如果设置了循环,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_SetPlaybackSpeed()
```
OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed (OH_AVPlayer * player, AVPlaybackSpeed speed )
```
**描述**
设置播放器播放速率。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| speed | 可以设置速率模式[AVPlaybackSpeed](#avplaybackspeed) |
### OH_AVPlayer_SetPlayerCallback()
```
OH_AVErrCode OH_AVPlayer_SetPlayerCallback (OH_AVPlayer * player, AVPlayerCallback callback )
```
**描述**
设置播放器回调方法。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| callback | 回调对象指针 |
**返回:**
如果设置了播放器回调,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
### OH_AVPlayer_SetURLSource()
```
OH_AVErrCode OH_AVPlayer_SetURLSource (OH_AVPlayer * player, const char * url )
```
**描述**
设置播放器的播放源。对应的源可以是http url。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| url | 播放源 |
**返回:**
如果url设置成功返回**AV_ERR_OK**,否则返回**native_averrors.h**中定义的错误码。
### OH_AVPlayer_SetVideoSurface()
```
OH_AVErrCode OH_AVPlayer_SetVideoSurface (OH_AVPlayer * player, OHNativeWindow * window )
```
**描述**
设置播放画面窗口。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| window | 指向OHNativeWindow实例的指针 |
### OH_AVPlayer_SetVolume()
```
OH_AVErrCode OH_AVPlayer_SetVolume (OH_AVPlayer * player, float leftVolume, float rightVolume )
```
**描述**
设置播放器的音量。
可以在播放或暂停的过程中使用。<0>表示无声音,<1>为原始值。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
| leftVolume | 要设置的左声道目标音量 |
| rightVolume | 要设置的右声道目标音量 |
**返回:**
如果设置了音量,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码,
### OH_AVPlayer_Stop()
```
OH_AVErrCode OH_AVPlayer_Stop (OH_AVPlayer * player)
```
**描述**
停止播放。
**系统能力:** SystemCapability.Multimedia.Media.AVPlayer
**起始版本:** 11
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| player | 指向OH_AVPlayer实例的指针 |
**返回:**
如果成功将**stop**添加到任务队列,则返回**AV_ERR_OK**;否则返回在**native_averrors.h**中定义的错误代码。
## 变量说明
### onError
```
OH_AVPlayerOnError AVPlayerCallback::onError
```
**描述**
监听AVPlayer操作错误,参考[OH_AVPlayerOnError](#oh_avplayeronerror)。
### onInfo
```
OH_AVPlayerOnInfo AVPlayerCallback::onInfo
```
**描述**
监听AVPlayer过程信息,参考[OH_AVPlayerOnInfo](#oh_avplayeroninfo)。