0ede174d创建于 2025年3月14日历史提交

AVPlayer

概述

为媒体源提供播放能力的API。

开发者可根据实际的开发需求,参考对应的开发指南及样例:

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

汇总

文件

名称 描述
avplayer.h 定义avplayer接口。使用AVPlayer提供的Native API播放媒体源。
avplayer_base.h 定义AVPlayer的结构体和枚举。

结构体

名称 描述
struct AVPlayerCallback (已废弃)包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。

类型定义

名称 描述
typedef struct MediaKeySession MediaKeySession MediaKeySession类型。
typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo类型。
typedef void(* Player_MediaKeySystemInfoCallback) (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo) 播放器DRM信息更新时被调用。
typedef enum AVPlayerState AVPlayerState 播放状态。
typedef enum AVPlayerSeekMode AVPlayerSeekMode 跳转模式。
typedef enum AVPlaybackSpeed AVPlaybackSpeed 播放速度。
typedef enum AVPlayerOnInfoType AVPlayerOnInfoType OnInfo类型。
typedef enum AVPlayerBufferingType AVPlayerBufferingType 播放缓冲消息类型定义。
typedef void(*OH_AVPlayerOnInfo) (OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra) (已废弃)收到播放器消息时调用。
typedef void(*OH_AVPlayerOnInfoCallback) (OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat *infoBody, void *userData) 收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。
typedef void(* OH_AVPlayerOnError) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg) (已废弃)在API 9以上的版本发生错误时调用。
typedef void(* OH_AVPlayerOnErrorCallback) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg, void *userData) 发生错误时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnError函数。
typedef struct AVPlayerCallback AVPlayerCallback (已废弃)包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。

枚举

名称 描述
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 {
AV_SEEK_NEXT_SYNC = 0,
AV_SEEK_PREVIOUS_SYNC,
AV_SEEK_CLOSEST = 2
}
跳转模式。
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,
AV_SPEED_FORWARD_0_50_X,
AV_SPEED_FORWARD_1_50_X
,
AV_SPEED_FORWARD_3_00_X,
AV_SPEED_FORWARD_0_25_X,
AV_SPEED_FORWARD_0_125_X}
播放速度。
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类型。
AVPlayerBufferingType {
AVPLAYER_BUFFERING_START = 1,
AVPLAYER_BUFFERING_END,
AVPLAYER_BUFFERING_PERCENT,
AVPLAYER_BUFFERING_CACHED_DURATION
}
播放缓冲消息类型定义。

函数

名称 描述
OH_AVPlayer *OH_AVPlayer_Create (void) 创建播放器。
OH_AVErrCode OH_AVPlayer_SetURLSource (OH_AVPlayer *player, const char *url) 设置播放器的播放源。对应的源可以是http url。
OH_AVErrCode OH_AVPlayer_SetFDSource (OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size) 设置播放器的播放媒体文件描述符来源。
OH_AVErrCode OH_AVPlayer_Prepare (OH_AVPlayer *player) 准备播放环境,异步缓存媒体数据。
OH_AVErrCode OH_AVPlayer_Play (OH_AVPlayer *player) 开始播放。
OH_AVErrCode OH_AVPlayer_Pause (OH_AVPlayer *player) 暂停播放。
OH_AVErrCode OH_AVPlayer_Stop (OH_AVPlayer *player) 停止播放。
OH_AVErrCode OH_AVPlayer_Reset (OH_AVPlayer *player) 将播放器恢复到初始状态。
OH_AVErrCode OH_AVPlayer_Release (OH_AVPlayer *player) 异步释放播放器资源。
OH_AVErrCode OH_AVPlayer_ReleaseSync (OH_AVPlayer *player) 同步释放播放器资源。
OH_AVErrCode OH_AVPlayer_SetVolume (OH_AVPlayer *player, float leftVolume, float rightVolume) 设置播放器的音量。
OH_AVErrCode OH_AVPlayer_Seek (OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode) 改变播放位置。
OH_AVErrCode OH_AVPlayer_GetCurrentTime (OH_AVPlayer *player, int32_t *currentTime) 获取播放位置,精确到毫秒。
OH_AVErrCode OH_AVPlayer_GetVideoWidth (OH_AVPlayer *player, int32_t *videoWidth) 获取视频宽度。
OH_AVErrCode OH_AVPlayer_GetVideoHeight (OH_AVPlayer *player, int32_t *videoHeight) 获取视频高度。
OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed speed) 设置播放器播放速率。
OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed *speed) 获取当前播放器播放速率。
OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo (OH_AVPlayer *player, OH_AudioStream_Usage streamUsage) 设置player音频流类型。
OH_AVErrCode OH_AVPlayer_SetVolumeMode (OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode) 设置player音频流音量模式。
OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode (OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode) 设置player音频流的打断模式。
OH_AVErrCode OH_AVPlayer_SetAudioEffectMode (OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode) 设置player音频流的音效模式。
OH_AVErrCode OH_AVPlayer_SelectBitRate (OH_AVPlayer *player, uint32_t bitRate) 设置hls播放器使用的码率。
OH_AVErrCode OH_AVPlayer_SetVideoSurface (OH_AVPlayer *player, OHNativeWindow *window) 设置播放画面窗口。
OH_AVErrCode OH_AVPlayer_GetDuration (OH_AVPlayer *player, int32_t *duration) 获取媒体文件的总时长,精确到毫秒。
OH_AVErrCode OH_AVPlayer_GetState (OH_AVPlayer *player, AVPlayerState *state) 获取当前播放状态。
bool OH_AVPlayer_IsPlaying (OH_AVPlayer *player) 判断播放器是否在播放。
bool OH_AVPlayer_IsLooping (OH_AVPlayer *player) 判断是用循环播放。
OH_AVErrCode OH_AVPlayer_SetLooping (OH_AVPlayer *player, bool loop) 设置循环播放。
OH_AVErrCode OH_AVPlayer_SetPlayerCallback (OH_AVPlayer *player, AVPlayerCallback callback) 设置播放器回调方法。
OH_AVErrCode OH_AVPlayer_SelectTrack (OH_AVPlayer *player, int32_t index) 选择音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。
OH_AVErrCode OH_AVPlayer_DeselectTrack (OH_AVPlayer *player, int32_t index) 取消选择当前音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。
OH_AVErrCode OH_AVPlayer_GetCurrentTrack (OH_AVPlayer *player, int32_t trackType, int32_t *index) 获取当前有效的轨道索引。该接口在当前版本暂不支持,将在后续版本开放能力。
OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback (OH_AVPlayer *player, Player_MediaKeySystemInfoCallback callback) 设置播放器媒体密钥系统信息回调的方法。
OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo) 获取媒体密钥系统信息以创建媒体密钥会话。
OH_AVErrCode OH_AVPlayer_SetDecryptionConfig (OH_AVPlayer *player, MediaKeySession *mediaKeySession, bool secureVideoPath) 设置解密信息。
OH_AVErrCode OH_AVPlayer_SetOnInfoCallback (OH_AVPlayer *player, OH_AVPlayerOnInfoCallback callback, void *userData) 设置播放器消息回调监听函数。
OH_AVErrCode OH_AVPlayer_SetOnErrorCallback (OH_AVPlayer *player, OH_AVPlayerOnErrorCallback callback, void *userData) 设置播放器错误回调监听函数。

