Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1489db18
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,发现更多精彩内容 >>
未验证
提交
1489db18
编写于
3月 19, 2022
作者:
Z
zengyawen
提交者:
Gitee
3月 19, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/media/video-playback.md.
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
a340cd2c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
113 addition
and
14 deletion
+113
-14
zh-cn/application-dev/media/video-playback.md
zh-cn/application-dev/media/video-playback.md
+113
-14
未找到文件。
zh-cn/application-dev/media/video-playback.md
浏览文件 @
1489db18
...
...
@@ -30,10 +30,21 @@
VideoPlayer支持的url媒体源输入类型可参考:
[
url属性说明
](
../reference/apis/js-apis-media.md#videoplayer_属性
)
Xcomponent创建方法可参考:
[
Xcomponent创建方法
](
#Xcomponent创建方法
)
```
js
import
media
from
'
@ohos.multimedia.media
'
import
fileIO
from
'
@ohos.fileio
'
let
videoPlayer
=
undefined
;
// 用于保存createVideoPlayer创建的对象
let
surfaceID
=
undefined
;
// 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent
()
{
surfaceID
=
this
.
$element
(
'
Xcomponent
'
).
getXComponentSurfaceId
();
console
.
info
(
'
LoadXcomponent surfaceID is
'
+
surfaceID
);
}
// 函数调用发生错误时用于上报错误信息
function
failureCallback
(
error
)
{
console
.
info
(
`error happened,error Name is
${
error
.
name
}
`
);
...
...
@@ -67,10 +78,19 @@ await media.createVideoPlayer().then((video) => {
}
},
failureCallback
).
catch
(
catchCallback
);
// 用户选择视频设置url
videoPlayer
.
url
=
'
file:///data/data/ohos.xxx.xxx/files/test.mp4
'
;
// 用户选择视频设置fd(本地播放)
let
fdPath
=
'
fd://
'
let
path
=
'
data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4
'
;
await
fileIO
.
open
(
path
).
then
(
fdNumber
)
=>
{
fdPath
=
fdPath
+
''
+
fdNumber
;
console
.
info
(
'
open fd sucess fd is
'
+
fdPath
);
},
(
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
}),
catch
((
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中
videoPlayer
.
url
=
fdPath
;
// 设置surfaceID用于显示视频画面
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
...
...
@@ -147,9 +167,18 @@ surfaceID = undefined;
### 正常播放场景
```
js
import
media
from
'
@ohos.multimedia.media
'
import
fileIO
from
'
@ohos.fileio
'
let
videoPlayer
=
undefined
;
// 用于保存createVideoPlayer创建的对象
let
surfaceID
=
undefined
;
// 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent
()
{
surfaceID
=
this
.
$element
(
'
Xcomponent
'
).
getXComponentSurfaceId
();
console
.
info
(
'
LoadXcomponent surfaceID is
'
+
surfaceID
);
}
// 函数调用发生错误时用于上报错误信息
function
failureCallback
(
error
)
{
console
.
info
(
`error happened,error Name is
${
error
.
name
}
`
);
...
...
@@ -191,10 +220,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调
SetCallBack
(
videoPlayer
);
// 用户选择视频设置url
videoPlayer
.
url
=
'
file:///data/data/ohos.xxx.xxx/files/test.mp4
'
;
// 用户选择视频设置fd(本地播放)
let
fdPath
=
'
fd://
'
let
path
=
'
data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4
'
;
await
fileIO
.
open
(
path
).
then
(
fdNumber
)
=>
{
fdPath
=
fdPath
+
''
+
fdNumber
;
console
.
info
(
'
open fd sucess fd is
'
+
fdPath
);
},
(
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
}),
catch
((
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中
videoPlayer
.
url
=
fdPath
;
// 设置surfaceID用于显示视频画面
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
...
...
@@ -215,9 +253,18 @@ await videoPlayer.play().then(() => {
### 切视频场景
```
js
import
media
from
'
@ohos.multimedia.media
'
import
fileIO
from
'
@ohos.fileio
'
let
videoPlayer
=
undefined
;
// 用于保存createVideoPlayer创建的对象
let
surfaceID
=
undefined
;
// 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent
()
{
surfaceID
=
this
.
$element
(
'
Xcomponent
'
).
getXComponentSurfaceId
();
console
.
info
(
'
LoadXcomponent surfaceID is
'
+
surfaceID
);
}
// 函数调用发生错误时用于上报错误信息
function
failureCallback
(
error
)
{
console
.
info
(
`error happened,error Name is
${
error
.
name
}
`
);
...
...
@@ -259,10 +306,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调
SetCallBack
(
videoPlayer
);
// 用户选择视频设置url
videoPlayer
.
url
=
'
file:///data/data/ohos.xxx.xxx/files/test.mp4
'
;
// 用户选择视频设置fd(本地播放)
let
fdPath
=
'
fd://
'
let
path
=
'
data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4
'
;
await
fileIO
.
open
(
path
).
then
(
fdNumber
)
=>
{
fdPath
=
fdPath
+
''
+
fdNumber
;
console
.
info
(
'
open fd sucess fd is
'
+
fdPath
);
},
(
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
}),
catch
((
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中
videoPlayer
.
url
=
fdPath
;
// 设置surfaceID用于显示视频画面
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
...
...
@@ -285,7 +341,19 @@ await videoPlayer.reset().then(() => {
console
.
info
(
'
reset success
'
);
},
failureCallback
).
catch
(
catchCallback
);
videoPlayer
.
url
=
'
file:///data/data/ohos.xxx.xxx/files/next.mp4
'
;
// 用户选择视频设置fd(本地播放)
let
fdNextPath
=
'
fd://
'
let
nextPath
=
'
data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/02.mp4
'
;
await
fileIO
.
open
(
nextPath
).
then
(
fdNumber
)
=>
{
fdNextPath
=
fdNextPath
+
''
+
fdNumber
;
console
.
info
(
'
open fd sucess fd is
'
+
fdNextPath
);
},
(
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
}),
catch
((
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
});
videoPlayer
.
url
=
fdNextPath
;
// 设置surfaceID用于显示视频画面
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
...
...
@@ -306,9 +374,18 @@ await videoPlayer.play().then(() => {
### 单个视频循环场景
```
js
import
media
from
'
@ohos.multimedia.media
'
import
fileIO
from
'
@ohos.fileio
'
let
videoPlayer
=
undefined
;
// 用于保存createVideoPlayer创建的对象
let
surfaceID
=
undefined
;
// 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent
()
{
surfaceID
=
this
.
$element
(
'
Xcomponent
'
).
getXComponentSurfaceId
();
console
.
info
(
'
LoadXcomponent surfaceID is
'
+
surfaceID
);
}
// 函数调用发生错误时用于上报错误信息
function
failureCallback
(
error
)
{
console
.
info
(
`error happened,error Name is
${
error
.
name
}
`
);
...
...
@@ -350,10 +427,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调
SetCallBack
(
videoPlayer
);
// 用户选择视频设置url
videoPlayer
.
url
=
'
file:///data/data/ohos.xxx.xxx/files/test.mp4
'
;
// 用户选择视频设置fd(本地播放)
let
fdPath
=
'
fd://
'
let
path
=
'
data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4
'
;
await
fileIO
.
open
(
path
).
then
(
fdNumber
)
=>
{
fdPath
=
fdPath
+
''
+
fdNumber
;
console
.
info
(
'
open fd sucess fd is
'
+
fdPath
);
},
(
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
}),
catch
((
err
)
=>
{
console
.
info
(
'
open fd failed err is
'
+
err
);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中
videoPlayer
.
url
=
fdPath
;
// 设置surfaceID用于显示视频画面
await
videoPlayer
.
setDisplaySurface
(
surfaceID
).
then
(()
=>
{
...
...
@@ -373,3 +459,16 @@ await videoPlayer.play().then(() => {
console
.
info
(
'
play success
'
);
},
failureCallback
).
catch
(
catchCallback
);
```
### Xcomponent创建方法
播放视频中获取surfaceID依赖了Xcomponent,需要创建一个和xxx.js同名的xxx.hml文件,xxx.hml里面需要添加如下代码:
```
js
<
xcomponent
id
=
'
Xcomponent
'
if
=
"
{{isFlush}}
"
// 刷新surfaceID,isFlush赋值false再赋值true为一次刷新,会主动再次加载LoadXcomponet获取新的surfaceID
type
=
'
surface
'
onload
=
'
LoadXcomponet
'
// 默认加载接口
style
=
"
wodth:720px;height:480px;border-color:red;border-width:5px;
"
>
// 设置窗口宽高等属性
<
/xcomponent>
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录