Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
3e649292
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看板
未验证
提交
3e649292
编写于
3月 20, 2023
作者:
O
openharmony_ci
提交者:
Gitee
3月 20, 2023
浏览文件
操作
浏览文件
下载
差异文件
!15463 资料示例代码增加fdSrc方式初始化资源文件示例
Merge pull request !15463 from FULIZHONG/0303docs
上级
f62cc21f
7ca8a93d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
32 deletion
+45
-32
zh-cn/application-dev/media/avplayer-playback.md
zh-cn/application-dev/media/avplayer-playback.md
+7
-7
zh-cn/application-dev/reference/apis/js-apis-media.md
zh-cn/application-dev/reference/apis/js-apis-media.md
+38
-25
未找到文件。
zh-cn/application-dev/media/avplayer-playback.md
浏览文件 @
3e649292
...
...
@@ -299,13 +299,13 @@ export class AVPlayerDemo {
async
avPlayerDemo
()
{
// 创建avPlayer实例对象
this
.
avPlayer
=
await
media
.
createAVPlayer
()
let
f
dPath
=
'
fd://
'
let
pathDir
=
"
/data/storage/el2/base/haps/entry/files
"
// pathDir在FA模型和Stage模型的获取方式不同,请参考开发步骤首行的说明,根据实际情况自行获取。
//
path路径的码流可通过"hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" 命令,将其推送到设备上
let
path
=
pathDir
+
'
/H264_AAC.mp4
'
let
file
=
await
fs
.
open
(
path
)
fdPath
=
fdPath
+
''
+
file
.
fd
this
.
avPlayer
.
url
=
fdPath
let
f
ileDescriptor
=
undefined
// 使用资源管理模块的getRawFileDescriptor获取集成在应用中的媒体资源,并使用AVPlayer的fdSrc属性完成媒体资源初始化
//
其中的参数fd/offset/length定义请查看媒体API文档,globalThis.abilityContext参数为系统环境变量,在系统启动时在主界面保存为全局变量
await
globalThis
.
abilityContext
.
resourceManager
.
getRawFileDescriptor
(
'
H264_AAC.mp4
'
).
then
((
value
)
=>
{
fileDescriptor
=
{
fd
:
value
.
fd
,
offset
:
value
.
offset
,
length
:
value
.
length
}
})
this
.
avPlayer
.
fdSrc
=
fileDescriptor
}
}
```
...
...
zh-cn/application-dev/reference/apis/js-apis-media.md
浏览文件 @
3e649292
...
...
@@ -931,6 +931,14 @@ getTrackDescription(callback: AsyncCallback\<Array\<MediaDescription>>): void
**示例:**
```
js
printfDescription
(
obj
)
{
for
(
let
item
in
obj
)
{
let
property
=
obj
[
item
];
console
.
info
(
'
audio key is
'
+
item
);
console
.
info
(
'
audio value is
'
+
property
);
}
}
avPlayer
.
getTrackDescription
((
error
,
arrList
)
=>
{
if
((
arrList
)
!=
null
)
{
for
(
let
i
=
0
;
i
<
arrList
.
length
;
i
++
)
{
...
...
@@ -968,6 +976,14 @@ getTrackDescription(): Promise\<Array\<MediaDescription>>
```
js
let
arrayDescription
;
printfDescription
(
obj
)
{
for
(
let
item
in
obj
)
{
let
property
=
obj
[
item
];
console
.
info
(
'
audio key is
'
+
item
);
console
.
info
(
'
audio value is
'
+
property
);
}
}
avPlayer
.
getTrackDescription
().
then
((
arrList
)
=>
{
if
(
arrList
!=
null
)
{
arrayDescription
=
arrList
;
...
...
@@ -1557,6 +1573,8 @@ on(type: 'audioInterrupt', callback: (info: audio.InterruptEvent) => void): void
**示例:**
```
js
import
audio
from
'
@ohos.multimedia.audio
'
;
avPlayer
.
on
(
'
audioInterrupt
'
,
(
info
:
audio
.
InterruptEvent
)
=>
{
console
.
info
(
'
audioInterrupt success,and InterruptEvent info is:
'
+
info
)
})
...
...
@@ -1758,7 +1776,7 @@ let AVRecorderConfig = {
location
:
{
latitude
:
30
,
longitude
:
130
}
}
AV
Recorder
.
prepare
(
AVRecorderConfig
,
(
err
)
=>
{
av
Recorder
.
prepare
(
AVRecorderConfig
,
(
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
prepare success
'
);
}
else
{
...
...
@@ -1829,7 +1847,7 @@ let AVRecorderConfig = {
location
:
{
latitude
:
30
,
longitude
:
130
}
}
AV
Recorder
.
prepare
(
AVRecorderConfig
).
then
(()
=>
{
av
Recorder
.
prepare
(
AVRecorderConfig
).
then
(()
=>
{
console
.
info
(
'
prepare success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
prepare failed and catch error is
'
+
err
.
message
);
...
...
@@ -1870,7 +1888,7 @@ getInputSurface(callback: AsyncCallback\<string>): void
```
js
let
surfaceID
=
null
;
// 该surfaceID用于传递给相机接口创造videoOutput
AV
Recorder
.
getInputSurface
((
err
,
surfaceId
)
=>
{
av
Recorder
.
getInputSurface
((
err
,
surfaceId
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
getInputSurface success
'
);
surfaceID
=
surfaceId
;
...
...
@@ -1879,8 +1897,6 @@ AVRecorder.getInputSurface((err, surfaceId) => {
}
});
// videoOutput = await cameraManager.createVideoOutput(videoProfiles[0], surfaceID);
```
### getInputSurface<sup>9+</sup>
...
...
@@ -1916,14 +1932,12 @@ getInputSurface(): Promise\<string>
```
js
let
surfaceID
=
null
;
// 该surfaceID用于传递给相机接口创造videoOutput
AV
Recorder
.
getInputSurface
().
then
((
surfaceId
)
=>
{
av
Recorder
.
getInputSurface
().
then
((
surfaceId
)
=>
{
console
.
info
(
'
getInputSurface success
'
);
surfaceID
=
surfaceId
;
}).
catch
((
err
)
=>
{
console
.
info
(
'
getInputSurface failed and catch error is
'
+
err
.
message
);
});
// videoOutput = await cameraManager.createVideoOutput(videoProfiles[0], surfaceID);
```
### start<sup>9+</sup><a name=avrecorder_start></a>
...
...
@@ -1955,7 +1969,7 @@ start(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
start
((
err
)
=>
{
av
Recorder
.
start
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
start AVRecorder success
'
);
}
else
{
...
...
@@ -1993,7 +2007,7 @@ start(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
start
().
then
(()
=>
{
av
Recorder
.
start
().
then
(()
=>
{
console
.
info
(
'
start AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
start AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2029,7 +2043,7 @@ pause(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
pause
((
err
)
=>
{
av
Recorder
.
pause
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
pause AVRecorder success
'
);
}
else
{
...
...
@@ -2067,7 +2081,7 @@ pause(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
pause
().
then
(()
=>
{
av
Recorder
.
pause
().
then
(()
=>
{
console
.
info
(
'
pause AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
pause AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2103,7 +2117,7 @@ resume(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
resume
((
err
)
=>
{
av
Recorder
.
resume
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
resume AVRecorder success
'
);
}
else
{
...
...
@@ -2141,7 +2155,7 @@ resume(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
resume
().
then
(()
=>
{
av
Recorder
.
resume
().
then
(()
=>
{
console
.
info
(
'
resume AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
resume AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2179,7 +2193,7 @@ stop(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
stop
((
err
)
=>
{
av
Recorder
.
stop
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
stop AVRecorder success
'
);
}
else
{
...
...
@@ -2219,7 +2233,7 @@ stop(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
stop
().
then
(()
=>
{
av
Recorder
.
stop
().
then
(()
=>
{
console
.
info
(
'
stop AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
stop AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2254,7 +2268,7 @@ reset(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
reset
((
err
)
=>
{
av
Recorder
.
reset
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
reset AVRecorder success
'
);
}
else
{
...
...
@@ -2291,7 +2305,7 @@ reset(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
reset
().
then
(()
=>
{
av
Recorder
.
reset
().
then
(()
=>
{
console
.
info
(
'
reset AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
reset AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2325,7 +2339,7 @@ release(callback: AsyncCallback\<void>): void
**示例:**
```
js
AV
Recorder
.
release
((
err
)
=>
{
av
Recorder
.
release
((
err
)
=>
{
if
(
err
==
null
)
{
console
.
info
(
'
release AVRecorder success
'
);
}
else
{
...
...
@@ -2361,7 +2375,7 @@ release(): Promise\<void>
**示例:**
```
js
AV
Recorder
.
release
().
then
(()
=>
{
av
Recorder
.
release
().
then
(()
=>
{
console
.
info
(
'
release AVRecorder success
'
);
}).
catch
((
err
)
=>
{
console
.
info
(
'
release AVRecorder failed and catch error is
'
+
err
.
message
);
...
...
@@ -2386,9 +2400,8 @@ on(type: 'stateChange', callback: (state: AVRecorderState, reason: StateChangeRe
**示例:**
```
js
AV
Recorder
.
on
(
'
stateChange
'
,
async
(
state
,
reason
)
=>
{
av
Recorder
.
on
(
'
stateChange
'
,
async
(
state
,
reason
)
=>
{
console
.
info
(
'
case state has changed, new state is :
'
+
state
+
'
,and new reason is :
'
+
reason
);
}
});
```
...
...
@@ -2409,7 +2422,7 @@ off(type: 'stateChange'): void
**示例:**
```
js
AV
Recorder
.
off
(
'
stateChange
'
);
av
Recorder
.
off
(
'
stateChange
'
);
```
### on('error')<sup>9+</sup><a name=avrecorder_onerror></a>
...
...
@@ -2441,7 +2454,7 @@ on(type: 'error', callback: ErrorCallback): void
**示例:**
```
js
AV
Recorder
.
on
(
'
error
'
,
(
err
)
=>
{
av
Recorder
.
on
(
'
error
'
,
(
err
)
=>
{
console
.
info
(
'
case avRecorder.on(error) called, errMessage is
'
+
err
.
message
);
});
```
...
...
@@ -2472,7 +2485,7 @@ off(type: 'error'): void
**示例:**
```
js
AV
Recorder
.
off
(
'
error
'
);
av
Recorder
.
off
(
'
error
'
);
```
## AVRecorderState<sup>9+</sup>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录