变量

名称 描述
const char * OH_PLAYER_STATE 获取播放状态的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_STATE_CHANGE_REASON 获取播放状态变更原因的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_VOLUME 获取音量的关键字, 对应值类型是float。
const char * OH_PLAYER_BITRATE_ARRAY 获取比特率列表的关键字, 对应值类型是uint8_t字节数组AV_INFO_TYPE_BITRATE_COLLECT
const char * OH_PLAYER_AUDIO_INTERRUPT_TYPE 获取音频打断类型的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_AUDIO_INTERRUPT_FORCE 获取音频打断FORCE类型的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_AUDIO_INTERRUPT_HINT 获取音频打断HINT类型的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON 获取音频音频设备变更原因的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_BUFFERING_TYPE 获取缓冲更新消息类型的关键字, 对应值类型是AVPlayerBufferingType
const char * OH_PLAYER_BUFFERING_VALUE 获取缓冲更新消息具体数值的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_SEEK_POSITION 获取Seek后播放进度信息的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_PLAYBACK_SPEED 获取播放倍速信息的关键字, 对应值类型是AVPlaybackSpeed
const char * OH_PLAYER_BITRATE 获取比特率信息的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_CURRENT_POSITION 获取播放进度信息的关键字, 对应值类型是int32_t。
const char * OH_PLAYER_DURATION 获取媒体资源时长信息的关键字, 对应值类型是int64_t。
const char * OH_PLAYER_VIDEO_WIDTH 获取视频宽度信息的关键字, 对应值类型int32_t。
const char * OH_PLAYER_VIDEO_HEIGHT 获取视频高度信息的关键字, 对应值类型int32_t。
const char * OH_PLAYER_MESSAGE_TYPE 获取播放器消息信息的关键字, 对应值类型int32_t。
const char * OH_PLAYER_IS_LIVE_STREAM 获取媒体资源是否为直播类型信息的关键字, 对应值类型int32_t。

类型定义说明

AVPlaybackSpeed

typedef enum AVPlaybackSpeed AVPlaybackSpeed

描述 播放速度

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

AVPlayerBufferingType

typedef enum AVPlayerBufferingType AVPlayerBufferingType

描述 播放缓冲消息类型定义。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

AVPlayerCallback

typedef struct AVPlayerCallback AVPlayerCallback

描述 包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。应用需注册此实例结构体到OH_AVPlayer实例中,并对回调上报的信息进行处理,保证AVPlayer的正常运行。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

废弃版本: 12

替代接口:OH_AVPlayerOnInfoCallback OH_AVPlayerOnErrorCallback

