Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
838fe666
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
838fe666
编写于
3月 06, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 06, 2023
浏览文件
操作
浏览文件
下载
差异文件
!14638 add datasrc interface
Merge pull request !14638 from GH/master
上级
bc200e57
40689343
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
28 addition
and
15 deletion
+28
-15
zh-cn/application-dev/reference/apis/js-apis-media.md
zh-cn/application-dev/reference/apis/js-apis-media.md
+28
-15
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-media.md
浏览文件 @
838fe666
...
@@ -357,9 +357,10 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla
...
@@ -357,9 +357,10 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla
**系统能力:**
SystemCapability.Multimedia.Media.AVPlayer
**系统能力:**
SystemCapability.Multimedia.Media.AVPlayer
| 名称 | 类型 | 可读 | 可写 | 说明 |
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------------------------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
| --------------------------------------------------- | ------------------------------------------------------
------
| ---- | ---- | ------------------------------------------------------------ |
| url
<sup>
9+
</sup>
| string | 是 | 是 | 媒体URL,只允许在
**idle**
状态下设置,静态属性。
<br/>
支持的视频格式(mp4、mpeg-ts、webm、mkv)。
<br>
支持的音频格式(m4a、aac、mp3、ogg、wav)。
<br/>
**支持路径示例**
:
<br>
1. fd类型播放:fd://xx。
<br>
![](
figures/zh-cn_image_url.png
)
<br>
2. http网络播放: http://xx。
<br/>
3. https网络播放: https://xx。
<br/>
4. hls网络播放路径:http://xx或者https://xx。 |
| url
<sup>
9+
</sup>
| string | 是 | 是 | 媒体URL,只允许在
**idle**
状态下设置,静态属性。
<br/>
支持的视频格式(mp4、mpeg-ts、webm、mkv)。
<br>
支持的音频格式(m4a、aac、mp3、ogg、wav)。
<br/>
**支持路径示例**
:
<br>
1. fd类型播放:fd://xx。
<br>
![](
figures/zh-cn_image_url.png
)
<br>
2. http网络播放: http://xx。
<br/>
3. https网络播放: https://xx。
<br/>
4. hls网络播放路径:http://xx或者https://xx。 |
| fdSrc
<sup>
9+
</sup>
|
[
AVFileDescriptor
](
#avfiledescriptor9
)
| 是 | 是 | 媒体文件描述,只允许在
**idle**
状态下设置,静态属性。
<br/>
使用场景:应用中的媒体资源被连续存储在同一个文件中。
<br/>
**使用示例**
:
<br/>
假设一个连续存储的媒体文件:
<br/>
视频1(地址偏移:0,字节长度:100);
<br/>
视频2(地址偏移:101,字节长度:50);
<br/>
视频3(地址偏移:151,字节长度:150);
<br/>
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }。
<br/>
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }。
<br/>
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }。
<br/>
假设是一个独立的媒体文件: 请使用src=fd://xx。 |
| fdSrc
<sup>
9+
</sup>
|
[
AVFileDescriptor
](
#avfiledescriptor9
)
| 是 | 是 | 媒体文件描述,只允许在
**idle**
状态下设置,静态属性。
<br/>
使用场景:应用中的媒体资源被连续存储在同一个文件中。
<br/>
**使用示例**
:
<br/>
假设一个连续存储的媒体文件:
<br/>
视频1(地址偏移:0,字节长度:100);
<br/>
视频2(地址偏移:101,字节长度:50);
<br/>
视频3(地址偏移:151,字节长度:150);
<br/>
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }。
<br/>
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }。
<br/>
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }。
<br/>
假设是一个独立的媒体文件: 请使用src=fd://xx。 |
| dataSrc
<sup>
10+
</sup>
|
[
AVDataSrcDescriptor
](
#avdatasrcdescriptor10
)
| 是 | 是 | 流式媒体资源描述,只允许在
**idle**
状态下设置,静态属性。
<br/>
使用场景:应用播放从远端下载到本地的文件,在应用未下载完整音视频资源时,提前播放已获取的资源文件。
<br/>
**使用示例**
:
<br/>
假设用户正在从远端服务器获取音视频媒体文件,希望下载到本地的同时播放已经下载好的部分:
<br/>
1.用户需要获取媒体文件的总大小size(单位为字节),获取不到时或期望为直播模式时设置为-1。
<br/>
2.用户需要实现回调函数func用于填写数据,如果size = -1,则func形式为:func(buffer: ArrayBuffer, length: number),否则为:func(buffer: ArrayBuffer, length: number, pos: number)。
<br/>
3.用户设置AVDataSrcDescriptor {fileSize = size, callback = func}。 |
| surfaceId
<sup>
9+
</sup>
| string | 是 | 是 | 视频窗口ID,默认无窗口,只允许在
**initialized**
状态下设置,静态属性。
<br/>
使用场景:视频播放的窗口渲染,纯音频播放不用设置。
<br/>
**使用示例**
:
<br/>
[
通过Xcomponent创建surfaceId
](
../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid
)
。 |
| surfaceId
<sup>
9+
</sup>
| string | 是 | 是 | 视频窗口ID,默认无窗口,只允许在
**initialized**
状态下设置,静态属性。
<br/>
使用场景:视频播放的窗口渲染,纯音频播放不用设置。
<br/>
**使用示例**
:
<br/>
[
通过Xcomponent创建surfaceId
](
../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid
)
。 |
| loop
<sup>
9+
</sup>
| boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
<br/>
只允许在
**prepared**
/
**playing**
/
**paused**
/
**completed**
状态下设置。 |
| loop
<sup>
9+
</sup>
| boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
<br/>
只允许在
**prepared**
/
**playing**
/
**paused**
/
**completed**
状态下设置。 |
| videoScaleType
<sup>
9+
</sup>
|
[
VideoScaleType
](
#videoscaletype9
)
| 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
<br/>
只允许在
**prepared**
/
**playing**
/
**paused**
/
**completed**
状态下设置。 |
| videoScaleType
<sup>
9+
</sup>
|
[
VideoScaleType
](
#videoscaletype9
)
| 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
<br/>
只允许在
**prepared**
/
**playing**
/
**paused**
/
**completed**
状态下设置。 |
...
@@ -1059,7 +1060,7 @@ setSpeed(speed: PlaybackSpeed): void
...
@@ -1059,7 +1060,7 @@ setSpeed(speed: PlaybackSpeed): void
**示例:**
**示例:**
```
js
```
js
avPlayer
.
setSpeed
(
media
.
AVPlayer
Speed
.
SPEED_FORWARD_2_00_X
)
avPlayer
.
setSpeed
(
media
.
Playback
Speed
.
SPEED_FORWARD_2_00_X
)
```
```
### on('speedDone')<sup>9+</sup><a name = speedDone_on></a>
### on('speedDone')<sup>9+</sup><a name = speedDone_on></a>
...
@@ -1585,7 +1586,7 @@ avPlayer.off('audioInterrupt')
...
@@ -1585,7 +1586,7 @@ avPlayer.off('audioInterrupt')
| 名称 | 类型 | 说明 |
| 名称 | 类型 | 说明 |
| :-----------------------------: | :----: | :----------------------------------------------------------- |
| :-----------------------------: | :----: | :----------------------------------------------------------- |
| idle | string | 闲置状态,AVPlayer刚被创建
[
createAVPlayer()
](
#mediacreateavplayer9
)
或者调用了reset()方法之后,进入Idle状态。
<br/>
首次创建createAVPlayer(),所有属性都为默认值。
<br/>
调用reset()方法,url
<sup>
9+
</sup>
或 fdSrc
<sup>
9+
</sup>
属性会被重置,其他用户设置的属性将被保留。 |
| idle | string | 闲置状态,AVPlayer刚被创建
[
createAVPlayer()
](
#mediacreateavplayer9
)
或者调用了reset()方法之后,进入Idle状态。
<br/>
首次创建createAVPlayer(),所有属性都为默认值。
<br/>
调用reset()方法,url
<sup>
9+
</sup>
或 fdSrc
<sup>
9+
</sup>
或dataSrc
<sup>
10+
</sup>
属性及loop
属性会被重置,其他用户设置的属性将被保留。 |
| initialized | string | 资源初始化,在Idle 状态设置 url
<sup>
9+
</sup>
或 fdSrc
<sup>
9+
</sup>
属性,AVPlayer会进入initialized状态,此时可以配置窗口、音频等静态属性。 |
| initialized | string | 资源初始化,在Idle 状态设置 url
<sup>
9+
</sup>
或 fdSrc
<sup>
9+
</sup>
属性,AVPlayer会进入initialized状态,此时可以配置窗口、音频等静态属性。 |
| prepared | string | 已准备状态,在initialized状态调用prepare()方法,AVPlayer会进入prepared状态,此时播放引擎的资源已准备就绪。 |
| prepared | string | 已准备状态,在initialized状态调用prepare()方法,AVPlayer会进入prepared状态,此时播放引擎的资源已准备就绪。 |
| playing | string | 正在播放状态,在prepared/paused/completed状态调用play()方法,AVPlayer会进入playing状态。 |
| playing | string | 正在播放状态,在prepared/paused/completed状态调用play()方法,AVPlayer会进入playing状态。 |
...
@@ -1607,6 +1608,18 @@ avPlayer.off('audioInterrupt')
...
@@ -1607,6 +1608,18 @@ avPlayer.off('audioInterrupt')
| offset | number | 是 | 资源偏移量,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 |
| offset | number | 是 | 资源偏移量,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 |
| length | number | 是 | 资源长度,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 |
| length | number | 是 | 资源长度,需要基于预置资源的信息输入,非法值会造成音视频资源解析错误。 |
## AVDataSrcDescriptor<sup>10+</sup>
音视频文件资源描述,用于DataSource播放方式,使用场景:应用在未获取完整音视频资源时,允许用户创建播放实例并开始播放,达到提前播放的目的。
**系统能力:**
SystemCapability.Multimedia.Media.AVPlayer
| 名称 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| fileSize | number | 是 | 待播放文件大小(字节),-1代表大小未知。如果fileSize设置为-1, 播放模式类似于直播,不能进行seek及setSpeed操作,不能设置loop属性,因此不能重新播放。 |
| callback | function | 是 | 用户设置的回调函数,用于填写数据。
<br>
- buffer,ArrayBuffer类型,表示被填写的内存,必选。
<br>
- length,number类型,表示被填写内存的最大长度,必选。
<br>
- pos,number类型,表示填写的数据在资源文件中的位置,可选,当fileSize设置为-1时,该参数禁止被使用。 |
## SeekMode<sup>8+</sup>
## SeekMode<sup>8+</sup>
视频播放的Seek模式枚举,可通过seek方法作为参数传递下去。
视频播放的Seek模式枚举,可通过seek方法作为参数传递下去。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录