From c139e8d7812e7729537d62a410d5ec8e0aeb233d Mon Sep 17 00:00:00 2001 From: lvjintao Date: Thu, 26 Oct 2023 14:48:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lvjintao --- .../reference/native-apis/_a_v_player.md | 1015 +++++++++++++++++ .../native-apis/_a_v_player_callback.md | 27 + .../reference/native-apis/avplayer_8h.md | 51 + .../native-apis/avplayer__base_8h.md | 41 + 4 files changed, 1134 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_a_v_player.md create mode 100644 zh-cn/application-dev/reference/native-apis/_a_v_player_callback.md create mode 100644 zh-cn/application-dev/reference/native-apis/avplayer_8h.md create mode 100644 zh-cn/application-dev/reference/native-apis/avplayer__base_8h.md diff --git a/zh-cn/application-dev/reference/native-apis/_a_v_player.md b/zh-cn/application-dev/reference/native-apis/_a_v_player.md new file mode 100644 index 00000000000..858297cf236 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_a_v_player.md @@ -0,0 +1,1015 @@ +# AVPlayer + + +## 概述 + +调用本模块下的接口,应用可以完成媒体资源播放的功能。 + +**系统能力**:SystemCapability.Multimedia.Media.AVPlayer + +**起始版本:** + +11 + + +## 汇总 + + +### 文件 + +| 名称 | 描述 | +|-----------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| [avplayer.h](avplayer_8h.md) | 声明用于构造媒体资源播放对象的Native API。
**引用文件**:
**库**:libavplayer.so | +| [avplayer_base.h](avplayer__base_8h.md) | 声明用于运行媒体资源播放通用的结构体、字符常量、枚举。
**引用文件**:
**库**:libavplayer.so | + + +### 结构体 + +| 名称 | 描述 | +|---------------------------------------------|----------------------------| +| [AVPlayerCallback](_a_v_player_callback.md) | OH_AVPlayer中所有异步回调函数指针的集合。 | + +### 类型定义 + +| 名称 | 描述 | +|---------------------------------------------------------------------------------------------------------------------------------|------------------------------| +| [OH_AVPlayer](#oh_avplayer) | 通过OH_AVPlayer可以获取播放实例。 | +| [OHNativeWindow](#ohnativewindow) | 提供对OHNativeWindow的访问功能 | +| (\*[OH_AVPlayerOnInfo](#oh_avplayeroninfo)) ([OH_AVPlayer](#oh_avplayer) \*player, [AVPlayerOnInfoType](#avplayeroninfotype) type, int32_t extra) | 捕获OH_AVPlayer运行过程信息。 | +| (\*[OH_AVPlayerOnError](#oh_avplayeronerror)) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t errorCode, const char \*errorMsg) | 当OH_AVPlayer实例运行出错时,将调用函数指针。 | +### 枚举 + +| 名称 | 描述 | +|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| +| [AVPlayerState](#avplayerstate) { AV_IDLE = 0, AV_INITIALIZED = 1, AV_PREPARED = 2, AV_PLAYING = 3, AV_PAUSED = 4, AV_STOPPED = 5, AV_PLAYBACK_COMPLETED = 6, AV_RELEASED = 7, AV_STATE_ERROR = 8 } | 枚举,表示播放的状态。 | +| [AVPlayerSeekMode](#avplayerseekmode) { AV_SEEK_NEXT_SYNC = 0, AV_SEEK_PREVIOUS_SYNC = 1 } | 枚举,表示改变播放位置的方式。 | +| [AVPlaybackSpeed](#avplaybackspeed) { AV_SPEED_FORWARD_0_75_X = 0, AV_SPEED_FORWARD_1_00_X = 1, AV_SPEED_FORWARD_1_25_X = 2, AV_SPEED_FORWARD_1_75_X = 3, AV_SPEED_FORWARD_2_00_X = 4 } | 枚举,表示播放的速率。 | +| [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 } | 枚举,表示回调信息的类型。 | + + +### 函数 + +| 名称 | 描述 | +|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| +| [OH_AVPlayer_Create](#oh_avplayer_create) (void) | 实例化对象,创建OH_AVPlayer。 | +| [OH_AVPlayer_SetURLSource](#oh_avplayer_seturlsource) ([OH_AVPlayer](#oh_avplayer) \*player, const char \*url) | 设置播放资源,资源可以是http url。 | +| [OH_AVPlayer_SetFDSource](#oh_avplayer_setfdsource) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t fd, int64_t offset, int64_t size) | 设置媒体文件描述符。 | +| [OH_AVPlayer_Prepare](#oh_avplayer_prepare) ([OH_AVPlayer](#oh_avplayer) \*player) | 准备播放环境。 | +| [OH_AVPlayer_Play](#oh_avplayer_play) ([OH_AVPlayer](#oh_avplayer) \*player) | 开始播放。 | +| [OH_AVPlayer_Pause](#oh_avplayer_pause) ([OH_AVPlayer](#oh_avplayer) \*player) | 暂停播放。 | +| [OH_AVPlayer_Stop](#oh_avplayer_stop) ([OH_AVPlayer](#oh_avplayer) \*player) | 停止播放。 | +| [OH_AVPlayer_Reset](#oh_avplayer_reset) ([OH_AVPlayer](#oh_avplayer) \*player) | 恢复到初始播放状态。 | +| [OH_AVPlayer_Release](#oh_avplayer_release) ([OH_AVPlayer](#oh_avplayer) \*player) | 异步释放播放资源。 | +| [OH_AVPlayer_ReleaseSync](#oh_avplayer_releasesync) ([OH_AVPlayer](#oh_avplayer) \*player) | 同步释放播放资源。 | +| [OH_AVPlayer_SetVolume](#oh_avplayer_setvolume) ([OH_AVPlayer](#oh_avplayer) \*player, float leftVolume, float rightVolume) | 设置音量。 | +| [OH_AVPlayer_Seek](#oh_avplayer_seek) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t mSeconds, [AVPlayerSeekMode](#avplayerseekmode) mode) | 跳转播放位置。 | +| [OH_AVPlayer_GetCurrentTime](#oh_avplayer_getcurrenttime) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t \*currentTime) | 获取播放位置。 | +| [OH_AVPlayer_GetVideoWidth](#oh_avplayer_getvideowidth) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t \*videoWidth) | 获取视频宽度。 | +| [OH_AVPlayer_GetVideoHeight](#oh_avplayer_getvideoheight) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t \*videoHeight) | 获取视频高度。 | +| [OH_AVPlayer_SetPlaybackSpeed](#oh_avplayer_setplaybackspeed) ([OH_AVPlayer](#oh_avplayer) \*player, [AVPlaybackSpeed](#avplaybackspeed) speed) | 设置播放速率。 | +| [OH_AVPlayer_GetPlaybackSpeed](#oh_avplayer_getplaybackspeed) ([OH_AVPlayer](#oh_avplayer) \*player, [AVPlaybackSpeed](#avplaybackspeed) \*speed) | 获取播放速率。 | +| [OH_AVPlayer_SelectBitRate](#oh_avplayer_selectbitrate) ([OH_AVPlayer](#oh_avplayer) \*player, uint32_t bitRate) | 设置hls播放比特率。 | +| [OH_AVPlayer_SetVideoSurface](#oh_avplayer_setvideosurface) ([OH_AVPlayer](#oh_avplayer) \*player, [OHNativeWindow](#ohnativewindow) \*window) | 设置surface。 | +| [OH_AVPlayer_GetDuration](#oh_avplayer_getduration) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t \*duration) | 获取媒体文件总时长。 | +| [OH_AVPlayer_GetState](#oh_avplayer_getstate) ([OH_AVPlayer](#oh_avplayer) \*player, [AVPlayerState](#avplayerstate) \*state) | 获取播放状态。 | +| [OH_AVPlayer_IsPlaying](#oh_avplayer_isplaying) ([OH_AVPlayer](#oh_avplayer) \*player) | 是否正在播放媒体资源。 | +| [OH_AVPlayer_IsLooping](#oh_avplayer_islooping) ([OH_AVPlayer](#oh_avplayer) \*player) | 是否设置循环播放。 | +| [OH_AVPlayer_SetLooping](#oh_avplayer_setlooping) ([OH_AVPlayer](#oh_avplayer) \*player, bool loop) | 设置循环播放。 | +| [OH_AVPlayer_SetPlayerCallback](#oh_avplayer_setplayercallback) ([OH_AVPlayer](#oh_avplayer) \*player, [AVPlayerCallback](_a_v_player_callback.md) callback) | 设置监听接口,通过设置监听,可以监听到调用过程中的信息。 | +| [OH_AVPlayer_SelectTrack](#oh_avplayer_selecttrack) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t index) | 选择音频或字幕轨道。 | +| [OH_AVPlayer_DeselectTrack](#oh_avplayer_deselecttrack) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t index) | 取消音频或字幕轨道。 | +| [OH_AVPlayer_GetCurrentTrack](#oh_avplayer_getcurrenttrack) ([OH_AVPlayer](#oh_avplayer) \*player, int32_t \*index) | 获取当前轨道索引。 | + + +## 类型定义说明 + + +### OH_AVPlayer + +``` +typedef struct OH_AVPlayer OH_AVPlayer +``` + +**描述:** + +通过OH_AVPlayer可以获取播放实例。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +### OHNativeWindow + +``` +typedef struct NativeWindow OHNativeWindow +``` + +**描述:** + +提供对[OHNativeWindow](_native_window.md) 的访问功能。 + +**系统能力:** + +SystemCapability.Graphic.Graphic2D.NativeWindow + + +### AVPlayerCallback + +``` +typedef struct AVPlayerCallback AVPlayerCallback +``` + +**描述:** + +OH_AVPlayer中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVPlayer实例中, 并处理回调上报的信息,以保证OH_AVPlayer的正常运行。 + +**参数:** + +| 名称 | 描述 | +|------------------------|----------------------------------------------------------| +| onInfo | 监控播放调用操作过程信息,请参见[OH_AVPlayerOnInfo](#oh_avplayeroninfo)。 | +| onError | 监控播放调用操作错误,请参见[OH_AVPlayerOnError](#oh_avplayeronerror)。 | + + +### OH_AVPlayerOnInfo + +``` +typedef void (*OH_AVPlayerOnInfo)(OH_AVPlayer *player, AVPlayerOnInfoType type, int32_t extra) +``` + +**描述:** + +OH_AVPlayer实例运行过程信息。 + +**参数:** + +| 名称 | 描述 | +|-----------|---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| type | 信息类型。 | +| extra | 信息。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + + +### OH_AVPlayerOnError + +``` +typedef void (*OH_AVPlayerOnError)(OH_AVPlayer *player, int32_t errorCode, const char *errorMsg) +``` + +**描述:** + +当OH_AVPlayer实例运行出错时,将调用函数指针。 + +**参数:** + +| 名称 | 描述 | +|-----------|-----------------| +| player | 指向OH_AVPlayer实例的指针。 | +| errorCode | 错误码。 | +| errorMsg | 错误信息。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + + + +## 枚举类型说明 + + +### AVPlayerState + +``` +enum AVPlayerState +``` + +**描述:** + +枚举,表示播放的状态。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +| 枚举值 | 描述 | +|----------------|-------| +| AV_IDLE | 闲置。 | +| AV_INITIALIZED | 初始化。 | +| AV_PREPARED | 准备。 | +| AV_PLAYING | 开始播放。 | +| AV_PAUSED | 暂停播放。 | +| AV_STOPPED | 停止播放。 | +| AV_COMPLETED | 播放完成。 | +| AV_RELEASED | 释放资源。 | +| AV_ERROR | 播放错误。 | + + +### AVPlayerSeekMode + +``` +enum AVPlayerSeekMode +``` + +**描述:** + +枚举,表示改变播放位置的方式。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +| 枚举值 | 描述 | +| -------- |---------------| +| AV_SEEK_NEXT_SYNC | 同步到时间点之后的关键帧。 | +| AV_SEEK_PREVIOUS_SYNC | 同步到时间点之前的关键帧。 | + +### AVPlaybackSpeed + +``` +enum AVPlaybackSpeed +``` + +**描述:** + +枚举,表示播放的速率。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +| 枚举值 | 描述 | +| -------- |-------------| +| AV_SPEED_FORWARD_0_75_X | 0.75倍速。 | +| AV_SPEED_FORWARD_1_00_X | 1倍速。 | +| AV_SPEED_FORWARD_1_25_X | 1.25倍速。 | +| AV_SPEED_FORWARD_1_75_X | 1.75倍速。 | +| AV_SPEED_FORWARD_2_00_X | 2倍速。 | + + + +### AVPlayerOnInfoType + +``` +enum AVPlayerOnInfoType +``` + +**描述:** + +枚举,表示回调信息的类型。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +| 枚举值 | 描述 | +| -------- |-----------------------| +| 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 | 返回字幕信息。 | + + +## 函数说明 + + +### OH_AVPlayer_Create() + +``` +OH_AVPlayer *OH_AVPlayer_Create (void); +``` + +**描述:** + +实例化OH_AVPlayer对象。 + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +返回一个指向OH_AVPlayer实例的指针。 + + +### OH_AVPlayer_SetURLSource() + +``` +OH_AVPlayer_SetURLSource (OH_AVPlayer *player, const char *url) +``` + +**描述:** + +设置播放资源,资源可以是http url。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| url | 播放资源。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅 [OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SetFDSource() + +``` +OH_AVPlayer_SetFDSource (OH_AVPlayer *player, int32_t fd, int64_t offset, int64_t size) +``` + +**描述:** + +设置媒体文件描述符。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| fd | 媒体资源文件描述符。 | +| offset | 媒体资源在文件描述符中的偏移量。 | +| size | 媒体资源大小。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_Prepare() + +``` +OH_AVPlayer_Prepare (OH_AVPlayer *player) +``` + +**描述:** + +准备播放环境。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_Play() + +``` +OH_AVPlayer_Play (OH_AVPlayer *player) +``` + +**描述:** + +开始播放。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_Pause () + +``` +OH_AVPlayer_Pause (OH_AVPlayer *player) +``` + +**描述:** + +暂停播放。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_Stop() + +``` +OH_AVPlayer_Stop (OH_AVPlayer *player) +``` + +**描述:** + +停止播放。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + + +### OH_AVPlayer_Reset() + +``` +OH_AVPlayer_Reset (OH_AVPlayer *player) +``` + +**描述:** + +恢复到初始播放状态。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_Release () + +``` +OH_AVPlayer_Release (OH_AVPlayer *player) +``` + +**描述:** + +异步释放播放资源。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_ReleaseSync() + +``` +OH_AVPlayer_ReleaseSync (OH_AVPlayer *player) +``` + +**描述:** + +同步释放播放资源。 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_SetVolume() + +``` +OH_AVPlayer_SetVolume (OH_AVPlayer *player, float leftVolume, float rightVolume) +``` + +**描述:** + +设置音量。 + +**参数:** + +| 名称 | 描述 | +| -------- |-----------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| leftVolume | 设置左声道音量,范围0-1,精度0.01。 | +| rightVolume | 设置右声道音量,范围0-1,精度0.01。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_Seek() + +``` +OH_AVPlayer_Seek (OH_AVPlayer *player, int32_t mSeconds, AVPlayerSeekMode mode) +``` + +**描述:** + +跳转播放位置。 + +**参数:** + +| 名称 | 描述 | +| -------- |------------------------------------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| mSeconds | 目标播放位置,精确到毫秒。 | +| mode | 跳转方式,请参阅[AVPlayerSeekMode](#avplayerseekmode)。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_GetCurrentTime() + +``` +OH_AVPlayer_GetCurrentTime (OH_AVPlayer *player, int32_t *currentTime) +``` + +**描述:** + +获取播放位置。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| currentTime | 当前播放位置。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + + +### OH_AVPlayer_GetVideoWidth() + +``` +OH_AVPlayer_GetVideoWidth (OH_AVPlayer *player, int32_t *videoWidth) +``` + +**描述:** + +获取视频宽度。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| videoWidth | 视频宽度。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_GetVideoHeight() + +``` +OH_AVPlayer_GetVideoHeight (OH_AVPlayer *player, int32_t *videoHeight) +``` + +**描述:** + +获取视频高度。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| videoHeight | 视频高度。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SetPlaybackSpeed() + +``` +OH_AVPlayer_SetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed speed) +``` + +**描述:** + +设置播放速率。 + +**参数:** + +| 名称 | 描述 | +| -------- |----------------------------------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| speed | 播放速率,请参阅[AVPlaybackSpeed](#avplaybackspeed)。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_GetPlaybackSpeed() + +``` +OH_AVPlayer_GetPlaybackSpeed (OH_AVPlayer *player, AVPlaybackSpeed *speed) +``` + +**描述:** + +获取播放速率。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| speed | 播放速率,请参阅[AVPlaybackSpeed](#avplaybackspeed)。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SelectBitRate() + +``` +OH_AVPlayer_SelectBitRate (OH_AVPlayer *player, uint32_t bitRate) +``` + +**描述:** + +设置hls播放器的比特率。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| bitRate | 比特率。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SetVideoSurface() + +``` +OH_AVPlayer_SetVideoSurface (OH_AVPlayer *player, OHNativeWindow *window) +``` + +**描述:** + +设置surface。 + +**参数:** + +| 名称 | 描述 | +| -------- |--------------------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| window | 一个OHNativeWindow的结构体实例的指针,请参阅[OHNativeWindow](#ohnativewindow)。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_GetDuration() + +``` +OH_AVPlayer_GetDuration (OH_AVPlayer *player, int32_t *duration) +``` + +**描述:** + +获取媒体文件总时长。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| duration | 媒体文件总时长。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_GetState() + +``` +OH_AVPlayer_GetState (OH_AVPlayer *player, AVPlayerState *state) +``` + +**描述:** + +获取播放状态。 + +**参数:** + +| 名称 | 描述 | +| -------- |-----------------| +| player | 指向OH_AVPlayer实例的指针。 | +| state | 播放状态。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_IsPlaying() + +``` +OH_AVPlayer_IsPlaying (OH_AVPlayer *player) +``` + +**描述:** + +是否正在播放媒体资源。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +正在播放返回true,否则返回false。 + + +### OH_AVPlayer_IsLooping() + +``` +OH_AVPlayer_IsLooping (OH_AVPlayer *player) +``` + +**描述:** + +是否设置循环播放。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +循环播放返回true,否则返回false。 + + +### OH_AVPlayer_SetLooping() + +``` +OH_AVPlayer_SetLooping (OH_AVPlayer *player, bool loop) +``` + +**描述:** + +设置循环播放。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| loop | 是否循环播放。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SetPlayerCallback() + +``` +OH_AVPlayer_SetPlayerCallback (OH_AVPlayer *player, AVPlayerCallback callback) +``` + +**描述:** + +设置监听接口,通过设置监听,可以监听到调用过程中的信息。 + +**参数:** + +| 名称 | 描述 | +| -------- |-------------------------------------------------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| callback | [AVPlayerCallback](_a_v_player_callback.md)的结构体,保存相关回调函数指针。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_SelectTrack() + +``` +OH_AVPlayer_SelectTrack (OH_AVPlayer *player, int32_t index) +``` + +**描述:** + +选择音频或字幕轨道。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| index | 轨道索引。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_DeselectTrack() + +``` +OH_AVPlayer_DeselectTrack (OH_AVPlayer *player, int32_t index) +``` + +**描述:** + +取消音频或字幕轨道。 + +**参数:** + +| 名称 | 描述 | +| -------- |-------------------------------------------------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| index | 轨道索引。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 + + +### OH_AVPlayer_GetCurrentTrack() + +``` +OH_AVPlayer_GetCurrentTrack (OH_AVPlayer *player, int32_t *index) +``` + +**描述:** + +获取当前轨道索引。 + +**参数:** + +| 名称 | 描述 | +| -------- |---------------------| +| player | 指向OH_AVPlayer实例的指针。 | +| index | 轨道索引。 | + +**系统能力:** + +SystemCapability.Multimedia.Media.AVPlayer + +**返回:** + +执行成功返回执行成功返回AV_ERR_OK, 否则返回具体错误码,请参阅[OH_AVErrCode](native__averrors_8h.md)。 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/native-apis/_a_v_player_callback.md b/zh-cn/application-dev/reference/native-apis/_a_v_player_callback.md new file mode 100644 index 00000000000..25f7e8a8a85 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_a_v_player_callback.md @@ -0,0 +1,27 @@ +# AVPlayerCallback + + +## 概述 + +OH_AVPlayer中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVPlayer实例中, 并处理回调上报的信息,以保证OH_AVPlayer的正常运行。 + +**系统能力**:SystemCapability.Multimedia.Media.AVPlayer + +**起始版本:** + +11 + +**相关模块:** + +[AVPlayer](_a_v_player.md) + + +## 汇总 + + +### 成员变量 + +| 名称 | 描述 | +| -------- |-------------------------------------------------------------------------------------------------------------| +| **onInfo** | [OH_AVPlayerOnInfo](_a_v_player.md#oh_avplayeroninfo) | +| **onError** | [OH_AVPlayerOnError](_a_v_player.md#oh_avplayeronerror) | diff --git a/zh-cn/application-dev/reference/native-apis/avplayer_8h.md b/zh-cn/application-dev/reference/native-apis/avplayer_8h.md new file mode 100644 index 00000000000..f873e962e09 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/avplayer_8h.md @@ -0,0 +1,51 @@ +# avplayer.h + + +## 概述 + +声明用于构造媒体资源播放对象的Native API。 + +**起始版本:** + +11 + +**相关模块:** + +[AVPlayer](_a_v_player.md) + + +## 汇总 + + +### 函数 + +| 名称 | 描述 | +|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| +| [OH_AVPlayer_Create](_a_v_player.md#oh_avplayer_create) (void) | 实例化对象,创建OH_AVPlayer。 | +| [OH_AVPlayer_SetURLSource](_a_v_player.md#oh_avplayer_seturlsource) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, const char \*url) | 设置播放资源,资源可以是http url。 | +| [OH_AVPlayer_SetFDSource](_a_v_player.md#oh_avplayer_setfdsource) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t fd, int64_t offset, int64_t size) | 设置媒体文件描述符。 | +| [OH_AVPlayer_Prepare](_a_v_player.md#oh_avplayer_prepare) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 准备播放环境。 | +| [OH_AVPlayer_Play](_a_v_player.md#oh_avplayer_play) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 开始播放。 | +| [OH_AVPlayer_Pause](_a_v_player.md#oh_avplayer_pause) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 暂停播放。 | +| [OH_AVPlayer_Stop](_a_v_player.md#oh_avplayer_stop) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 停止播放。 | +| [OH_AVPlayer_Reset](_a_v_player.md#oh_avplayer_reset) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 恢复到初始播放状态。 | +| [OH_AVPlayer_Release](_a_v_player.md#oh_avplayer_release) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 异步释放播放资源。 | +| [OH_AVPlayer_ReleaseSync](_a_v_player.md#oh_avplayer_releasesync) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 同步释放播放资源。 | +| [OH_AVPlayer_SetVolume](_a_v_player.md#oh_avplayer_setvolume) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, float leftVolume, float rightVolume) | 设置音量。 | +| [OH_AVPlayer_Seek](_a_v_player.md#oh_avplayer_seek) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t mSeconds, [AVPlayerSeekMode](_a_v_player.md#avplayerseekmode) mode) | 跳转播放位置。 | +| [OH_AVPlayer_GetCurrentTime](_a_v_player.md#oh_avplayer_getcurrenttime) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t \*currentTime) | 获取播放位置。 | +| [OH_AVPlayer_GetVideoWidth](_a_v_player.md#oh_avplayer_getvideowidth) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t \*videoWidth) | 获取视频宽度。 | +| [OH_AVPlayer_GetVideoHeight](_a_v_player.md#oh_avplayer_getvideoheight) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t \*videoHeight) | 获取视频高度。 | +| [OH_AVPlayer_SetPlaybackSpeed](_a_v_player.md#oh_avplayer_setplaybackspeed) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [AVPlaybackSpeed](_a_v_player.md#avplaybackspeed) speed) | 设置播放速率。 | +| [OH_AVPlayer_GetPlaybackSpeed](_a_v_player.md#oh_avplayer_getplaybackspeed) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [AVPlaybackSpeed](_a_v_player.md#avplaybackspeed) \*speed) | 获取播放速率。 | +| [OH_AVPlayer_SelectBitRate](_a_v_player.md#oh_avplayer_selectbitrate) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, uint32_t bitRate) | 设置hls播放比特率。 | +| [OH_AVPlayer_SetVideoSurface](_a_v_player.md#oh_avplayer_setvideosurface) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [OHNativeWindow](_a_v_player.md#ohnativewindow) \*window) | 设置surface。 | +| [OH_AVPlayer_GetDuration](_a_v_player.md#oh_avplayer_getduration) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t \*duration) | 获取媒体文件总时长。 | +| [OH_AVPlayer_GetState](_a_v_player.md#oh_avplayer_getstate) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [AVPlayerState](_a_v_player.md#avplayerstate) \*state) | 获取播放状态。 | +| [OH_AVPlayer_IsPlaying](_a_v_player.md#oh_avplayer_isplaying) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 是否正在播放媒体资源。 | +| [OH_AVPlayer_IsLooping](_a_v_player.md#oh_avplayer_islooping) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player) | 是否设置循环播放。 | +| [OH_AVPlayer_SetLooping](_a_v_player.md#oh_avplayer_setlooping) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, bool loop) | 设置循环播放。 | +| [OH_AVPlayer_SetPlayerCallback](_a_v_player.md#oh_avplayer_setplayercallback) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [AVPlayerCallback](_a_v_player_callback.md) callback) | 设置监听接口,通过设置监听,可以监听到调用过程中的信息。 | +| [OH_AVPlayer_SelectTrack](_a_v_player.md#oh_avplayer_selecttrack) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t index) | 选择音频或字幕轨道。 | +| [OH_AVPlayer_DeselectTrack](_a_v_player.md#oh_avplayer_deselecttrack) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t index) | 取消音频或字幕轨道。 | +| [OH_AVPlayer_GetCurrentTrack](_a_v_player.md#oh_avplayer_getcurrenttrack) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t \*index) | 获取当前轨道索引。 | diff --git a/zh-cn/application-dev/reference/native-apis/avplayer__base_8h.md b/zh-cn/application-dev/reference/native-apis/avplayer__base_8h.md new file mode 100644 index 00000000000..e3cfeeb8dca --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/avplayer__base_8h.md @@ -0,0 +1,41 @@ +# avplayer_base.h + + +## 概述 + +声明用于运行媒体资源播放通用的结构体、字符常量、枚举。 + +**起始版本:** + +11 + +**相关模块:** + +[AVPlayer](_a_v_player.md) + + +## 汇总 + + +### 结构体 + +| 名称 | 描述 | +|---------------------------------------------|----------------------------| +| [AVPlayerCallback](_a_v_player_callback.md) | OH_AVPlayer中所有异步回调函数指针的集合。 | + +### 类型定义 + +| 名称 | 描述 | +|---------------------------------------------------------------------------------------------------------------------------------|------------------------------| +| [OH_AVPlayer](_a_v_player.md#oh_avplayer) | 通过OH_AVPlayer可以获取播放实例。 | +| [OHNativeWindow](_a_v_player.md#ohnativewindow) | 提供对OHNativeWindow的访问功能 | +| (\*[OH_AVPlayerOnInfo](_a_v_player.md#oh_avplayeroninfo)) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, [AVPlayerOnInfoType](_a_v_player.md#avplayeroninfotype) type, int32_t extra) | 捕获OH_AVPlayer运行过程信息。 | +| (\*[OH_AVPlayerOnError](_a_v_player.md#oh_avplayeronerror)) ([OH_AVPlayer](_a_v_player.md#oh_avplayer) \*player, int32_t errorCode, const char \*errorMsg) | 当OH_AVPlayer实例运行出错时,将调用函数指针。 | +### 枚举 + +| 名称 | 描述 | +|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------| +| [AVPlayerState](_a_v_player.md#avplayerstate) { AV_IDLE = 0, AV_INITIALIZED = 1, AV_PREPARED = 2, AV_PLAYING = 3, AV_PAUSED = 4, AV_STOPPED = 5, AV_PLAYBACK_COMPLETED = 6, AV_RELEASED = 7, AV_STATE_ERROR = 8 } | 枚举,表示播放的状态。 | +| [AVPlayerSeekMode](_a_v_player.md#avplayerseekmode) { AV_SEEK_NEXT_SYNC = 0, AV_SEEK_PREVIOUS_SYNC = 1 } | 枚举,表示改变播放位置的方式。 | +| [AVPlaybackSpeed](_a_v_player.md#avplaybackspeed) { AV_SPEED_FORWARD_0_75_X = 0, AV_SPEED_FORWARD_1_00_X = 1, AV_SPEED_FORWARD_1_25_X = 2, AV_SPEED_FORWARD_1_75_X = 3, AV_SPEED_FORWARD_2_00_X = 4 } | 枚举,表示播放的速率。 | +| [AVPlayerOnInfoType](_a_v_player.md#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 } | 枚举,表示回调信息的类型。 | -- Gitee