参数:

名称 描述
onInfo 监控AVPlayer过程信息,参考OH_AVPlayerOnInfo
onError 监控AVPlayer操作错误,参考OH_AVPlayerOnError

AVPlayerOnInfoType

typedef enum AVPlayerOnInfoType AVPlayerOnInfoType

描述 OnInfo类型。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

AVPlayerSeekMode

typedef enum AVPlayerSeekMode AVPlayerSeekMode

描述 跳转模式

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

AVPlayerState

typedef enum AVPlayerState AVPlayerState

描述 播放状态。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

DRM_MediaKeySystemInfo

typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo

描述 DRM_MediaKeySystemInfo类型。

起始版本: 12

MediaKeySession

typedef struct MediaKeySession MediaKeySession

描述 MediaKeySession类型。

起始版本: 12

OH_AVPlayerOnError

typedef void(* OH_AVPlayerOnError) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg)

描述 在API9以上的版本发生错误时调用。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

废弃版本: 12

替代接口:OH_AVPlayerOnErrorCallback

参数:

名称 描述
指向OH_AVPlayer实例的指针
errorCode 错误码。
AV_ERR_NO_MEMORY:无内存,取值为1
AV_ERR_OPERATE_NOT_PERMIT:操作不允许,取值为2
AV_ERR_INVALID_VAL:无效值,取值为3
AV_ERR_IO:IO错误,取值为4
AV_ERR_TIMEOUT:超时错误,取值为5
AV_ERR_UNKNOWN:未知错误,取值为6
AV_ERR_SERVICE_DIED:服务死亡,取值为7
AV_ERR_INVALID_STATE:当前状态不支持此操作,取值为8
AV_ERR_UNSUPPORT:未支持的接口,取值为9
AV_ERR_EXTEND_START:扩展错误码初始值,取值为100
errorMsg 错误消息

OH_AVPlayerOnErrorCallback

typedef void(* OH_AVPlayerOnErrorCallback) (OH_AVPlayer *player, int32_t errorCode, const char *errorMsg, void *userData)

描述 发生错误时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnError函数。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
errorCode 错误码。
AV_ERR_NO_MEMORY:无内存,取值为1
AV_ERR_OPERATE_NOT_PERMIT:操作不允许,取值为2
AV_ERR_INVALID_VAL:无效值,取值为3
AV_ERR_IO:IO错误,取值为4
AV_ERR_TIMEOUT:超时错误,取值为5
AV_ERR_UNKNOWN:未知错误,取值为6
AV_ERR_SERVICE_DIED:服务死亡,取值为7
AV_ERR_INVALID_STATE:当前状态不支持此操作,取值为8
AV_ERR_UNSUPPORT:未支持的接口,取值为9
AV_ERR_EXTEND_START:扩展错误码初始值,取值为100
errorMsg 错误消息。
userData 原样返回用户设置回调时传入的userData数据。

OH_AVPlayerOnInfo

typedef void(* OH_AVPlayerOnInfo) (OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra)

描述 收到播放器消息时调用。

信息类型(type)和信息(extra)的对应关系如表所示。

信息类型(type) 对应的extra描述
AV_INFO_TYPE_SEEKDONE 跳转到对应播放位置时返回消息,extra表示seek到的位置。
AV_INFO_TYPE_SPEEDDONE 播放倍速设置完成时返回消息,extra表示播放倍速信息,具体请参考AVPlaybackSpeed
AV_INFO_TYPE_BITRATEDONE 比特率设置完成时返回消息,extra表示比特率信息。
AV_INFO_TYPE_EOS 播放完成时返回消息。
AV_INFO_TYPE_STATE_CHANGE 状态改变时返回消息,extra表示当前播放状态,具体请参见AVPlayerState
AV_INFO_TYPE_POSITION_UPDATE 返回当前播放位置,extra表示当前位置。
AV_INFO_TYPE_MESSAGE 视频开始渲染时返回消息,extra表示视频首帧渲染。
AV_INFO_TYPE_VOLUME_CHANGE 音量改变时返回消息,此场景extra未定义。
AV_INFO_TYPE_RESOLUTION_CHANGE 首次获取视频大小或视频大小更新时返回消息,此场景extra未定义。
AV_INFO_TYPE_BUFFERING_UPDATE 返回多队列缓冲时间,extra表示视频时长。
AV_INFO_TYPE_BITRATE_COLLECT 上报HLS视频比特率列表消息。上报时每个比特率已经被转为uint8_t字节数组,使用者需要将uint8_t字节数组强制转换为uint32_t整型数组。
AV_INFO_TYPE_INTERRUPT_EVENT 音频焦点改变时返回消息,extra表示音频打断提示,具体请参见OH_AudioInterrupt_Hint,应用可决定是否根据打断提示作进一步处理。
AV_INFO_TYPE_DURATION_UPDATE 返回播放时长,extra表示视频时长。
AV_INFO_TYPE_IS_LIVE_STREAM 播放为直播流时返回消息,extra表示是否为直播流,0表示非直播流,1表示直播流。
AV_INFO_TYPE_TRACKCHANGE 轨道改变时返回消息,此场景extra未定义。
AV_INFO_TYPE_TRACK_INFO_UPDATE 轨道更新时返回消息,此场景extra未定义。
AV_INFO_TYPE_SUBTITLE_UPDATE 字幕信息更新时返回消息,此场景extra未定义。
AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE 音频输出设备改变时返回消息,extra表示设备改变原因,具体请参见OH_AudioStream_DeviceChangeReason

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

