Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
9ef17912
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看板
未验证
提交
9ef17912
编写于
8月 25, 2023
作者:
S
shuboxu
提交者:
Gitee
8月 25, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update en/application-dev/media/using-avrecorder-for-recording.md.
Signed-off-by:
N
shuboxu
<
xushubo1@huawei.com
>
上级
034e86dc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
16 deletion
+41
-16
en/application-dev/media/using-avrecorder-for-recording.md
en/application-dev/media/using-avrecorder-for-recording.md
+41
-16
未找到文件。
en/application-dev/media/using-avrecorder-for-recording.md
浏览文件 @
9ef17912
...
@@ -20,11 +20,11 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
...
@@ -20,11 +20,11 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```
ts
```
ts
import
media
from
'
@ohos.multimedia.media
'
;
import
media
from
'
@ohos.multimedia.media
'
;
let
avRecorder
=
undefined
;
let
avRecorder
:
media
.
AVRecorder
;
media
.
createAVRecorder
().
then
((
recorder
)
=>
{
media
.
createAVRecorder
().
then
((
recorder
:
media
.
AVRecorder
)
=>
{
avRecorder
=
recorder
;
avRecorder
=
recorder
;
},
(
err
)
=>
{
},
(
err
or
:
Error
)
=>
{
console
.
error
(
`
Invoke createAVRecorder failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`
createAVRecorder failed
`
);
})
})
```
```
...
@@ -37,13 +37,13 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
...
@@ -37,13 +37,13 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```
ts
```
ts
// Callback function for state changes.
// Callback function for state changes.
avRecorder
.
on
(
'
stateChange
'
,
(
state
,
r
eason
)
=>
{
avRecorder
.
on
(
'
stateChange
'
,
(
state
:
media
.
AVRecorderState
,
reason
:
media
.
StateChangeR
eason
)
=>
{
console
.
log
(
`current state is
${
state
}
`
);
console
.
log
(
`current state is
${
state
}
`
);
// You can add the action to be performed after the state is switched.
// You can add the action to be performed after the state is switched.
})
})
// Callback function for errors.
// Callback function for errors.
avRecorder
.
on
(
'
error
'
,
(
err
)
=>
{
avRecorder
.
on
(
'
error
'
,
(
err
:
BusinessError
)
=>
{
console
.
error
(
`avRecorder failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`avRecorder failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
})
```
```
...
@@ -62,21 +62,33 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
...
@@ -62,21 +62,33 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```
ts
```
ts
let
avProfile
=
{
class
AVProfile
{
audioBitrate
:
number
;
audioChannels
:
number
;
audioCodec
:
media
.
CodecMimeType
;
audioSampleRate
:
number
;
fileFormat
:
media
.
ContainerFormatType
;
}
class
AVConfig
{
audioSourceType
:
media
.
AudioSourceType
;
profile
:
AVProfile
;
url
:
string
}
let
avProfile
:
AVProfile
=
{
audioBitrate
:
100000
,
// Audio bit rate.
audioBitrate
:
100000
,
// Audio bit rate.
audioChannels
:
2
,
// Number of audio channels.
audioChannels
:
2
,
// Number of audio channels.
audioCodec
:
media
.
CodecMimeType
.
AUDIO_AAC
,
// Audio encoding format. Currently, only AAC is supported.
audioCodec
:
media
.
CodecMimeType
.
AUDIO_AAC
,
// Audio encoding format. Currently, only AAC is supported.
audioSampleRate
:
48000
,
// Audio sampling rate.
audioSampleRate
:
48000
,
// Audio sampling rate.
fileFormat
:
media
.
ContainerFormatType
.
CFT_MPEG_4A
,
// Encapsulation format. Currently, only M4A is supported.
fileFormat
:
media
.
ContainerFormatType
.
CFT_MPEG_4A
,
// Encapsulation format. Currently, only M4A is supported.
}
}
let
avConfig
=
{
let
avConfig
:
AVConfig
=
{
audioSourceType
:
media
.
AudioSourceType
.
AUDIO_SOURCE_TYPE_MIC
,
// Audio input source. In this example, the microphone is used.
audioSourceType
:
media
.
AudioSourceType
.
AUDIO_SOURCE_TYPE_MIC
,
// Audio input source. In this example, the microphone is used.
profile
:
avProfile
,
profile
:
avProfile
,
url
:
'
fd://35
'
,
// Obtain the file descriptor of the created audio file by referring to the sample code in Application File Access and Management.
url
:
'
fd://35
'
,
// Obtain the file descriptor of the created audio file by referring to the sample code in Application File Access and Management.
}
}
avRecorder
.
prepare
(
avConfig
).
then
(()
=>
{
avRecorder
.
prepare
(
avConfig
).
then
(()
=>
{
console
.
log
(
'
Invoke prepare succeeded.
'
);
console
.
log
(
'
Invoke prepare succeeded.
'
);
},
(
err
)
=>
{
},
(
err
:
BusinessError
)
=>
{
console
.
error
(
`Invoke prepare failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke prepare failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
})
```
```
...
@@ -100,17 +112,30 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
...
@@ -100,17 +112,30 @@ Read [AVRecorder](../reference/apis/js-apis-media.md#avrecorder9) for the API re
```
ts
```
ts
import
media
from
'
@ohos.multimedia.media
'
;
import
media
from
'
@ohos.multimedia.media
'
;
import
{
BusinessError
}
from
'
@ohos.base
'
;
class
AVProfile
{
audioBitrate
:
number
;
audioChannels
:
number
;
audioCodec
:
media
.
CodecMimeType
;
audioSampleRate
:
number
;
fileFormat
:
media
.
ContainerFormatType
;
}
class
AVConfig
{
audioSourceType
:
media
.
AudioSourceType
;
profile
:
AVProfile
;
url
:
string
}
export
class
AudioRecorderDemo
{
export
class
AudioRecorderDemo
{
private
avRecorder
;
private
avRecorder
:
media
.
AVRecorder
;
private
avProfile
=
{
private
avProfile
:
AVProfile
=
{
audioBitrate
:
100000
,
// Audio bit rate.
audioBitrate
:
100000
,
// Audio bit rate.
audioChannels
:
2
,
// Number of audio channels.
audioChannels
:
2
,
// Number of audio channels.
audioCodec
:
media
.
CodecMimeType
.
AUDIO_AAC
,
// Audio encoding format. Currently, only AAC is supported.
audioCodec
:
media
.
CodecMimeType
.
AUDIO_AAC
,
// Audio encoding format. Currently, only AAC is supported.
audioSampleRate
:
48000
,
// Audio sampling rate.
audioSampleRate
:
48000
,
// Audio sampling rate.
fileFormat
:
media
.
ContainerFormatType
.
CFT_MPEG_4A
,
// Encapsulation format. Currently, only M4A is supported.
fileFormat
:
media
.
ContainerFormatType
.
CFT_MPEG_4A
,
// Encapsulation format. Currently, only M4A is supported.
};
};
private
avConfig
=
{
private
avConfig
:
AVConfig
=
{
audioSourceType
:
media
.
AudioSourceType
.
AUDIO_SOURCE_TYPE_MIC
,
// Audio input source. In this example, the microphone is used.
audioSourceType
:
media
.
AudioSourceType
.
AUDIO_SOURCE_TYPE_MIC
,
// Audio input source. In this example, the microphone is used.
profile
:
this
.
avProfile
,
profile
:
this
.
avProfile
,
url
:
'
fd://35
'
,
// Create, read, and write a file by referring to the sample code in Application File Access and Management.
url
:
'
fd://35
'
,
// Create, read, and write a file by referring to the sample code in Application File Access and Management.
...
@@ -119,11 +144,11 @@ export class AudioRecorderDemo {
...
@@ -119,11 +144,11 @@ export class AudioRecorderDemo {
// Set AVRecorder callback functions.
// Set AVRecorder callback functions.
setAudioRecorderCallback
()
{
setAudioRecorderCallback
()
{
// Callback function for state changes.
// Callback function for state changes.
this
.
avRecorder
.
on
(
'
stateChange
'
,
(
state
,
r
eason
)
=>
{
this
.
avRecorder
.
on
(
'
stateChange
'
,
(
state
:
media
.
AVRecorderState
,
reason
:
media
.
StateChangeR
eason
)
=>
{
console
.
log
(
`AudioRecorder current state is
${
state
}
`
);
console
.
log
(
`AudioRecorder current state is
${
state
}
`
);
})
})
// Callback function for errors.
// Callback function for errors.
this
.
avRecorder
.
on
(
'
error
'
,
(
err
)
=>
{
this
.
avRecorder
.
on
(
'
error
'
,
(
err
:
BusinessError
)
=>
{
console
.
error
(
`AudioRecorder failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`AudioRecorder failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
})
}
}
...
@@ -158,7 +183,7 @@ export class AudioRecorderDemo {
...
@@ -158,7 +183,7 @@ export class AudioRecorderDemo {
async
stopRecordingProcess
()
{
async
stopRecordingProcess
()
{
// 1. Stop recording.
// 1. Stop recording.
if
(
this
.
avRecorder
.
state
===
'
started
'
if
(
this
.
avRecorder
.
state
===
'
started
'
||
this
.
avRecorder
.
state
===
'
paused
'
)
{
// stop() can be called only when the AVRecorder is in the started or paused state.
||
this
.
avRecorder
.
state
===
'
paused
'
)
{
// stop() can be called only when the AVRecorder is in the started or paused state.
await
this
.
avRecorder
.
stop
();
await
this
.
avRecorder
.
stop
();
}
}
// 2. Reset the AVRecorder.
// 2. Reset the AVRecorder.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录