harmony 鸿蒙avplayer_base.h
avplayer_base.h
概述
定义AVPlayer的结构体和枚举。
引用文件:
库: libavplayer.so
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 11
相关模块: AVPlayer
汇总
结构体
|名称|typedef关键字|描述| |–|–|–| |AVPlayerCallback|AVPlayerCallback|包含了OH_AVPlayerOnInfo和OH_AVPlayerOnInfo回调函数指针的集合。应用需注册此结构体到OH_AVPlayer实例中,并处理回调上报的信息,保证AVPlayer的正常运行。| |OH_AVPlayer|OH_AVPlayer|初始化AVPlayer。|
枚举
|名称|typedef关键字|描述|
|–|–|–|
|AVPlayerState|AVPlayerState|播放状态。|
|AVPlayerSeekMode|AVPlayerSeekMode|跳转模式。|
|AVPlaybackSpeed|AVPlaybackSpeed|播放速度。|
|AVPlayerOnInfoType|AVPlayerOnInfoType|OnInfo类型。
可用于OH_AVPlayerOnInfoCallback和OH_AVPlayerOnInfo(已废弃),用于表示收到的播放器信息类型。|
|AVPlayerBufferingType|AVPlayerBufferingType|播放缓冲消息类型定义。|
函数
|名称|typedef关键字|描述| |–|–|–| |typedef void (*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra)|OH_AVPlayerOnInfo|收到播放器消息时调用。| |typedef void (*OH_AVPlayerOnInfoCallback)(OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat* infoBody,void *userData)|OH_AVPlayerOnInfoCallback|收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。| |typedef void (*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg)|OH_AVPlayerOnError|在API 9以上的版本发生错误时调用。| |typedef void (*OH_AVPlayerOnErrorCallback)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg,void *userData)|OH_AVPlayerOnErrorCallback|发生错误时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnError函数。|
变量
|名称|描述|
|–|–|
|const char * OH_PLAYER_STATE|获取播放状态的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_STATE_CHANGE_REASON|获取播放状态变更原因的关键字,对应值类型是int32_t。
1:用户操作触发;2:系统变更触发。
起始版本: 12|
|const char * OH_PLAYER_VOLUME|获取音量的关键字,对应值类型是float。
起始版本: 12|
|const char * OH_PLAYER_BITRATE_ARRAY|获取比特率列表的关键字,对应值类型是uint8_t字节数组。通过该关键字获取信息时:
需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。
然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。
可以参考开发指南中OHAVPlayerOnInfoCallback函数。
起始版本: 12|
|const char * OH_PLAYER_AUDIO_INTERRUPT_TYPE|获取音频打断类型的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_AUDIO_INTERRUPT_FORCE|获取音频打断FORCE类型的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_AUDIO_INTERRUPT_HINT|获取音频打断HINT类型的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON|获取音频设备变更原因的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_BUFFERING_TYPE|获取缓冲更新消息类型的关键字,对应值类型是AVPlayerBufferingType。
通过该关键字获取信息时,需要先使用int32_t类型变量保存结果,再转换为AVPlayerBufferingType类型。
起始版本: 12|
|const char * OH_PLAYER_BUFFERING_VALUE|获取缓冲更新消息数值的关键字,对应值类型是int32_t,参见AVPlayerBufferingType。
当缓冲更新消息类型是AVPLAYER_BUFFERING_PERCENT、AVPLAYER_BUFFERING_CACHED_DURATION时有效。
起始版本: 12|
|const char * OH_PLAYER_SEEK_POSITION|获取Seek后播放进度的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_PLAYBACK_SPEED|获取播放倍速信息的关键字, 对应值类型是AVPlaybackSpeed。
通过该关键字获取信息时,需要先使用int32_t类型变量保存结果,再转换为AVPlaybackSpeed类型。
起始版本: 12|
|const char * OH_PLAYER_PLAYBACK_RATE|获取有效播放速率的关键字,对应值类型是浮点数。
起始版本: 20|
|const char * OH_PLAYER_BITRATE|获取比特率信息的关键字,对应值类型是uint32_t。
起始版本: 12|
|const char * OH_PLAYER_CURRENT_POSITION|获取播放进度信息的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_DURATION|获取媒体资源时长信息的关键字,对应值类型是int64_t。
起始版本: 12|
|const char * OH_PLAYER_VIDEO_WIDTH|获取视频宽度信息的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_VIDEO_HEIGHT|获取视频高度信息的关键字,对应值类型是int32_t。
起始版本: 12|
|const char * OH_PLAYER_MESSAGE_TYPE|获取播放器消息信息的关键字,对应值类型是int32_t。
1:视频帧开始渲染。
起始版本: 12|
|const char * OH_PLAYER_IS_LIVE_STREAM|获取媒体资源是否为直播类型信息的关键字,对应值类型是int32_t。
1:直播。
起始版本: 12|
枚举类型说明
AVPlayerState
enum AVPlayerState
描述
播放状态。
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 11
|枚举项|描述| |–|–| |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
enum AVPlayerSeekMode
描述
跳转模式。
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 11
|枚举项|描述|
|–|–|
|AV_SEEK_NEXT_SYNC = 0|同步到时间点之后的关键帧。|
|AV_SEEK_PREVIOUS_SYNC|同步到时间点之前的关键帧。|
|AV_SEEK_CLOSEST = 2|同步到距离指定时间点最近的帧。
起始版本: 12|
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|
AVPlayerOnInfoType
enum AVPlayerOnInfoType
描述
OnInfo类型。
可用于OH_AVPlayerOnInfoCallback和OH_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 = 0|跳转到对应播放位置时返回消息。
key为OH_PLAYER_SEEK_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。|
|AV_INFO_TYPE_SPEEDDONE = 1|播放倍速设置完成时返回消息。
key为OH_PLAYER_PLAYBACK_SPEED:取值类型AVPlaybackSpeed。系统通过int32_t传递value,应用需先通过int32_t获取,再强制转为AVPlaybackSpeed。|
|AV_INFO_TYPE_BITRATEDONE = 2|比特率设置完成时返回消息。
key为OH_PLAYER_BITRATE:取值类型uint32_t。系统通过int32_t传递value,应用需先通过int32_t获取,再强制为uint32_t。|
|AV_INFO_TYPE_EOS = 3|播放完成时返回消息。|
|AV_INFO_TYPE_STATE_CHANGE = 4|状态改变时返回消息。
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 = 5|返回当前播放位置。
key为OH_PLAYER_CURRENT_POSITION:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。|
|AV_INFO_TYPE_MESSAGE = 6|视频开始渲染时返回消息。
key为OH_PLAYER_MESSAGE_TYPE:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。1表示视频开始渲染。|
|AV_INFO_TYPE_VOLUME_CHANGE = 7|音量改变时返回消息。
key为OH_PLAYER_VOLUME:取值类型float。系统通过float传递value,应用需通过float获取。取值范围[0.0, 1.0]。|
|AV_INFO_TYPE_RESOLUTION_CHANGE = 8|首次获取视频大小或视频大小更新时返回消息。
key为OH_PLAYER_VIDEO_WIDTH 或 OH_PLAYER_VIDEO_HEIGHT:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。|
|AV_INFO_TYPE_BUFFERING_UPDATE = 9|返回多队列缓冲时间。
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 = 10|上报HLS视频比特率列表消息。
key为OH_PLAYER_BITRATE_ARRAY:取值类型uint8_t字节数组。应用需要先使用uint8_t类型指针变量保存比特率列表,使用size_t类型变量保存字节数组长度。然后分配若干个uint32_t类型的存储空间,接收将uint8_t字节数组转换为uint32_t类型比特率整数值。|
|AV_INFO_TYPE_INTERRUPT_EVENT = 11|音频焦点改变时返回消息。
取值类型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 = 12|返回播放时长。
key为OH_PLAYER_DURATION:取值类型int64_t。系统通过int64_t传递value,应用需通过int64_t获取。|
|AV_INFO_TYPE_IS_LIVE_STREAM = 13|播放为直播流时返回消息。key为OH_PLAYER_IS_LIVE_STREAM:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。0表示非直播流,1表示直播流。|
|AV_INFO_TYPE_TRACKCHANGE = 14|轨道改变时返回消息,此场景extra未定义。|
|AV_INFO_TYPE_TRACK_INFO_UPDATE = 15|轨道更新时返回消息,此场景extra未定义。|
|AV_INFO_TYPE_SUBTITLE_UPDATE = 16|字幕信息更新时返回消息,此场景extra未定义。|
|AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17|音频输出设备改变时返回消息。
key为OH_PLAYER_AUDIO_DEVICE_CHANGE_REASON:取值类型int32_t。系统通过int32_t传递value,应用需通过int32_t获取。|
|AV_INFO_TYPE_PLAYBACK_RATE_DONE = 18|播放速率成功应用时返回消息。
key为OH_PLAYER_PLAYBACK_RATE:取值类型float。系统通过float传递value,应用通过float获取。
起始版本: 20|
AVPlayerBufferingType
enum AVPlayerBufferingType
描述
播放缓冲消息类型定义。
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 12
|枚举项|描述| |–|–| |AVPLAYER_BUFFERING_START = 1|缓冲开始消息。| |AVPLAYER_BUFFERING_END|缓冲结束消息。| |AVPLAYER_BUFFERING_PERCENT|缓冲执行进度百分比,取值范围:整数,[0, 100]。| |AVPLAYER_BUFFERING_CACHED_DURATION|缓冲数据可播放时长,单位:毫秒。|
函数说明
OH_AVPlayerOnInfo()
typedef void (*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra)
描述
收到播放器消息时调用。
信息类型(type)和信息(extra)的对应关系如表所示。
信息类型(type) | 对应的extra描述 |
---|---|
AV_INFO_TYPE_SEEKDONE | 跳转到对应播放位置时返回消息,extra表示跳转到的位置。 |
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
参数:
|参数项|描述| |–|–| |OH_AVPlayer *player|指向OH_AVPlayer实例的指针。| |AVPlayerOnInfoType type|信息类型。类型为AVPlayerOnInfoType,与extra的对应关系可见方法描述。| | int32_t extra|其他信息,如播放文件的开始时间位置。|
OH_AVPlayerOnInfoCallback()
typedef void (*OH_AVPlayerOnInfoCallback)(OH_AVPlayer *player, AVPlayerOnInfoType type, OH_AVFormat* infoBody,void *userData)
描述
收到播放器消息时被调用。如果应用成功设置该回调,则不会回调OH_AVPlayerOnInfo函数。
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_AVPlayer player|指向OH_AVPlayer实例的指针。| |AVPlayerOnInfoType type|信息类型。具体请参见AVPlayerOnInfoType。| |OH_AVFormat infoBody|指向携带具体消息的指针,仅在该回调方法内有效。| |void *userData|指向应用调用者设置该回调函数时提供的实例的指针。|
OH_AVPlayerOnError()
typedef void (*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg)
描述
在api9以上的版本发生错误时调用
系统能力: SystemCapability.Multimedia.Media.AVPlayer
起始版本: 11
废弃版本: 12
替代接口: OH_AVPlayerOnInfoCallback OH_AVPlayerOnError
参数:
|参数项|描述|
|–|–|
|OH_AVPlayer *player|指向OH_AVPlayer实例的指针。|
| int32_t 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。|
| const char *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
参数:
|参数项|描述|
|–|–|
|OH_AVPlayer *player|指向OH_AVPlayer实例的指针。|
| int32_t 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。|
| const char *errorMsg|错误消息。|
|void *userData|原样返回用户设置回调时传入的userData数据。|
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Interface (AVImageGenerator)
harmony 鸿蒙Interface (AVMetadataExtractor)
harmony 鸿蒙Interface (AVPlayer)
harmony 鸿蒙Interface (AVRecorder)
harmony 鸿蒙Interface (AVScreenCaptureRecorder)
harmony 鸿蒙Interface (AVTranscoder)
harmony 鸿蒙废弃的Interface (AudioPlayer, deprecated)
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