废弃版本: 12

替代接口:OH_AVPlayerOnInfoCallback

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
type 信息类型。类型为AVPlayerOnInfoType,与extra的对应关系可见方法描述。
extra 其他信息,如播放文件的开始时间位置。

OH_AVPlayerOnInfoCallback

typedef void(* OH_AVPlayerOnInfoCallback) (OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat *infoBody, void *userData)

描述 收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
type 信息类型。具体请参见AVPlayerOnInfoType
infoBody 指向携带具体消息的指针,仅在该回调方法内有效。
userData 原样返回用户设置回调时传入的userData数据。

Player_MediaKeySystemInfoCallback

typedef void(* Player_MediaKeySystemInfoCallback) (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo)

描述 播放器DRM信息更新时被调用。

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
mediaKeySystemInfo DRM信息。

返回:

void

枚举类型说明

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倍速播放
AV_SPEED_FORWARD_0_50_X 0.5倍速播放
起始版本: 12
AV_SPEED_FORWARD_1_50_X 1.5倍速播放
起始版本: 12
AV_SPEED_FORWARD_3_00_X 3.0倍速播放
起始版本: 13
AV_SPEED_FORWARD_0_25_X 0.25倍速播放
起始版本: 13
AV_SPEED_FORWARD_0_125_X 0.125倍速播放
起始版本: 13

AVPlayerBufferingType

enum AVPlayerBufferingType

描述 播放缓冲消息类型定义。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

枚举值 描述
AVPLAYER_BUFFERING_START 缓冲开始消息。
AVPLAYER_BUFFERING_END 缓冲结束消息。
AVPLAYER_BUFFERING_PERCENT 缓冲执行进度百分比,取值范围:整数,[0, 100]。
AVPLAYER_BUFFERING_CACHED_DURATION 缓冲数据可播放时长,单位:毫秒。

AVPlayerOnInfoType

enum AVPlayerOnInfoType

描述 OnInfo类型。

可用于OH_AVPlayerOnInfoCallbackOH_AVPlayerOnInfo(已废弃),用于表示收到的播放器信息类型。

  • 从API 12开始,推荐用户使用OH_AVPlayerOnInfoCallback。不同的OnInfo类型,可获取到不同信息(infoBody),infoBody中包含key-value关系表,详见下述枚举值表。

  • 使用API 11版本的开发者,需要使用旧接口。针对已废弃接口OH_AVPlayerOnInfo中使用的对应关系,可直接参考OH_AVPlayerOnInfo的API说明

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

枚举值 描述
AV_INFO_TYPE_SEEKDONE 跳转到对应播放位置时返回消息。
key为OH_PLAYER_SEEK_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。
AV_INFO_TYPE_SPEEDDONE 播放倍速设置完成时返回消息。
key为OH_PLAYER_PLAYBACK_SPEED:取值类型AVPlaybackSpeed。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为AVPlaybackSpeed
AV_INFO_TYPE_BITRATEDONE 比特率设置完成时返回消息。
key为OH_PLAYER_BITRATE:取值类型uint32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制为uint32_t。
AV_INFO_TYPE_EOS 播放完成时返回消息。
AV_INFO_TYPE_STATE_CHANGE 状态改变时返回消息。
- key为OH_PLAYER_STATE:取值类型int32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为AVPlayerState
- key为OH_PLAYER_STATE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1:用户操作触发;2:系统变更触发。
AV_INFO_TYPE_POSITION_UPDATE 返回当前播放位置。
key为OH_PLAYER_CURRENT_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。
AV_INFO_TYPE_MESSAGE 视频开始渲染时返回消息。
key为OH_PLAYER_MESSAGE_TYPE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1表示视频开始渲染。
AV_INFO_TYPE_VOLUME_CHANGE 音量改变时返回消息。
key为OH_PLAYER_VOLUME:取值类型float。系统通过float传递value,应用需通过float获取。取值范围[0.0, 1.0]。
AV_INFO_TYPE_RESOLUTION_CHANGE 首次获取视频大小或视频大小更新时返回消息。
key为OH_PLAYER_VIDEO_WIDTH 或 OH_PLAYER_VIDEO_HEIGHT:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。
AV_INFO_TYPE_BUFFERING_UPDATE 返回多队列缓冲时间。
- key为OH_PLAYER_BUFFERING_TYPE:取值类型AVPlayerBufferingType。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为AVPlayerBufferingType
- key为OH_PLAYER_BUFFERING_VALUE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效,分别表示缓冲进度完成百分比、缓冲数据可播放时长。
AV_INFO_TYPE_BITRATE_COLLECT 上报HLS视频比特率列表消息。
key为OH_PLAYER_BITRATE_ARRAY:取值类型uint8_t字节数组。应用需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。
AV_INFO_TYPE_INTERRUPT_EVENT 音频焦点改变时返回消息。
取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。
key为:
- OH_PLAYER_AUDIO_INTERRUPT_TYPE:取值1表示中断事件开始;2表示结束。
- OH_PLAYER_AUDIO_INTERRUPT_FORCE:取值0表示强制打断,系统改变音频播放状态;1表示共享打断,应用改变音频播放状态。
- OH_PLAYER_AUDIO_INTERRUPT_HINT:取值0表示NONE,无提示;1表示RESUME,提示音频恢复;2表示PAUSE,提示音频暂停暂时失去焦点;3表示STOP,提示音频停止;4表示DUCK,音频降低音量;5表示UNDUCK,音频恢复音量。
AV_INFO_TYPE_DURATION_UPDATE 返回播放时长。
key为OH_PLAYER_DURATION:取值类型int64_t。系统通过int64_t传递value,应用需通过int64_t获取。
AV_INFO_TYPE_IS_LIVE_STREAM 播放为直播流时返回消息。
key为OH_PLAYER_IS_LIVE_STREAM:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。0表示非直播流,1表示直播流。
AV_INFO_TYPE_TRACKCHANGE 轨道改变时返回消息,此场景暂未定义。
AV_INFO_TYPE_TRACK_INFO_UPDATE 轨道更新时返回消息,此场景暂未定义。
AV_INFO_TYPE_SUBTITLE_UPDATE 字幕信息更新时返回消息,此场景暂未定义。
AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE 音频输出设备改变时返回消息。
key为OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。

