diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 6baad80a656b1034d69bc25f05064b8b2ac36fec..25907d1fbcd5e36ef3450ac6174c7a815a6444fc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -356,20 +356,21 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla **系统能力:** SystemCapability.Multimedia.Media.AVPlayer -| 名称 | 类型 | 可读 | 可写 | 说明 | -| --------------------------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | -| url9+ | string | 是 | 是 | 媒体URL,只允许在**idle**状态下设置,静态属性。
支持的视频格式(mp4、mpeg-ts、webm、mkv)。
支持的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx。
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx。
3. https网络播放: https://xx。
4. hls网络播放路径:http://xx或者https://xx。 | -| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 媒体文件描述,只允许在**idle**状态下设置,静态属性。
使用场景:应用中的媒体资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的媒体文件:
视频1(地址偏移:0,字节长度:100);
视频2(地址偏移:101,字节长度:50);
视频3(地址偏移:151,字节长度:150);
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }。
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }。
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }。
假设是一个独立的媒体文件: 请使用src=fd://xx。 | -| surfaceId9+ | string | 是 | 是 | 视频窗口ID,默认无窗口,只允许在**initialized**状态下设置,静态属性。
使用场景:视频播放的窗口渲染,纯音频播放不用设置。
**使用示例**:
[通过Xcomponent创建surfaceId](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid)。 | -| loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | -| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | +| 名称 | 类型 | 可读 | 可写 | 说明 | +| --------------------------------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| url9+ | string | 是 | 是 | 媒体URL,只允许在**idle**状态下设置,静态属性。
支持的视频格式(mp4、mpeg-ts、webm、mkv)。
支持的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx。
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx。
3. https网络播放: https://xx。
4. hls网络播放路径:http://xx或者https://xx。 | +| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 媒体文件描述,只允许在**idle**状态下设置,静态属性。
使用场景:应用中的媒体资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的媒体文件:
视频1(地址偏移:0,字节长度:100);
视频2(地址偏移:101,字节长度:50);
视频3(地址偏移:151,字节长度:150);
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }。
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }。
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }。
假设是一个独立的媒体文件: 请使用src=fd://xx。 | +| dataSrc10+ | [AVDataSrcDescriptor](#avdatasrcdescriptor10) | 是 | 是 | 流式媒体资源描述,只允许在**idle**状态下设置,静态属性。
使用场景:应用播放从远端下载到本地的文件,在应用未下载完整音视频资源时,提前播放已获取的资源文件。
**使用示例**:
假设用户正在从远端服务器获取音视频媒体文件,希望下载到本地的同时播放已经下载好的部分:
1.用户需要获取媒体文件的总大小size(单位为字节),获取不到时或期望为直播模式时设置为-1。
2.用户需要实现回调函数func用于填写数据,如果size = -1,则func形式为:func(buffer: ArrayBuffer, length: number),否则为:func(buffer: ArrayBuffer, length: number, pos: number)。
3.用户设置AVDataSrcDescriptor {fileSize = size, callback = func}。 | +| surfaceId9+ | string | 是 | 是 | 视频窗口ID,默认无窗口,只允许在**initialized**状态下设置,静态属性。
使用场景:视频播放的窗口渲染,纯音频播放不用设置。
**使用示例**:
[通过Xcomponent创建surfaceId](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid)。 | +| loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | +| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audiorendererinfo8) | 是 | 是 | 设置音频渲染信息,默认值contentType为CONTENT_TYPE_MUSIC,streamUsage为STREAM_USAGE_MEDIA。
只允许在**initialized**状态下设置 | -| state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | -| currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | -| duration9+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | -| width9+ | number | 是 | 否 | 视频宽,单位为像素(px),可查询参数。
返回为(0)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | -| height9+ | number | 是 | 否 | 视频高,单位为像素(px),可查询参数。
返回为(0)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | +| state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | +| currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | +| duration9+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | +| width9+ | number | 是 | 否 | 视频宽,单位为像素(px),可查询参数。
返回为(0)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | +| height9+ | number | 是 | 否 | 视频高,单位为像素(px),可查询参数。
返回为(0)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | ### on('stateChange')9+ @@ -1059,7 +1060,7 @@ setSpeed(speed: PlaybackSpeed): void **示例:** ```js -avPlayer.setSpeed(media.AVPlayerSpeed.SPEED_FORWARD_2_00_X) +avPlayer.setSpeed(media.PlaybackSpeed.SPEED_FORWARD_2_00_X) ``` ### on('speedDone')9+ @@ -1585,7 +1586,7 @@ avPlayer.off('audioInterrupt') | 名称 | 类型 | 说明 | | :-----------------------------: | :----: | :----------------------------------------------------------- | -| idle | string | 闲置状态,AVPlayer刚被创建[createAVPlayer()](#mediacreateavplayer9)或者调用了reset()方法之后,进入Idle状态。
首次创建createAVPlayer(),所有属性都为默认值。
调用reset()方法,url9+ 或 fdSrc9+属性会被重置,其他用户设置的属性将被保留。 | +| idle | string | 闲置状态,AVPlayer刚被创建[createAVPlayer()](#mediacreateavplayer9)或者调用了reset()方法之后,进入Idle状态。
首次创建createAVPlayer(),所有属性都为默认值。
调用reset()方法,url9+ 或 fdSrc9+或dataSrc10+属性及loop属性会被重置,其他用户设置的属性将被保留。 | | initialized | string | 资源初始化,在Idle 状态设置 url9+ 或 fdSrc9+属性,AVPlayer会进入initialized状态,此时可以配置窗口、音频等静态属性。 | | prepared | string | 已准备状态,在initialized状态调用prepare()方法,AVPlayer会进入prepared状态,此时播放引擎的资源已准备就绪。 | | playing | string | 正在播放状态,在prepared/paused/completed状态调用play()方法,AVPlayer会进入playing状态。 | @@ -1607,6 +1608,18 @@ avPlayer.off('audioInterrupt') | offset | number | 是 | 资源偏移量,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 | | length | number | 是 | 资源长度,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 | +## AVDataSrcDescriptor10+ + +音视频文件资源描述,用于DataSource播放方式,使用场景:应用在未获取完整音视频资源时,允许用户创建播放实例并开始播放,达到提前播放的目的。 + +**系统能力:** SystemCapability.Multimedia.Media.AVPlayer + +| 名称 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| fileSize | number | 是 | 待播放文件大小(字节),-1代表大小未知。如果fileSize设置为-1, 播放模式类似于直播,不能进行seek及setSpeed操作,不能设置loop属性,因此不能重新播放。 | +| callback | function | 是 | 用户设置的回调函数,用于填写数据。
- buffer,ArrayBuffer类型,表示被填写的内存,必选。
- length,number类型,表示被填写内存的最大长度,必选。
- pos,number类型,表示填写的数据在资源文件中的位置,可选,当fileSize设置为-1时,该参数禁止被使用。 | + + ## SeekMode8+ 视频播放的Seek模式枚举,可通过seek方法作为参数传递下去。