Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
46691631
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看板
未验证
提交
46691631
编写于
3月 19, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 19, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2184 js-apis-audio.md
Merge pull request !2184 from li-yifan2/master
上级
b4401e67
70fbd649
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
1163 addition
and
97 deletion
+1163
-97
zh-cn/application-dev/reference/apis/js-apis-audio.md
zh-cn/application-dev/reference/apis/js-apis-audio.md
+1163
-97
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-audio.md
浏览文件 @
46691631
...
...
@@ -6,7 +6,8 @@
该模块提供以下音频相关的常用功能:
-
[
AudioManager
](
#audiomanager
)
:音频管理。
-
[
AudioRenderer
](
#audiorenderer8
)
:音频播放,用于播放PCM(Pulse Code Modulation)音频数据。
-
[
AudioRenderer
](
#audiorenderer8
)
:音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
-
[
AudioCapturer
](
#audiocapturer8
)
:音频采集,用于录制PCM(Pulse Code Modulation)音频数据。
## 导入模块
...
...
@@ -37,21 +38,73 @@ var audioManager = audio.getAudioManager();
createAudioRenderer(options: AudioRendererOptions): AudioRenderer
获取音频
播放
器。
获取音频
渲染
器。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数**
:
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------------------------------------- | ---- | ----------- |
| options |
[
AudioRendererOptions
](
#audiorendereroptions8
)
| 是 | 配置
播放器.
|
| ------- | ---------------------------------------------- | ---- | -----------
-
|
| options |
[
AudioRendererOptions
](
#audiorendereroptions8
)
| 是 | 配置
渲染器。
|
**返回值**
:
| 类型 | 说明 |
| -------------------------------- | ---------------- |
|
[
AudioRenderer
](
#audiorenderer8
)
| 音频播放器对象。 |
|
[
AudioRenderer
](
#audiorenderer8
)
| 音频渲染器对象。 |
**示例:**
```
var audioStreamInfo = {
samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
channels: audio.AudioChannel.CHANNEL_1,
sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}
var audioRendererInfo = {
content: audio.ContentType.CONTENT_TYPE_SPEECH,
usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
rendererFlags: 1
}
var audioRendererOptions = {
streamInfo: audioStreamInfo,
rendererInfo: audioRendererInfo
}
audio.createAudioRenderer(audioRendererOptions,(err, data) => {
if (err) {
console.error(`AudioRender Created : Error: ${err.message}`);
}
else {
console.info('AudioRender Created : Success : SUCCESS');
audioRenderer = data;
}
});
```
## audio.createAudioRenderer<sup>8+</sup>
createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer
\>
获取音频渲染器。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------ | :--------------------------------------------- | :--- | :----------- |
| options |
[
AudioRendererOptions
](
#audiorendereroptions8
)
| 是 | 配置渲染器。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------- | ---------------- |
| Promise
<
[
AudioRenderer
](
#audiorenderer8
)
>
| 音频播放器对象。 |
**示例:**
...
...
@@ -77,6 +130,95 @@ var audioRendererOptions = {
let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
```
## audio.createAudioCapturer<sup>8+</sup>
createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer
\>
): void
获取音频采集器。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------------------------------- | :--- | :--------------- |
| options |
[
AudioCapturerOptions
](
#AudioCapturerOptions
)
| 是 | 配置音频采集器。 |
| callback | AsyncCallback
<
[
AudioCapturer
](
#AudioCapturer
)
>
| 是 | 音频采集器对象。 |
**示例:**
```
var audioStreamInfo = {
samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
channels: audio.AudioChannel.CHANNEL_2,
sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}
var audioCapturerInfo = {
source: audio.SourceType.SOURCE_TYPE_MIC,
capturerFlags: 1
}
var audioCapturerOptions = {
streamInfo: audioStreamInfo,
capturerInfo: audioCapturerInfo
}
audio.createAudioCapturer(audioCapturerOptions,(err, data) => {
if (err) {
console.error(`AudioCapturer Created : Error: ${err.message}`);
}
else {
console.info('AudioCapturer Created : Success : SUCCESS');
audioCapturer = data;
}
});
```
## audio.createAudioCapturer<sup>8+</sup>
createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer
\>
获取音频采集器。使用promise 方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------ | :------------------- | :--- | :--------------- |
| options | AudioCapturerOptions | 是 | 配置音频采集器。 |
**返回值:**
| 类型 | 说明 |
| ----------------------------------------- | -------------- |
| Promise
<
[
AudioCapturer
](
#AudioCapturer8
)
>
| 音频采集器对象 |
**示例:**
```
var audioStreamInfo = {
samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
channels: audio.AudioChannel.CHANNEL_2,
sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
}
var audioCapturerInfo = {
source: audio.SourceType.SOURCE_TYPE_MIC,
capturerFlags: 1
}
var audioCapturerOptions = {
streamInfo: AudioStreamInfo,
capturerInfo: AudioCapturerInfo
}
let audioCapturer = await audio.createAudioCapturer(audioCapturerOptions);
```
## AudioVolumeType
枚举,音频流类型。
...
...
@@ -123,12 +265,12 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 默认值 | 描述 |
| -------------- | ------ | --------------------------------------------------------- |
| --------------
-
| ------ | --------------------------------------------------------- |
| INVALID | 0 | 无效设备。 |
| EARPIECE | 1 | 听筒。 |
| SPEAKER | 2 | 扬声器。 |
| WIRED_HEADSET | 3 | 有线耳机,带麦克风。 |
| WIRED_HEADPHONE
| 4 | 有线耳机,无麦克风。
|
| WIRED_HEADPHONE
| 4 | 有线耳机,无麦克风。
|
| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
| BLUETOOTH_A2DP | 8 | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
| MIC | 15 | 麦克风。 |
...
...
@@ -213,22 +355,22 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| ENCODING_TYPE_INVALID | -1 | 无效。 |
| ENCODING_TYPE_RAW | 0 | PCM编码。 |
## ContentType
<sup>8+</sup>
## ContentType
枚举,音频内容类型。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 |
| ------------------------- | ------ | ---------- |
| -------------------------
---------
| ------ | ---------- |
| CONTENT_TYPE_UNKNOWN | 0 | 未知类型。 |
| CONTENT_TYPE_SPEECH | 1 | 语音。 |
| CONTENT_TYPE_MUSIC | 2 | 音乐。 |
| CONTENT_TYPE_MOVIE | 3 | 电影。 |
| CONTENT_TYPE_SONIFICATION | 4 | 加密类型。 |
| CONTENT_TYPE_RINGTONE
| 5 | 铃声。 |
| CONTENT_TYPE_RINGTONE
<sup>
8+
</sup>
| 5 | 铃声。 |
## StreamUsage
<sup>8+</sup>
## StreamUsage
枚举,音频流使用类型。
...
...
@@ -239,7 +381,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| STREAM_USAGE_UNKNOWN | 0 | 未知类型。 |
| STREAM_USAGE_MEDIA | 1 | 音频。 |
| STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE |
3
| 通知铃声。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE |
6
| 通知铃声。 |
## AudioState<sup>8+</sup>
...
...
@@ -259,7 +401,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
## AudioRendererRate<sup>8+</sup>
枚举,
播放
速度。
枚举,
音频渲染
速度。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -269,7 +411,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| RENDER_RATE_DOUBLE | 1 | 2倍速。 |
| RENDER_RATE_HALF | 2 | 0.5倍数。 |
## InterruptType
<sup>8+</sup>
## InterruptType
枚举,中断类型。
...
...
@@ -280,7 +422,7 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 |
| INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 |
## InterruptForceType<sup>
8
+</sup>
## InterruptForceType<sup>
9
+</sup>
枚举,强制打断类型。
...
...
@@ -291,20 +433,20 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| INTERRUPT_FORCE | 0 | 由系统进行操作,强制打断音频播放。 |
| INTERRUPT_SHARE | 1 | 由应用进行操作,可以选择打断或忽略。 |
## InterruptHint
<sup>8+</sup>
## InterruptHint
枚举,中断提示。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 默认值 | 描述 |
| --------------------- | ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE | 0 | 无提示。 |
| ---------------------
-------------
| ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE
<sup>
8+
</sup>
| 0 | 无提示。 |
| INTERRUPT_HINT_RESUME | 1 | 提示音频恢复。 |
| INTERRUPT_HINT_PAUSE | 2 | 提示音频暂停。 |
| INTERRUPT_HINT_STOP | 3 | 提示音频停止。 |
| INTERRUPT_HINT_DUCK | 4 | 提示音频躲避。(躲避:音量减弱,而不会停止) |
| INTERRUPT_HINT_UNDUCK | 5 | 提示音量恢复。 |
| INTERRUPT_HINT_UNDUCK
<sup>
8+
</sup>
| 5 | 提示音量恢复。 |
## InterruptActionType
...
...
@@ -334,28 +476,28 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
## AudioRendererInfo<sup>8+</sup>
音频
播放
器信息。
音频
渲染
器信息。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 类型 | 必填 | 说明 |
| ------------- | ---------------------------
-
| ---- | ---------------- |
| contentType |
[
ContentType
](
#contenttype
8
)
| 是 | 媒体类型。 |
| usage |
[
StreamUsage
](
#streamusage
8
)
| 是 | 音频流使用类型。 |
| rendererFlags | number
| 是 | 音频播放
器标志。 |
| ------------- | --------------------------- | ---- | ---------------- |
| contentType |
[
ContentType
](
#contenttype
)
| 是 | 媒体类型。 |
| usage |
[
StreamUsage
](
#streamusage
)
| 是 | 音频流使用类型。 |
| rendererFlags | number
| 是 | 音频渲染
器标志。 |
## AudioRendererOptions<sup>8+</sup>
音频
播放
器选项信息。
音频
渲染
器选项信息。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 类型 | 必填 | 说明 |
| ------------ | ---------------------------------------- | ---- | ---------------- |
| streamInfo |
[
AudioStreamInfo
](
#audiostreaminfo8
)
| 是 | 表示音频流信息。 |
| rendererInfo |
[
AudioRendererInfo
](
#audiorendererinfo8
)
| 是 | 表示
播放
器信息。 |
| rendererInfo |
[
AudioRendererInfo
](
#audiorendererinfo8
)
| 是 | 表示
渲染
器信息。 |
## InterruptEvent<sup>
8
+</sup>
## InterruptEvent<sup>
9
+</sup>
播放中断时,应用接收的中断事件。
...
...
@@ -363,9 +505,9 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| eventType |
[
InterruptType
](
#interrupttype
8
)
| 是 | 中断事件类型,开始或是结束。 |
| forceType |
[
InterruptForceType
](
#interruptforcetype
8
)
| 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType |
[
InterruptHint
](
#interrupthint
8
)
| 是 | 中断提示。 |
| eventType |
[
InterruptType
](
#interrupttype
)
| 是 | 中断事件类型,开始或是结束。 |
| forceType |
[
InterruptForceType
](
#interruptforcetype
9
)
| 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType |
[
InterruptHint
](
#interrupthint
)
| 是 | 中断提示。 |
## AudioInterrupt
...
...
@@ -377,8 +519,8 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| streamUsage |
[
StreamUsage
](
#streamusage
8
)
| 是 | 音频流使用类型。 |
| contentType |
[
ContentType
](
#contenttype
8
)
| 是 | 音频打断媒体类型。 |
| streamUsage |
[
StreamUsage
](
#streamusage
)
| 是 | 音频流使用类型。 |
| contentType |
[
ContentType
](
#contenttype
)
| 是 | 音频打断媒体类型。 |
| pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
## InterruptAction
...
...
@@ -392,14 +534,16 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| 名称 | 类型 | 必填 | 说明 |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| actionType |
[
InterruptActionType
](
#interruptactiontype
)
| 是 | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
| type |
[
InterruptType
](
#interrupttype
8
)
| 否 | 打断事件类型。 |
| hint |
[
InterruptHint
](
interrupthint
8
)
| 否 | 打断事件提示。 |
| type |
[
InterruptType
](
#interrupttype
)
| 否 | 打断事件类型。 |
| hint |
[
InterruptHint
](
interrupthint
)
| 否 | 打断事件提示。 |
| activated | boolean | 否 | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |
## VolumeEvent<sup>8+</sup>
音量改变时,应用接收的事件。
此接口为系统接口,三方应用不支持。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Volume
| 名称 | 类型 | 必填 | 说明 |
...
...
@@ -408,6 +552,65 @@ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
| updateUi | boolean | 是 | 在UI中显示音量变化。 |
## DeviceChangeAction
描述设备连接状态变化和设备信息。
**系统能力:**
SystemCapability.Multimedia.Audio.Device
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| :---------------- | :------------------------------------------------ | :--- | :----------------- |
| type |
[
DeviceChangeType
](
#DeviceChangeType
)
| 是 | 设备连接状态变化。 |
| deviceDescriptors |
[
AudioDeviceDescriptors
](
#AudioDeviceDescriptors
)
| 是 | 设备信息。 |
## DeviceChangeType
枚举,设备连接状态变化。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 默认值 | 描述 |
| :--------- | :----- | :------------- |
| CONNECT | 0 | 设备连接。 |
| DISCONNECT | 1 | 断开设备连接。 |
## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a>
描述音频采集器信息。
**系统能力:**
SystemCapability.Multimedia.Audio.Core
| 名称 | 类型 | 必填 | 说明 |
| :------------ | :------------------------ | :--- | :--------------- |
| source |
[
SourceType
](
#sourcetype
)
| 是 | 音源类型。 |
| capturerFlags | number | 是 | 音频采集器标志。 |
## SourceType<sup>8+</sup><a name="sourcetype"></a>
枚举,音源类型。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
| 名称 | 默认值 | 描述 |
| :------------------ | :----- | :------------- |
| SOURCE_TYPE_INVALID | -1 | 无效的音频源。 |
| SOURCE_TYPE_MIC | 0 | Mic音频源。 |
## AudioScene<sup>8+</sup><a name="audioscene"></a>
枚举,音频场景。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Communication
| 名称 | 默认值 | 描述 |
| :------------------------------------------------- | :----- | :------------- |
| AUDIO_SCENE_DEFAULT | 0 | 默认音频场景。 |
| AUDIO_SCENE_RINGING(系统接口,三方应用不支持) | 1 | 响铃模式。 |
| AUDIO_SCENE_PHONE_CALL(系统接口,三方应用不支持) | 2 | 电话模式。 |
| AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 |
## AudioManager
管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过
[
getAudioManager
](
#audiogetaudiomanager
)
创建实例。
...
...
@@ -1325,12 +1528,14 @@ audioManager.isMicrophoneMute().then((value) => {
})
```
### on('volumeChange')
### on('volumeChange')
<sup>8+</sup>
on(type: 'volumeChange', callback: Callback
\<
VolumeEvent>): void
监听系统音量变化事件。
此接口为系统接口,三方应用不支持。
**系统能力:**
SystemCapability.Multimedia.Audio.Volume
**参数:**
...
...
@@ -1350,12 +1555,14 @@ audioManager.on('volumeChange', (volumeEvent) => {
})
```
### on('ringerModeChange')
### on('ringerModeChange')
<sup>8+</sup>
on(type: 'ringerModeChange', callback: Callback
\<
AudioRingMode>): void
监听铃声模式变化事件。
此接口为系统接口,三方应用不支持。
**系统能力:**
SystemCapability.Multimedia.Audio.Communication
**参数:**
...
...
@@ -1365,6 +1572,57 @@ on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
| type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
| callback | Callback
<
[
AudioRingMode
](
#audioringmode
)
>
| 是 | 回调方法。 |
### on('deviceChange')
on(type: 'deviceChange', callback: Callback<DeviceChangeAction
\>
): void
设备更改。音频设备连接状态变化。
**系统能力:**
SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<
[
DeviceChangeAction
](
#DeviceChangeAction
)
\>
| 是 | 获取设备更新详情。 |
**示例:**
```
audioManager.on('deviceChange', (deviceChanged) => {
console.info("device change type : " + deviceChanged.type);
console.info("device descriptor size : " + deviceChanged.deviceDescriptors.length);
console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceRole);
console.info("device change descriptor : " + deviceChanged.deviceDescriptors[0].deviceType);
});
```
### off('deviceChange')
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction
\>
): void
取消订阅音频设备连接变化事件。
本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。
**系统能力:**
SystemCapability.Multimedia.Audio.Device
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback
<
[
DeviceChangeAction
](
#DeviceChangeAction
)
>
| 否 | 获取设备更新详情。 |
**示例:**
```
audioManager.off('deviceChange', (deviceChanged) => {
console.log("Should be no callback.");
});
```
### on('interrupt')
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback
\<
InterruptAction>): void
...
...
@@ -1437,6 +1695,118 @@ this.audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
});
```
### setAudioScene<sup>8+</sup>
setAudioScene
\(
scene: AudioScene, callback: AsyncCallback<void
\>\)
: void
设置音频场景模式,使用callback方式异步返回结果。
此接口为系统接口,三方应用不支持。
**系统能力:**
SystemCapability.Multimedia.Audio.Communication
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------------------- | :--- | :------------------- |
| scene |
<a
href=
"#audioscene"
>
AudioScene
</a>
| 是 | 音频场景模式。 |
| callback | AsyncCallback<void
\>
| 是 | 用于返回结果的回调。 |
**示例:**
```
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
if (err) {
console.error('Failed to set the audio scene mode. ${err.message}');
return;
}
console.log('Callback invoked to indicate a successful setting of the audio scene mode.');
});
```
### setAudioScene<sup>8+</sup>
setAudioScene
\(
scene: AudioScene
\)
: Promise<void
\>
设置音频场景模式,使用Promise方式返回异步结果。
此接口为系统接口,三方应用不支持。
**系统能力:**
: SystemCapability.Multimedia.Audio.Communication
**Parameters**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----------------------------------- | :--- | :------------- |
| scene |
<a
href=
"#audioscene"
>
AudioScene
</a>
| 是 | 音频场景模式。 |
**返回值:**
| 类型 | 说明 |
| :------------- | :------------------- |
| Promise<void
\>
| 用于返回结果的回调。 |
**示例:**
```
audioManager.setAudioScene(audio.AudioSceneMode.AUDIO_SCENE_PHONE_CALL).then(() => {
console.log('Promise returned to indicate a successful setting of the audio scene mode.');
}).catch ((err) => {
console.log('Failed to set the audio scene mode');
});
```
### getAudioScene<sup>8+</sup>
getAudioScene
\(
callback: AsyncCallback<AudioScene
\>\)
: void
获取音频场景模式,使用callback方式返回异步结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Communication
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------------------------- | :--- | :--------------------------- |
| callback | AsyncCallback
<
<
a
href=
"#audioscene"
>
AudioScene
</a>
> | 是 | 用于返回音频场景模式的回调。 |
**示例:**
```
audioManager.getAudioScene((err, value) => {
if (err) {
console.error('Failed to obtain the audio scene mode. ${err.message}');
return;
}
console.log('Callback invoked to indicate that the audio scene mode is obtained.' + value);
});
```
### getAudioScene<sup>8+</sup>
getAudioScene
\(\)
: Promise<AudioScene
\>
获取音频场景模式,使用Promise方式返回异步结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Communication
**返回值:**
| 类型 | 说明 |
| :-------------------------------------------- | :--------------------------- |
| Promise
<
<
a
href=
"#audioscene"
>
AudioScene
</a>
> | 用于返回音频场景模式的回调。 |
**示例:**
```
audioManager.getAudioScene().then((value) => {
console.log('Promise returned to indicate that the audio scene mode is obtained.' + value);
}).catch ((err) => {
console.log('Failed to obtain the audio scene mode');
});
```
## AudioDeviceDescriptor
描述音频设备。
...
...
@@ -1486,13 +1856,21 @@ promise.then(async function (audioDeviceDescriptors) {
## AudioRenderer<sup>8+</sup>
提供音频播放的相关接口。在调用AudioRenderer的接口前,需要先通过
[
createAudioRenderer
](
#audiocreateaudiorenderer8
)
创建实例。
提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过
[
createAudioRenderer
](
#audiocreateaudiorenderer8
)
创建实例。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
### state<sup>8+</sup>
只读 state: AudioState
### 属性
定义当前渲染器的状态。
**参数:**
| 名称 |
类型
| 可读 | 可写 | 说明 |
| 名称 |
参数型
| 可读 | 可写 | 说明 |
| ----- | -------------------------- | ---- | ---- | ------------------ |
| state |
[
AudioState
](
#audiostate8
)
| 是 | 否 |
当前播放
器的状态。 |
| state |
[
AudioState
](
#audiostate8
)
| 是 | 否 |
音频渲染
器的状态。 |
**示例:**
...
...
@@ -1504,15 +1882,15 @@ var state = audioRenderer.state;
getRendererInfo(callback: AsyncCallback<AudioRendererInfo
\>
): void
获取当前被创建的音频
播放
器的信息,使用callback方式异步返回结果。
获取当前被创建的音频
渲染
器的信息,使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------------------------------------- | :--- | :---------------------
----
|
| callback | AsyncCallback<
[
AudioRendererInfo
](
#audiorendererinfo8
)
\>
| 是 |
回调返回音频播放
器的信息。 |
| :------- | :------------------------------------------------------- | :--- | :--------------------- |
| callback | AsyncCallback<
[
AudioRendererInfo
](
#audiorendererinfo8
)
\>
| 是 |
返回音频渲染
器的信息。 |
**示例:**
...
...
@@ -1529,7 +1907,7 @@ audioRenderer.getRendererInfo((err, rendererInfo)=>{
getRendererInfo(): Promise<AudioRendererInfo
\>
获取当前被创建的音频
播放
器的信息,使用Promise方式异步返回结果。
获取当前被创建的音频
渲染
器的信息,使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1537,7 +1915,7 @@ getRendererInfo(): Promise<AudioRendererInfo\>
| 类型 | 说明 |
| -------------------------------------------------- | ------------------------------- |
| Promise<
[
AudioRendererInfo
](
#audiorendererinfo8
)
\>
| Promise用于返回音频
播放
器信息。 |
| Promise<
[
AudioRendererInfo
](
#audiorendererinfo8
)
\>
| Promise用于返回音频
渲染
器信息。 |
**示例:**
...
...
@@ -1545,9 +1923,9 @@ getRendererInfo(): Promise<AudioRendererInfo\>
let streamInfo = await audioRenderer.getStreamInfo();
console.log('Renderer GetStreamInfo:');
console.log('Renderer sampling rate:' + streamInfo.samplingRate);
console.log('Renderer channel:' + streamInfo.
AudioChannel
);
console.log('Renderer format:' + streamInfo.
AudioS
ampleFormat);
console.log('Renderer encoding type:' + streamInfo.
AudioE
ncodingType);
console.log('Renderer channel:' + streamInfo.
channels
);
console.log('Renderer format:' + streamInfo.
s
ampleFormat);
console.log('Renderer encoding type:' + streamInfo.
e
ncodingType);
```
### getStreamInfo<sup>8+</sup>
...
...
@@ -1570,9 +1948,9 @@ getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
audioRenderer.getStreamInfo((err, streamInfo)=>{
console.log('Renderer GetStreamInfo:');
console.log('Renderer sampling rate:' + streamInfo.samplingRate);
console.log('Renderer channel:' + streamInfo.
AudioChannel
);
console.log('Renderer format:' + streamInfo.
AudioS
ampleFormat);
console.log('Renderer encoding type:' + streamInfo.
AudioE
ncodingType);
console.log('Renderer channel:' + streamInfo.
channels
);
console.log('Renderer format:' + streamInfo.
s
ampleFormat);
console.log('Renderer encoding type:' + streamInfo.
e
ncodingType);
})
```
...
...
@@ -1605,7 +1983,7 @@ console.log('Renderer encoding type:' + streamInfo.AudioEncodingType);
start(callback: AsyncCallback<void
\>
): void
启动音频
播放
器。使用callback方式异步返回结果。
启动音频
渲染
器。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1631,7 +2009,7 @@ audioRenderer.start((err)=>{
start(): Promise<void
\>
启动音频
播放
器。使用Promise方式异步返回结果。
启动音频
渲染
器。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1651,7 +2029,7 @@ await audioRenderer.start();
pause(callback: AsyncCallback
\<
void>): void
暂停
音频播放器
。使用callback方式异步返回结果。
暂停
渲染
。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1677,7 +2055,7 @@ audioRenderer.pause((err)=>{
pause(): Promise
\<
void>
暂停
音频播放器
。使用Promise方式异步返回结果。
暂停
渲染
。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1697,7 +2075,7 @@ await audioRenderer.pause();
drain(callback: AsyncCallback
\<
void>): void
检查
播放
缓冲区是否已被耗尽。使用callback方式异步返回结果。
检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1723,7 +2101,7 @@ audioRenderer.drain((err)=>{
drain(): Promise
\<
void>
检查
播放
缓冲区是否已被耗尽。使用Promise方式异步返回结果。
检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1743,7 +2121,7 @@ await audioRenderer.drain();
stop(callback: AsyncCallback
\<
void>): void
停止
播放
。使用callback方式异步返回结果。
停止
渲染
。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1769,7 +2147,7 @@ audioRenderer.stop((err)=>{
stop(): Promise
\<
void>
停止
播放
。使用Promise方式异步返回结果。
停止
渲染
。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1789,7 +2167,7 @@ await audioRenderer.stop();
release(callback: AsyncCallback
\<
void>): void
释放音频
播放
器。使用callback方式异步返回结果。
释放音频
渲染
器。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1893,7 +2271,7 @@ if (writtenbytes < 0) {
getAudioTime(callback: AsyncCallback
\<
number>): void
获取时间戳。使用callback方式异步返回结果。
获取时间戳
(从 1970 年 1 月 1 日开始)
。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1915,7 +2293,7 @@ audioRenderer.getAudioTime((err, timestamp)=>{
getAudioTime(): Promise
\<
number>
获取时间戳。使用Promise方式异步返回结果。
获取时间戳
(从 1970 年 1 月 1 日开始)
。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1936,7 +2314,7 @@ console.log('Current timestamp: ' + timestamp);
getBufferSize(callback: AsyncCallback
\<
number>): void
获取音频
播放
器的最小缓冲区大小。使用callback方式异步返回结果。
获取音频
渲染
器的最小缓冲区大小。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1962,7 +2340,7 @@ ss.readSync(buf);
getBufferSize(): Promise
\<
number>
获取音频
播放
器的最小缓冲区大小。使用Promise方式异步返回结果。
获取音频
渲染
器的最小缓冲区大小。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1984,7 +2362,7 @@ ss.readSync(buf);
setRenderRate(rate: AudioRendererRate, callback: AsyncCallback
\<
void>): void
设置音频
播放
速率。使用callback方式异步返回结果。
设置音频
渲染
速率。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -1992,7 +2370,7 @@ setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ------------------------ |
| rate |
[
AudioRendererRate
](
#audiorendererrate8
)
| 是 |
播放
的速率。 |
| rate |
[
AudioRendererRate
](
#audiorendererrate8
)
| 是 |
渲染
的速率。 |
| callback | AsyncCallback
\<
void> | 是 | 用于返回执行结果的回调。 |
**示例:**
...
...
@@ -2011,7 +2389,7 @@ audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err)=>
setRenderRate(rate: AudioRendererRate): Promise
\<
void>
设置音频
播放
速率。使用Promise方式异步返回结果。
设置音频
渲染
速率。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -2019,7 +2397,7 @@ setRenderRate(rate: AudioRendererRate): Promise\<void>
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ---------------------------------------- | ---- | ------------ |
| rate |
[
AudioRendererRate
](
#audiorendererrate8
)
| 是 |
播放
的速率。 |
| rate |
[
AudioRendererRate
](
#audiorendererrate8
)
| 是 |
渲染
的速率。 |
**返回值:**
...
...
@@ -2037,7 +2415,7 @@ await audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL);
getRenderRate(callback: AsyncCallback
\<
AudioRendererRate>): void
获取当前
播放
速率。使用callback方式异步返回结果。
获取当前
渲染
速率。使用callback方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -2045,7 +2423,7 @@ getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback
<
[
AudioRendererRate
](
#audiorendererrate8
)
>
| 是 | 回调返回
播放
速率。 |
| callback | AsyncCallback
<
[
AudioRendererRate
](
#audiorendererrate8
)
>
| 是 | 回调返回
渲染
速率。 |
**示例:**
...
...
@@ -2059,7 +2437,7 @@ audioRenderer.getRenderRate((err, renderrate)=>{
getRenderRate(): Promise
\<
AudioRendererRate>
获取当前
播放
速率。使用Promise方式异步返回结果。
获取当前
渲染
速率。使用Promise方式异步返回结果。
**系统能力**
: SystemCapability.Multimedia.Audio.Renderer
...
...
@@ -2067,7 +2445,7 @@ getRenderRate(): Promise\<AudioRendererRate>
| 类型 | 说明 |
| ------------------------------------------------- | ------------------------- |
| Promise
<
[
AudioRendererRate
](
#audiorendererrate8
)
>
| Promise回调返回
播放
速率。 |
| Promise
<
[
AudioRendererRate
](
#audiorendererrate8
)
>
| Promise回调返回
渲染
速率。 |
**示例:**
...
...
@@ -2076,7 +2454,7 @@ let renderRate = await audioRenderer.getRenderRate();
console.log('getRenderRate: ' + renderrate);
```
### on('interrupt')<sup>
8
+</sup>
### on('interrupt')<sup>
9
+</sup>
on(type: 'interrupt', callback: Callback
\<
InterruptEvent>): void
...
...
@@ -2089,7 +2467,7 @@ on(type: 'interrupt', callback: Callback\<InterruptEvent>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'interrupt'(中断事件被触发,音频播放被中断。) |
| callback | Callback
<
[
InterruptEvent
](
#interruptevent
8
)
>
| 是 | 被监听的中断事件的回调。 |
| callback | Callback
<
[
InterruptEvent
](
#interruptevent
9
)
>
| 是 | 被监听的中断事件的回调。 |
**示例:**
...
...
@@ -2121,5 +2499,693 @@ audioRenderer.on('interrupt', (interruptEvent) => {
})
```
### on('markReach')<sup>8+</sup>
on(type: 'markReach', frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :---------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
| callback | (position: number) => {} | 是 | 触发事件时调用的回调。 |
**示例:**
```
audioRenderer.on('markReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('markReach') <sup>8+</sup>
off(type: 'markReach'): void
取消订阅标记事件。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :------------------------------------------------ |
| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
**示例:**
```
audioRenderer.off('markReach');
```
### on('periodReach') <sup>8+</sup>
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被循环调用。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
| callback | (position: number) => {} | 是 | 触发事件时调用的回调。 |
**示例:**
```
audioRenderer.on('periodReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('periodReach') <sup>8+</sup>
off(type: 'periodReach'): void
取消订阅标记事件。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :-------------------------------------------------- |
| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
**示例:**
```
audioRenderer.off('periodReach')
```
### on('stateChange') <sup>8+</sup>
on(type: 'stateChange', callback: Callback<AudioState
\>
): void
订阅监听状态变化。
**系统能力:**
SystemCapability.Multimedia.Audio.Renderer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
| callback |
[
AudioState
](
#AudioState8
)
| 是 | 返回监听的状态。 |
**示例:**
```
audioRenderer.on('stateChange', (state) => {
if (state == 1) {
console.log("audio renderer state is: STATE_PREPARED");
}
if (state == 2) {
console.log("audio renderer state is: STATE_RUNNING");
}
});
```
## AudioCapturer<sup>8+</sup>
提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过
[
createAudioCapturer
](
#audiocreateaudiocapturer8
)
创建实例。
### state<sup>8+</sup>
只读 state: AudioState
定义当前采集器状态。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
| 名称 | 参数型 | 可读 | 可写 | 说明 |
| :---- | :------------------------- | :--- | :--- | :--------------- |
| state |
[
AudioState
](
#audiostate8
)
| Yes | No | 音频采集器状态。 |
**示例:**
```
var state = audioCapturer.state;
```
### getCapturerInfo<sup>8+</sup>
getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo
\>
): void
获取采集器信息。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<AudioCapturerInfo
\>
| 是 | 使用callback方式异步返回采集器信息。 |
**示例:**
```
audioCapturer.getCapturerInfo((err, capturerInfo)=>{
if (err) {
console.error('Failed to get capture info');
} else {
console.log('Capturer getCapturerInfo:');
console.log('Capturer source:' + capturerInfo.source);
console.log('Capturer flags:' + capturerInfo.capturerFlags);
}
});
```
### getCapturerInfo<sup>8+</sup>
getCapturerInfo(): Promise<AudioCapturerInfo
\>
获取采集器信息。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------------------------------------------ | :---------------------------------- |
| Promise<
[
AudioCapturerInfo
](
#audiocapturerinfo
)
\>
| 使用Promise方式异步返回采集器信息。 |
**示例:**
```
audioCapturer.getCapturerInfo().then((capturerInfo) => {
console.log('Capturer getCapturerInfo:');
console.log('Capturer source:' + capturerInfo.source);
console.log('Capturer flags:' + capturerInfo.capturerFlags);
}).catch ((err) => {
console.log("Failed to get capturer info");
});
```
### getStreamInfo<sup>8+</sup>
getStreamInfo(callback: AsyncCallback<AudioStreamInfo
\>
): void
获取采集器流信息。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :-------------------------------------------------------- | :--- | :------------------------------- |
| callback | AsyncCallback<
[
AudioStreamInfo
](
#AudioRendererOptions8
)
\>
| 是 | 使用callback方式异步返回流信息。 |
**示例:**
```
audioCapturer.start((err)=>{
if (err) {
console.error('Failed to get stream info');
} else {
console.log('Capturer GetStreamInfo:');
console.log('Capturer sampling rate:' + streamInfo.samplingRate);
console.log('Capturer channel:' + streamInfo.channels);
console.log('Capturer format:' + streamInfo.sampleFormat);
console.log('Capturer encoding type:' + streamInfo.encodingType);
}
});
```
### getStreamInfo<sup>8+</sup>
getStreamInfo(): Promise<AudioStreamInfo
\>
获取采集器流信息。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :-------------------------------------------------- | :------------------------------ |
| Promise<
[
AudioStreamInfo
](
#AudioRendererOptions8
)
\>
| 使用Promise方式异步返回流信息。 |
**示例:**
```
audioCapturer.getStreamInfo().then((streamInfo) => {
console.log('Capturer GetStreamInfo:');
console.log('Capturer sampling rate:' + streamInfo.samplingRate);
console.log('Capturer channel:' + streamInfo.channels);
console.log('Capturer format:' + streamInfo.sampleFormat);
console.log('Capturer encoding type:' + streamInfo.encodingType);
}).catch ((err) => {
console.log("Failed to get stream info");
});
```
### start<sup>8+</sup>
start(callback: AsyncCallback<void
\>
): void
启动音频采集器。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void
\>
| 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.start((err)=>{
if (err) {
console.error('Capturer start failed.');
} else {
console.info('Capturer start success.');
}
});
```
### start<sup>8+</sup>
start(): Promise<void
\>
启动音频采集器。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void
\>
| 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.start().then(() => {
console.log("capturer start success");
}).catch ((err) => {
console.log("Failed to start capturer");
});
```
### stop<sup>8+</sup>
stop(callback: AsyncCallback<void
\>
): void
停止采集。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void
\>
| 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.stop((err)=>{
if (err) {
console.error('Capturer stop failed');
} else {
console.log('Capturer stopped.');
}
});
```
### stop<sup>8+</sup>
stop(): Promise<void
\>
停止采集。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void
\>
| 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.stop().then(() => {
console.log("capturer stop success");
}).catch ((err) => {
console.log("Failed to stop capturer");
});
```
### release<sup>8+</sup>
release(callback: AsyncCallback<void
\>
): void
释放采集器。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------- | :--- | :---------------------------------- |
| callback | AsyncCallback<void
\>
| 是 | Callback used to return the result. |
**示例:**
```
audioCapturer.release((err)=>{
if (err) {
console.error('capturer release failed');
} else {
console.log('capturer released.');
}
});
```
### release<sup>8+</sup>
release(): Promise<void
\>
释放采集器。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :------------- | :---------------------------- |
| Promise<void
\>
| 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.release().then(() => {
console.log("capturer release success");
}).catch ((err) => {
console.log("Failed to release capturer");
});
```
### read<sup>8+</sup>
read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer
\>
): void
读入缓冲区。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数**
| 参数名 | 类型 | 必填 | 说明 |
| :------------- | :-------------------------- | :--- | :------------------------------- |
| size | number | 是 | 读入的字节数。 |
| isBlockingRead | boolean | 是 | 是否阻塞读操作。 |
| callback | AsyncCallback<ArrayBuffer
\>
| 是 | 使用callback方式异步返回缓冲区。 |
**示例:**
```
audioCapturer.read(bufferSize, true, async(err, buffer) => {
if (!err) {
console.log("Success in reading the buffer data");
var number = fileio.writeSync(fd, buffer);
}
};
```
### read<sup>8+</sup>
read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer
\>
读入缓冲区。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------------- | :------ | :--- | :--------------- |
| size | number | 是 | 读入的字节数。 |
| isBlockingRead | boolean | 是 | 是否阻塞读操作。 |
**返回值:**
| 类型 | 说明 |
| :-------------------- | :----------------------------------------------------- |
| Promise<ArrayBuffer
\>
| 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
**示例:**
```
audioCapturer.read(size, true).then((buffer) => {
console.log("Success in reading the buffer data");
var number = fileio.writeSync(fd, buffer);
}).catch ((err) => {
console.log("Failed to read data!");
});
```
### getAudioTime<sup>8+</sup>
getAudioTime(callback: AsyncCallback<number
\>
): void
获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<number
\>
| 是 | 使用callback方式异步返回结果。 |
**示例:**
```
audioCapturer.getAudioTime((err, timestamp)=>{
console.log('Current timestamp: ' + timestamp);
});
```
### getAudioTime<sup>8+</sup>
getAudioTime(): Promise<number
\>
获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :--------------- | :---------------------------- |
| Promise<number
\>
| 使用Promise方式异步返回结果。 |
**示例:**
```
audioCapturer.getAudioTime().then((audioTime) => {
console.log("Success in getting the audio time");
}).catch ((err) => {
console.log("Failed to get the audio time");
});
```
### getBufferSize<sup>8+</sup>
getBufferSize(callback: AsyncCallback<number
\>
): void
获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :--------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<number
\>
| 是 | 使用callback方式异步返回缓冲区大小。 |
**示例:**
```
audioCapturer.getBufferSize((err, bufferSize)=>{
if (!err) {
console.log('BufferSize : ' + bufferSize);
var buffer = await audioCapturer.read(bufferSize, true);
}
});
```
### getBufferSize<sup>8+</sup>
getBufferSize(): Promise<number
\>
获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**返回值:**
| 类型 | 说明 |
| :--------------- | :---------------------------------- |
| Promise<number
\>
| 使用Promise方式异步返回缓冲区大小。 |
**示例:**
```
audioCapturer.getBufferSize().then((bufferSize) => {
console.log("Success in getting the buffer size");
var buffer = await audioCapturer.read(bufferSize, true);
}).catch ((err) => {
console.log("Failed to get the buffer size");
});
```
### on('markReach')<sup>8+</sup>
on(type: 'markReach', frame: number, callback: (position: number) => {}): void
订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :---------------------- | :--- | :----------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
| callback | position: number) => {} | 是 | 使用callback方式异步返回被触发事件的回调。 |
**示例:**
```
audioCapturer.on('markReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('markReach')<sup>8+</sup>
off(type: 'markReach'): void
取消订阅标记到达的事件。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :-------------------------------------------- |
| type | string | 是 | 取消事件回调类型,支持的事件为:'markReach'。 |
**示例:**
```
audioCapturer.off('markReach');
```
### on('periodReach')<sup>8+</sup>
on(type: "periodReach", frame: number, callback: (position: number) => {}): void
订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,回调被循环调用。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
| callback | (position: number) => {} | 是 | 使用callback方式异步返回被触发事件的回调 |
**示例:**
```
audioCapturer.on('periodReach', 1000, (position) => {
if (position == "1000") {
console.log('ON Triggered successfully');
}
});
```
### off('periodReach')<sup>8+</sup>
off(type: 'periodReach'): void
取消订阅标记到达的事件。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :----- | :----- | :--- | :---------------------------------------------- |
| type | string | Yes | 取消事件回调类型,支持的事件为:'periodReach'。 |
**示例:**
```
audioCapturer.off('periodReach')
```
### on('stateChange') <sup>8+</sup>
on(type: 'stateChange', callback: Callback<AudioState
\>
): void
订阅监听状态变化。
**系统能力:**
SystemCapability.Multimedia.Audio.Capturer
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 |
| callback |
[
AudioState
](
#AudioState8
)
| 是 | 返回监听的状态。 |
**示例:**
```
audioCapturer.on('stateChange', (state) => {
if (state == 1) {
console.log("audio capturer state is: STATE_PREPARED");
}
if (state == 2) {
console.log("audio capturer state is: STATE_RUNNING");
}
});
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录