AVPlayerSeekMode

enum AVPlayerSeekMode

描述 跳转模式

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

枚举值 描述
AV_SEEK_NEXT_SYNC 同步到时间点之后的关键帧。
AV_SEEK_PREVIOUS_SYNC 同步到时间点之前的关键帧。
AV_SEEK_CLOSEST 同步到距离指定时间点最近的帧。
起始版本: 12

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)

描述 创建播放器。

说明:

  • 推荐单个应用创建的音视频播放器实例(即音频、视频、音视频三类相加)不超过16个。
  • 可创建的音视频播放器实例数量依赖于设备芯片的支持情况,如芯片支持创建的数量少于上述情况,请以芯片规格为准。如RK3568推荐单个应用创建6个以内的音视频播放器实例。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

返回:

如果创建成功返回指向OH_AVPlayer实例的指针,否则返回空指针。

可能的失败原因:

  1. PlayerFactory::CreatePlayer执行失败;
  2. new PlayerObject执行失败。

OH_AVPlayer_DeselectTrack()

OH_AVErrCode OH_AVPlayer_DeselectTrack (OH_AVPlayer *player, int32_t index)

描述 取消选择当前音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
index 索引

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功取消。

AV_ERR_INVALID_VAL:输入player为空指针、player DeselectTrack执行失败。

OH_AVPlayer_GetCurrentTime()

OH_AVErrCode OH_AVPlayer_GetCurrentTime (OH_AVPlayer *player, int32_t *currentTime)

描述 获取播放位置,精确到毫秒。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
currentTime 播放位置

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:获取当前位置。

AV_ERR_INVALID_VAL:输入player为空指针、player GetCurrentTime执行失败。

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 媒体类型。0:音频,1:视频
index 索引

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功获取。

AV_ERR_INVALID_VAL:输入player为空指针、player GetCurrentTrack执行失败。

OH_AVPlayer_GetDuration()

OH_AVErrCode OH_AVPlayer_GetDuration (OH_AVPlayer *player, int32_t *duration)

描述 获取媒体文件的总时长,精确到毫秒。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
duration 媒体文件的总时长

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:获取当前时长。

AV_ERR_INVALID_VAL:输入player为空指针、player GetDuration执行失败。

OH_AVPlayer_GetMediaKeySystemInfo()

OH_AVErrCode OH_AVPlayer_GetMediaKeySystemInfo (OH_AVPlayer *player, DRM_MediaKeySystemInfo *mediaKeySystemInfo)

描述 获取媒体密钥系统信息以创建媒体密钥会话。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
mediaKeySystemInfo 媒体密钥系统信息

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置。

AV_ERR_INVALID_VAL:输入player为空指针、内存不足。

OH_AVPlayer_GetPlaybackSpeed()

OH_AVErrCode OH_AVPlayer_GetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed *speed)

描述 获取当前播放器播放速率。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
speed 可以获取的速率模式AVPlaybackSpeed

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功获取播放速率。

AV_ERR_INVALID_VAL:输入player为空指针、player GetPlaybackSpeed执行失败。

OH_AVPlayer_GetState()

