Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
98bd8197
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看板
未验证
提交
98bd8197
编写于
3月 19, 2022
作者:
Z
zengyawen
提交者:
Gitee
3月 19, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重复语句修改
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
87ff04c5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
14 deletion
+13
-14
zh-cn/application-dev/media/audio-capturer.md
zh-cn/application-dev/media/audio-capturer.md
+13
-14
未找到文件。
zh-cn/application-dev/media/audio-capturer.md
浏览文件 @
98bd8197
#
AudioCapturer音频采集开发指南
#
音频采集开发指导
## 场景介绍
## 场景介绍
AudioCapturer提供了用于获取原始音频文件的方法。开发者可以通过本指导了解应用如何通过AudioCapturer采集音频。
AudioCapturer提供了用于获取原始音频文件的方法。开发者可以通过本指导了解应用如何通过AudioCapturer采集音频。
##
注意事项
##
# 状态检查
在进行应用开发的过程中,建议开发者通过on('stateChange')方法订阅AudioCapturer的状态变更。因为针对AudioCapturer的某些操作,仅在音频采集器在固定状态时才能执行。如果应用在音频采集器处于错误状态时执行操作,系统可能会抛出异常或生成其他未定义的行为。
在进行应用开发的过程中,建议开发者通过on('stateChange')方法订阅AudioCapturer的状态变更。因为针对AudioCapturer的某些操作,仅在音频采集器在固定状态时才能执行。如果应用在音频采集器处于错误状态时执行操作,系统可能会抛出异常或生成其他未定义的行为。
## 状态检查
应用程序开发人员应该记住,AudioCapturer 是基于状态的。
<br/>
也就是说,AudioCapturer 有一个内部状态,应用程序在调用录制器控制 API 时必须始终检查该状态,因为某些操作仅在录制器处于给定状态时才可接受。
如果应用程序在录制器处于不正确状态时执行操作,系统可能会抛出错误/异常或生成其他未定义的行为。
## 开发步骤
## 开发步骤
1.
使用createAudioCapturer()创建一个AudioCapturer实例。
<br/>
在audioCapturerOptions中设置音频采集器的相关参数。该实例可用于音频采集、控制和获取采集状态,以及注册通知回调。
1.
使用createAudioCapturer()创建一个AudioCapturer实例。
```
在audioCapturerOptions中设置音频采集器的相关参数。该实例可用于音频采集、控制和获取采集状态,以及注册通知回调。
```
js
var
audioStreamInfo
=
{
var
audioStreamInfo
=
{
samplingRate
:
audio
.
AudioSamplingRate
.
SAMPLE_RATE_44100
,
samplingRate
:
audio
.
AudioSamplingRate
.
SAMPLE_RATE_44100
,
channels
:
audio
.
AudioChannel
.
CHANNEL_1
,
channels
:
audio
.
AudioChannel
.
CHANNEL_1
,
...
@@ -39,10 +36,11 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
...
@@ -39,10 +36,11 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
var
state
=
audioRenderer
.
state
;
var
state
=
audioRenderer
.
state
;
```
```
2.
调用start()方法来启动/恢复采集任务。
2.
调用start()方法来启动/恢复采集任务。
启动完成后,采集器状态将变更为STATE_RUNNING,然后应用可以开始读取缓冲区。
启动完成后,采集器状态将变更为STATE_RUNNING,然后应用可以开始读取缓冲区。
```
```
js
await
audioCapturer
.
start
();
await
audioCapturer
.
start
();
if
(
audioCapturer
.
state
==
audio
.
AudioState
.
STATE_RUNNING
)
{
if
(
audioCapturer
.
state
==
audio
.
AudioState
.
STATE_RUNNING
)
{
console
.
info
(
'
AudioRecLog: Capturer started
'
);
console
.
info
(
'
AudioRecLog: Capturer started
'
);
...
@@ -53,15 +51,16 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
...
@@ -53,15 +51,16 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
3.
使用getBufferSize()方法获取要读取的最小缓冲区大小。
3.
使用getBufferSize()方法获取要读取的最小缓冲区大小。
```
```
js
var
bufferSize
=
await
audioCapturer
.
getBufferSize
();
var
bufferSize
=
await
audioCapturer
.
getBufferSize
();
console
.
info
(
'
AudioRecLog: buffer size:
'
+
bufferSize
);
console
.
info
(
'
AudioRecLog: buffer size:
'
+
bufferSize
);
```
```
4.
读取采集器的音频数据并将其转换为字节流。重复调用read()方法读取数据,直到应用准备停止采集。
4.
读取采集器的音频数据并将其转换为字节流。重复调用read()方法读取数据,直到应用准备停止采集。
参考以下示例,将采集到的数据写入文件。
参考以下示例,将采集到的数据写入文件。
```
```
js
import
fileio
from
'
@ohos.fileio
'
;
import
fileio
from
'
@ohos.fileio
'
;
const
path
=
'
/data/data/.pulse_dir/capture_js.wav
'
;
const
path
=
'
/data/data/.pulse_dir/capture_js.wav
'
;
...
@@ -106,7 +105,7 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
...
@@ -106,7 +105,7 @@ AudioCapturer提供了用于获取原始音频文件的方法。开发者可以
6.
任务结束,调用release()方法释放相关资源。
6.
任务结束,调用release()方法释放相关资源。
```
```
js
await
audioCapturer
.
release
();
await
audioCapturer
.
release
();
if
(
audioCapturer
.
state
==
audio
.
AudioState
.
STATE_RELEASED
)
{
if
(
audioCapturer
.
state
==
audio
.
AudioState
.
STATE_RELEASED
)
{
console
.
info
(
'
AudioRecLog: Capturer released
'
);
console
.
info
(
'
AudioRecLog: Capturer released
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录