OH_AVErrCode OH_AVPlayer_GetState (OH_AVPlayer *player, AVPlayerState *state)

描述 获取当前播放状态。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
state 当前播放状态

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:获取当前播放状态。

AV_ERR_INVALID_VAL:输入player为空指针、player GetState执行失败。

OH_AVPlayer_GetVideoHeight()

OH_AVErrCode OH_AVPlayer_GetVideoHeight (OH_AVPlayer *player, int32_t *videoHeight)

描述 获取视频高度。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
videoHeights 视频高度

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功获取视频高度。

AV_ERR_INVALID_VAL:输入player为空指针。

OH_AVPlayer_GetVideoWidth()

OH_AVErrCode OH_AVPlayer_GetVideoWidth (OH_AVPlayer *player, int32_t *videoWidth)

描述 获取视频宽度。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
videoWidth 视频宽度

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功获取视频宽度。

AV_ERR_INVALID_VAL:输入player为空指针。

OH_AVPlayer_IsLooping()

bool OH_AVPlayer_IsLooping (OH_AVPlayer *player)

描述 判断是否循环播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

如果循环播放,则返回true;如果不是循环播放或者输入player为空指针则返回false。

OH_AVPlayer_IsPlaying()

bool OH_AVPlayer_IsPlaying (OH_AVPlayer *player)

描述 判断播放器是否在播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

如果正在播放,则返回true;如果不在播放或者输入player为空指针则返回false。

OH_AVPlayer_Pause()

OH_AVErrCode OH_AVPlayer_Pause (OH_AVPlayer *player)

描述 暂停播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功将Pause添加到任务队列中。

AV_ERR_INVALID_VAL:输入player为空指针、player Pause执行失败。

OH_AVPlayer_Play()

OH_AVErrCode OH_AVPlayer_Play (OH_AVPlayer *player)

描述 开始播放。

此函数必须在Prepare之后调用。如果播放器状态为<Prepared>。调用此函数开始播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:开始播放。

AV_ERR_INVALID_VAL:输入player为空指针、player Play执行失败。

OH_AVPlayer_Prepare()

OH_AVErrCode OH_AVPlayer_Prepare (OH_AVPlayer *player)

描述 准备播放环境,异步缓存媒体数据。

此函数必须在SetSource之后调用。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功将Prepare添加到任务队列中。

AV_ERR_INVALID_VAL:输入player为空指针、player Prepare执行失败。

OH_AVPlayer_Release()

OH_AVErrCode OH_AVPlayer_Release (OH_AVPlayer *player)

描述 异步释放播放器资源。

异步释放保证性能,但无法保证是否释放了播放画面的surfacebuffer。调用者需要保证播放画面窗口的生命周期安全。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功将Release添加到任务队列中。

AV_ERR_INVALID_VAL:输入player为空指针、player Release执行失败。

OH_AVPlayer_ReleaseSync()

OH_AVErrCode OH_AVPlayer_ReleaseSync (OH_AVPlayer *player)

描述 同步释放播放器资源。

同步过程保证了播放画面的显示缓存释放,但这个过程花费时间较长,要求调用者自己设计异步机制。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:播放被释放。

AV_ERR_INVALID_VAL:输入player为空指针、player ReleaseSync执行失败。

OH_AVPlayer_Reset()

OH_AVErrCode OH_AVPlayer_Reset (OH_AVPlayer *player)

描述 将播放器恢复到初始状态。

函数调用完成后,调用SetSource添加播放源。调用Prepare后,调用Play重新开始播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功将reset添加到任务队列。

AV_ERR_INVALID_VAL:输入player为空指针、player Reset执行失败。

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

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:完成跳转。

AV_ERR_INVALID_VAL:输入player为空指针、player Seek执行失败。

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

返回:

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:设置码率成功。

AV_ERR_INVALID_VAL:输入player为空指针、player SelectBitRate执行失败。

OH_AVPlayer_SelectTrack()

OH_AVErrCode OH_AVPlayer_SelectTrack (OH_AVPlayer *player, int32_t index)

描述 选择音频轨道。该接口在当前版本暂不支持,将在后续版本开放能力。

默认播放第一个带数据的音频流。设置生效后,原曲目将失效。将音轨设置为准备状态。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
index 索引

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功选择。

AV_ERR_INVALID_VAL:输入player为空指针、player SelectTrack执行失败。

OH_AVPlayer_SetAudioEffectMode()

OH_AVErrCode OH_AVPlayer_SetAudioEffectMode (OH_AVPlayer *player, OH_AudioStream_AudioEffectMode effectMode)

描述 设置player音频流的音效模式。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
interruptMode player音频流使用的音效模式OH_AudioStream_AudioEffectMode

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置。

AV_ERR_INVALID_VAL:输入player为空指针或者effectMode值无效。

OH_AVPlayer_SetAudioInterruptMode()

OH_AVErrCode OH_AVPlayer_SetAudioInterruptMode (OH_AVPlayer *player, OH_AudioInterrupt_Mode interruptMode)

描述 设置player音频流的打断模式。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
interruptMode player音频流使用的打断模式OH_AudioInterrupt_Mode

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置。

AV_ERR_INVALID_VAL:输入player为空指针或者interruptMode值无效。

OH_AVPlayer_SetAudioRendererInfo()

OH_AVErrCode OH_AVPlayer_SetAudioRendererInfo (OH_AVPlayer *player, OH_AudioStream_Usage streamUsage)

描述 设置player音频流类型。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
streamUsage player音频流设置的类型OH_AudioStream_Usage

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置。

AV_ERR_INVALID_VAL:输入player为空指针或者streamUsage值无效。

OH_AVPlayer_SetDecryptionConfig()

OH_AVErrCode OH_AVPlayer_SetDecryptionConfig (OH_AVPlayer *player, MediaKeySession *mediaKeySession, bool secureVideoPath)

描述 设置解密信息。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
mediaKeySession 具有解密功能的媒体密钥会话实例。
secureVideoPath 是否需要安全解码器。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置。

AV_ERR_INVALID_VAL:输入player为空指针、player SetDecryptionConfig执行失败。

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 表示媒体源的大小

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:fd设置成功。

AV_ERR_INVALID_VAL:输入player为空指针、player SetFdSource执行失败。

OH_AVPlayer_SetLooping()

OH_AVErrCode OH_AVPlayer_SetLooping (OH_AVPlayer *player, bool loop)

描述 设置循环播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
loop 循环播放开关

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:循环播放设置成功。

AV_ERR_INVALID_VAL:输入player为空指针、player SetLooping执行失败。

OH_AVPlayer_SetMediaKeySystemInfoCallback()

OH_AVErrCode OH_AVPlayer_SetMediaKeySystemInfoCallback (OH_AVPlayer *player, Player_MediaKeySystemInfoCallback callback)

描述 设置播放器媒体密钥系统信息回调的方法。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
callback 对象指针。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:设置成功。

AV_ERR_INVALID_VAL:输入player为空、callback为空、player SetDrmSystemInfoCallback执行失败。

OH_AVPlayer_SetOnErrorCallback()

OH_AVErrCode OH_AVPlayer_SetOnErrorCallback (OH_AVPlayer * player, OH_AVPlayerOnErrorCallback callback, void * userData )

描述 设置播放器错误回调监听函数。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
callback 执行回调监听函数的指针, 空指针表示取消设置播放器错误回调监听。
userData 指向应用调用者设置的实例的指针。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功。

AV_ERR_NO_MEMORY:输入分配内存失败。

AV_ERR_INVALID_VAL:输入player为空指针或者函数执行失败。

OH_AVPlayer_SetOnInfoCallback()

OH_AVErrCode OH_AVPlayer_SetOnInfoCallback (OH_AVPlayer * player, OH_AVPlayerOnInfoCallback callback, void * userData )

描述 设置播放器消息回调监听函数。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
callback 执行回调监听函数的指针, 空指针表示取消设置播放器消息回调监听。
userData 指向应用调用者设置的实例的指针。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功。

AV_ERR_NO_MEMORY:输入分配内存失败。

AV_ERR_INVALID_VAL:输入player为空指针或者函数执行失败。

OH_AVPlayer_SetPlaybackSpeed()

OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed speed)

描述 设置播放器播放速率。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
speed 可以设置速率模式AVPlaybackSpeed

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置播放速率。

AV_ERR_INVALID_VAL:输入player为空指针。

OH_AVPlayer_SetPlayerCallback()

OH_AVErrCode OH_AVPlayer_SetPlayerCallback (OH_AVPlayer *player, AVPlayerCallback callback)

描述 设置播放器回调函数。由于通过此方法设置的信息监听回调函数OH_AVPlayerOnInfo和错误监听回调函数OH_AVPlayerOnError可以传递信息有限,也不便于应用区分多个播放器实例。从 API 12 开始,应使用OH_AVPlayer_SetOnInfoCallback()OH_AVPlayer_SetOnErrorCallback()接口分别设置信息监听回调函数OH_AVPlayerOnInfoCallback和错误监听回调函数OH_AVPlayerOnErrorCallback

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
callback 回调对象指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功设置播放器回调。

AV_ERR_INVALID_VAL:输入player为空指针、callback.onInfo或onError为空、player SetPlayerCallback执行失败。

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 播放源

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:设置成功。

AV_ERR_INVALID_VAL:输入player为空指针、url为空、player SetUrlSource执行失败。

OH_AVPlayer_SetVideoSurface()

OH_AVErrCode OH_AVPlayer_SetVideoSurface (OH_AVPlayer *player, OHNativeWindow *window)

描述 设置播放画面窗口。 此函数必须在SetSource之后,Prepare之前调用。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

参数:

名称 描述
player 指向OH_AVPlayer实例的指针
window 指向OHNativeWindow实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:设置播放画面窗口成功。

AV_ERR_INVALID_VAL:输入player为空指针、输入window为空指针、player SetVideoSurface执行失败。

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 要设置的右声道目标音量

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:设置音量成功。

AV_ERR_INVALID_VAL:输入player为空指针、player SetVolume执行失败。

OH_AVPlayer_SetVolumeMode()

OH_AVErrCode OH_AVPlayer_SetVolumeMode(OH_AVPlayer *player, OH_AudioStream_VolumeMode volumeMode)

描述

设置player音频流音量模式。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 18

参数:

名称 描述
player 指向OH_AVPlayer实例的指针。
volumeMode 要设置的音频流音量模式OH_AudioStream_VolumeMode

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功。

AV_ERR_INVALID_VAL:输入player为空指针或者volumeMode值无效。

AV_ERR_INVALID_STATE:函数在无效状态下调用,应先处于准备状态。

AV_ERR_SERVICE_DIED:系统错误。

OH_AVPlayer_Stop()

OH_AVErrCode OH_AVPlayer_Stop (OH_AVPlayer *player)

描述 停止播放。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 11

参数:

名称 描述
player 指向OH_AVPlayer实例的指针

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:成功将stop添加到任务队列。

AV_ERR_INVALID_VAL:输入player为空指针、player Stop执行失败。

变量说明

OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON

const char* OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON

描述 获取音频音频设备变更原因的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_AUDIO_INTERRUPT_FORCE

const char* OH_PLAYER_AUDIO_INTERRUPT_FORCE

描述 获取音频打断FORCE类型的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_AUDIO_INTERRUPT_HINT

const char* OH_PLAYER_AUDIO_INTERRUPT_HINT

描述 获取音频打断HINT类型的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_AUDIO_INTERRUPT_TYPE

const char* OH_PLAYER_AUDIO_INTERRUPT_TYPE

描述 获取音频打断类型的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_BITRATE

const char* OH_PLAYER_BITRATE

描述 获取比特率信息的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_BITRATE_ARRAY

const char* OH_PLAYER_BITRATE_ARRAY

描述 获取比特率列表的关键字, 对应值类型是uint8_t字节数组。通过该关键字获取信息时:

  • 需要先使用 uint8_t 类型指针变量保存比特率列表,使用 size_t 类型变量保存字节数组长度。
  • 然后分配若干个 uint32_t 类型的存储空间,接收将 uint8_t 字节数组转换为 uint32_t 类型比特率整数值。可以参考完整实例OHAVPlayerOnInfoCallback函数。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_BUFFERING_TYPE

const char* OH_PLAYER_BUFFERING_TYPE

描述 获取缓冲更新消息类型的关键字, 对应值类型是AVPlayerBufferingType。通过该关键字获取信息时,需要先使用 int32_t 类型变量保存结果,再转换为类型AVPlayerBufferingType

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_BUFFERING_VALUE

const char* OH_PLAYER_BUFFERING_VALUE

描述 获取缓冲更新消息具体数值的关键字, 对应值类型是int32_t。参见AVPlayerBufferingType,当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_CURRENT_POSITION

const char* OH_PLAYER_CURRENT_POSITION

描述 获取播放进度信息的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_DURATION

const char* OH_PLAYER_DURATION

描述 获取媒体资源时长信息的关键字, 对应值类型是int64_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_IS_LIVE_STREAM

const char* OH_PLAYER_IS_LIVE_STREAM

描述 获取媒体资源是否为直播类型信息的关键字, 对应值类型int32_t。

1:直播。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_MESSAGE_TYPE

const char* OH_PLAYER_MESSAGE_TYPE

描述 获取播放器消息信息的关键字, 对应值类型int32_t。

1:视频帧开始渲染。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_PLAYBACK_SPEED

const char* OH_PLAYER_PLAYBACK_SPEED

描述 获取播放倍速信息的关键字, 对应值类型是AVPlaybackSpeed。通过该关键字获取信息时,需要先使用 int32_t 类型变量保存结果,再转换为类型AVPlaybackSpeed

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_SEEK_POSITION

const char* OH_PLAYER_SEEK_POSITION

描述 获取Seek后播放进度信息的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_STATE

const char* OH_PLAYER_STATE

描述 获取播放状态的关键字, 对应值类型是int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_STATE_CHANGE_REASON

const char* OH_PLAYER_STATE_CHANGE_REASON

描述 获取播放状态变更原因的关键字, 对应值类型是int32_t。

1:用户操作触发;2:系统变更触发。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_VIDEO_HEIGHT

const char* OH_PLAYER_VIDEO_HEIGHT

描述 获取视频高度信息的关键字, 对应值类型int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_VIDEO_WIDTH

const char* OH_PLAYER_VIDEO_WIDTH

描述 获取视频宽度信息的关键字, 对应值类型int32_t。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12

OH_PLAYER_VOLUME

const char* OH_PLAYER_VOLUME

描述 获取音量的关键字, 对应值类型是float。

系统能力: SystemCapability.Multimedia.Media.AVPlayer

起始版本: 12