diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md
index 0fddf9e9588d7165b64047f31cc65001127b671b..9c1611a5cb2fadd9e2eba5fe40d8815fbeb64796 100644
--- a/zh-cn/application-dev/reference/apis/js-apis-audio.md
+++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md
@@ -36,6 +36,34 @@ import audio from '@ohos.multimedia.audio';
const localNetworkId = audio.LOCAL_NETWORK_ID;
```
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| ------------------------------------ | -------| ------ | ---- | ------------------ |
+| DEFAULT_VOLUME_GROUP_ID9+ | number | 是 | 否 | 默认音量组id。 |
+
+**示例:**
+
+```js
+import audio from '@ohos.multimedia.audio';
+
+const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
+```
+
+**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
+
+| 名称 | 类型 | 可读 | 可写 | 说明 |
+| --------------------------------------- | -------| ------ | ---- | ------------------ |
+| DEFAULT_INTERRUPT_GROUP_ID9+ | number | 是 | 否 | 默认音频中断id。 |
+
+**示例:**
+
+```js
+import audio from '@ohos.multimedia.audio';
+
+const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;
+```
+
## audio.getAudioManager
getAudioManager(): AudioManager
@@ -263,6 +291,8 @@ createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback<TonePlay
**系统能力:** SystemCapability.Multimedia.Audio.Tone
+**系统接口:** 该接口为系统接口
+
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
@@ -281,6 +311,7 @@ let audioRendererInfo = {
"rendererFlags": 0
}
let tonePlayer;
+
audio.createTonePlayer(audioRendererInfo, (err, data) => {
console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`);
if (err) {
@@ -300,6 +331,8 @@ createTonePlayer(options: AudioRendererInfo): Promise<TonePlayer>
**系统能力:** SystemCapability.Multimedia.Audio.Tone
+**系统接口:** 该接口为系统接口
+
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
@@ -322,7 +355,7 @@ async function createTonePlayer(){
"streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
"rendererFlags": 0
}
- let tonePlayer = await audio.createTonePlayer(audioRendererInfo);
+ let tonePlayer = await audio.createTonePlayer(this.audioRendererInfo);
}
```
@@ -340,16 +373,29 @@ async function createTonePlayer(){
| VOICE_ASSISTANT8+ | 9 | 语音助手。 |
| ALL9+ | 100 | 所有公共音频流。
此接口为系统接口,三方应用不支持调用。|
+## InterruptRequestResultType9+
+
+枚举,音频中断请求结果类型。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
+
+**系统接口:** 该接口为系统接口
+
+| 名称 | 默认值 | 描述 |
+| ---------------------------- | ------ | ---------- |
+| INTERRUPT_REQUEST_GRANT | 0 | 请求音频中断成功。 |
+| INTERRUPT_REQUEST_REJECT | 1 | 请求音频中断失败,可能具有较高优先级类型。 |
+
## InterruptMode9+
枚举,焦点模型。
-**系统能力:** SystemCapability.Multimedia.Audio.Core
+**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
| 名称 | 默认值 | 描述 |
| ---------------------------- | ------ | ---------- |
-| SHARE_MODE | 0 | 共享焦点模式。 |
-| INDEPENDENT_MODE| 1 | 独立焦点模式。 |
+| SHARE_MODE | 0 | 共享焦点模式。 |
+| INDEPENDENT_MODE | 1 | 独立焦点模式。 |
## DeviceFlag
@@ -367,7 +413,6 @@ async function createTonePlayer(){
| DISTRIBUTED_INPUT_DEVICES_FLAG9+ | 8 | 分布式输入设备。
此接口为系统接口,三方应用不支持调用。 |
| ALL_DISTRIBUTED_DEVICES_FLAG9+ | 12 | 分布式输入和输出设备。
此接口为系统接口,三方应用不支持调用。 |
-
## DeviceRole
枚举,设备角色。
@@ -379,7 +424,6 @@ async function createTonePlayer(){
| INPUT_DEVICE | 1 | 输入设备角色。 |
| OUTPUT_DEVICE | 2 | 输出设备角色。 |
-
## DeviceType
枚举,设备类型。
@@ -399,10 +443,13 @@ async function createTonePlayer(){
| USB_HEADSET | 22 | USB耳机,带麦克风。 |
| DEFAULT9+ | 1000 | 默认设备类型。 |
-## ActiveDeviceType
+## ActiveDeviceType(deprecated)
枚举,活跃设备类型。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。
+
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
| 名称 | 默认值 | 描述 |
@@ -410,6 +457,16 @@ async function createTonePlayer(){
| SPEAKER | 2 | 扬声器。 |
| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
+## CommunicationDeviceType9
+
+枚举,用于通信的可用设备类型。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Communication
+
+| 名称 | 默认值 | 描述 |
+| ------------- | ------ | -------------|
+| SPEAKER | 2 | 扬声器。 |
+
## AudioRingMode
枚举,铃声模式。
@@ -437,6 +494,22 @@ async function createTonePlayer(){
| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
| SAMPLE_FORMAT_F32LE9+ | 4 | 带符号的32位整数,小尾数。
由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
+## AudioErrors9+
+
+枚举,音频错误码。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
+
+| 名称 | 默认值 | 描述 |
+| ---------------------| --------| --------------- |
+| ERROR_INVALID_PARAM | 6800101 | 无效入参。 |
+| ERROR_NO_MEMORY | 6800102 | 分配内存失败。 |
+| ERROR_ILLEGAL_STATE | 6800103 | 操作不支持。 |
+| ERROR_UNSUPPORTED | 6800104 | 参数选项不支持。 |
+| ERROR_TIMEOUT | 6800105 | 处理超时。 |
+| ERROR_STREAM_LIMIT | 6800201 | 音频数量达到限制。|
+| ERROR_SYSTEM | 6800301 | 系统处理异常。 |
+
## AudioChannel8+
枚举, 音频声道。
@@ -508,18 +581,17 @@ async function createTonePlayer(){
| STREAM_USAGE_VOICE_ASSISTANT9+ | 3 | 语音播报。 |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 |
-## FocusType9+
+## InterruptRequestType9+
-表示焦点类型的枚举。
+枚举,音频中断请求类型。
**系统接口:** 该接口为系统接口
-**系统能力:** SystemCapability.Multimedia.Audio.Core
-
-| 名称 | 默认值 | 描述 |
-| ---------------------------------- | ------ | ------------------------------- |
-| FOCUS_TYPE_RECORDING | 0 | 在录制场景使用,可打断其他音频。 |
+**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
+| 名称 | 默认值 | 描述 |
+| ---------------------------------- | ------ | ------------------------- |
+| INTERRUPT_REQUEST_TYPE_DEFAULT | 0 | 默认类型,可中断音频请求。 |
## AudioState8+
@@ -586,10 +658,13 @@ async function createTonePlayer(){
| INTERRUPT_HINT_DUCK | 4 | 提示音频躲避。(躲避:音量减弱,而不会停止) |
| INTERRUPT_HINT_UNDUCK8+ | 5 | 提示音量恢复。 |
-## InterruptActionType
+## InterruptActionType(deprecated)
枚举,中断事件返回类型。
+> **说明:**
+> 从 API Version 9 开始废弃。
+
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Renderer
| 名称 | 默认值 | 描述 |
@@ -603,12 +678,12 @@ async function createTonePlayer(){
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Core
-| 名称 | 类型 | 必填 | 说明 |
-| ------------ | ---------------------------------------- | ---- | ------------------ |
-| samplingRate | [AudioSamplingRate](#audiosamplingrate8) | 是 | 音频文件的采样率。 |
-| channels | [AudioChannel](#audiochannel8) | 是 | 音频文件的通道数。 |
-| sampleFormat | [AudioSampleFormat](#audiosampleformat8) | 是 | 音频采样格式。 |
-| encodingType | [AudioEncodingType](#audioencodingtype8) | 是 | 音频编码格式。 |
+| 名称 | 类型 | 必填 | 说明 |
+| ------------ | ------------------------------------------------- | ---- | ------------------ |
+| samplingRate | [AudioSamplingRate](#audiosamplingrate8) | 是 | 音频文件的采样率。 |
+| channels | [AudioChannel](#audiochannel8) | 是 | 音频文件的通道数。 |
+| sampleFormat | [AudioSampleFormat](#audiosampleformat8) | 是 | 音频采样格式。 |
+| encodingType | [AudioEncodingType](#audioencodingtype8) | 是 | 音频编码格式。 |
## AudioRendererInfo8+
@@ -622,6 +697,19 @@ async function createTonePlayer(){
| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 |
| rendererFlags | number | 是 | 音频渲染器标志。 |
+## InterruptResult9+
+
+音频中断结果。
+
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Interrupt
+
+**系统接口:** 该接口为系统接口
+
+| 名称 | 类型 | 必填 | 说明 |
+| --------------| -------------------------------------------------------------- | ---- | ---------------- |
+| requestResult | [InterruptRequestResultType](#interruptrequestresulttype9) | 是 | 表示音频请求中断类型。 |
+| interruptNode | number | 是 | 音频请求中断的节点。 |
+
## AudioRendererOptions8+
音频渲染器选项信息。
@@ -645,7 +733,10 @@ async function createTonePlayer(){
| forceType | [InterruptForceType](#interruptforcetype9) | 是 | 操作是由系统执行或是由应用程序执行。 |
| hintType | [InterruptHint](#interrupthint) | 是 | 中断提示。 |
-## AudioInterrupt
+## AudioInterrupt(deprecated)
+
+> **说明:**
+> 从 API Version 9 开始废弃。
音频监听事件传入的参数。
@@ -657,7 +748,10 @@ async function createTonePlayer(){
| contentType | [ContentType](#contenttype) | 是 | 音频打断媒体类型。 |
| pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
-## InterruptAction
+## InterruptAction(deprecated)
+
+> **说明:**
+> 从 API Version 9 开始废弃。
音频打断/获取焦点事件的回调方法。
@@ -702,7 +796,7 @@ async function createTonePlayer(){
**系统接口:** 该接口为系统接口
-**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Device
+**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Volume
| 名称 | 默认值 | 描述 |
| :------------------------------ | :----- | :--------------------- |
@@ -872,12 +966,15 @@ async function getRoutingManager(){
}
```
-### setVolume
+### setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
设置指定流的音量,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
@@ -904,12 +1001,15 @@ audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
});
```
-### setVolume
+### setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
设置指定流的音量,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
@@ -937,12 +1037,15 @@ audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
});
```
-### getVolume
+### getVolume(deprecated)
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的音量,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -964,12 +1067,15 @@ audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-### getVolume
+### getVolume(deprecated)
getVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的音量,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -992,12 +1098,15 @@ audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
});
```
-### getMinVolume
+### getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最小音量,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1019,12 +1128,15 @@ audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-### getMinVolume
+### getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最小音量,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1047,12 +1159,15 @@ audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
});
```
-### getMaxVolume
+### getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
获取指定流的最大音量,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1074,12 +1189,15 @@ audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-### getMaxVolume
+### getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最大音量,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1102,12 +1220,15 @@ audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
});
```
-### mute
+### mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void
设置指定音量流静音,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[mute](#mute9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
@@ -1134,12 +1255,15 @@ audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
});
```
-### mute
+### mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
设置指定音量流静音,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[mute](#mute9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
@@ -1168,13 +1292,15 @@ audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
});
```
-
-### isMute
+### isMute(deprecated)
isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音量流是否被静音,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1196,13 +1322,15 @@ audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-
-### isMute
+### isMute(deprecated)
isMute(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否被静音,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1225,12 +1353,15 @@ audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
});
```
-### isActive
+### isActive(deprecated)
isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
获取指定音量流是否为活跃状态,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1252,12 +1383,15 @@ audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-### isActive
+### isActive(deprecated)
isActive(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -1280,12 +1414,15 @@ audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
});
```
-### setRingerMode
+### setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
设置铃声模式,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅在静音和非静音状态切换时需要该权限。
@@ -1311,12 +1448,15 @@ audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
});
```
-### setRingerMode
+### setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode): Promise<void>
设置铃声模式,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代。
+
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
仅在静音和非静音状态切换时需要该权限。
@@ -1343,13 +1483,15 @@ audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
});
```
-
-### getRingerMode
+### getRingerMode(deprecated)
getRingerMode(callback: AsyncCallback<AudioRingMode>): void
获取铃声模式,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Communication
**参数:**
@@ -1370,13 +1512,15 @@ audioManager.getRingerMode((err, value) => {
});
```
-
-### getRingerMode
+### getRingerMode(deprecated)
getRingerMode(): Promise<AudioRingMode>
获取铃声模式,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Communication
**返回值:**
@@ -1517,12 +1661,15 @@ audioManager.getAudioParameter('key_example').then((value) => {
});
```
-### getDevices
+### getDevices(deprecated)
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
获取音频设备列表,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1543,12 +1690,15 @@ audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
});
```
-### getDevices
+### getDevices(deprecated)
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
获取音频设备列表,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1571,12 +1721,15 @@ audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
});
```
-### setDeviceActive
+### setDeviceActive(deprecated)
setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void
设置设备激活状态,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1599,12 +1752,15 @@ audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
});
```
-### setDeviceActive
+### setDeviceActive(deprecated)
setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>
设置设备激活状态,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1629,12 +1785,15 @@ audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
});
```
-### isDeviceActive
+### isDeviceActive(deprecated)
isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void
获取指定设备的激活状态,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1656,13 +1815,15 @@ audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
});
```
-
-### isDeviceActive
+### isDeviceActive(deprecated)
isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>
获取指定设备的激活状态,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1685,12 +1846,15 @@ audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
});
```
-### setMicrophoneMute
+### setMicrophoneMute(deprecated)
setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
设置麦克风静音状态,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
+
**需要权限:** ohos.permission.MICROPHONE
**系统能力:** SystemCapability.Multimedia.Audio.Device
@@ -1714,12 +1878,15 @@ audioManager.setMicrophoneMute(true, (err) => {
});
```
-### setMicrophoneMute
+### setMicrophoneMute(deprecated)
setMicrophoneMute(mute: boolean): Promise<void>
设置麦克风静音状态,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
+
**需要权限:** ohos.permission.MICROPHONE
**系统能力:** SystemCapability.Multimedia.Audio.Device
@@ -1744,12 +1911,15 @@ audioManager.setMicrophoneMute(true).then(() => {
});
```
-### isMicrophoneMute
+### isMicrophoneMute(deprecated)
isMicrophoneMute(callback: AsyncCallback<boolean>): void
获取麦克风静音状态,使用callback方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
+
**需要权限:** ohos.permission.MICROPHONE
**系统能力:** SystemCapability.Multimedia.Audio.Device
@@ -1772,12 +1942,15 @@ audioManager.isMicrophoneMute((err, value) => {
});
```
-### isMicrophoneMute
+### isMicrophoneMute(deprecated)
isMicrophoneMute(): Promise<boolean>
获取麦克风静音状态,使用Promise方式异步返回结果。
+> **说明:**
+> 从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
+
**需要权限:** ohos.permission.MICROPHONE
**系统能力:** SystemCapability.Multimedia.Audio.Device
@@ -1790,17 +1963,19 @@ isMicrophoneMute(): Promise<boolean>
**示例:**
-
```js
audioManager.isMicrophoneMute().then((value) => {
console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
});
```
-### on('volumeChange')8+
+### on('volumeChange')(deprecated)
on(type: 'volumeChange', callback: Callback\): void
+> **说明:**
+> 从 API Version 8 开始支持,从 API Version 9 开始废弃,建议使用AudioVolumeManager中的[on](#on9)替代。
+
监听系统音量变化事件。
**系统接口:** 该接口为系统接口
@@ -1826,12 +2001,15 @@ audioManager.on('volumeChange', (volumeEvent) => {
});
```
-### on('ringerModeChange')8+
+### on('ringerModeChange')(deprecated)
on(type: 'ringerModeChange', callback: Callback\): void
监听铃声模式变化事件。
+> **说明:**
+> 从 API Version 8 开始支持,从 API Version 9 开始废弃,建议使用AudioVolumeGroupManager中的[on('ringerModeChange')](#on('ringermodechange')9)替代。
+
**系统接口:** 该接口为系统接口
**系统能力:** SystemCapability.Multimedia.Audio.Communication
@@ -1851,12 +2029,15 @@ audioManager.on('ringerModeChange', (ringerMode) => {
});
```
-### on('deviceChange')
+### on('deviceChange')(deprecated)
on(type: 'deviceChange', callback: Callback): void
设备更改。音频设备连接状态变化。
+> **说明:**
+> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[on](#on9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1877,12 +2058,15 @@ audioManager.on('deviceChange', (deviceChanged) => {
});
```
-### off('deviceChange')
+### off('deviceChange')(deprecated)
off(type: 'deviceChange', callback?: Callback): void
取消订阅音频设备连接变化事件。
+> **说明:**
+> 从 API Version 7 开始支持,从 API Version 9 开始废弃,建议使用AudioRoutingManager中的[off](#off9)替代。
+
**系统能力:** SystemCapability.Multimedia.Audio.Device
**参数:**
@@ -1900,11 +2084,14 @@ audioManager.off('deviceChange', (deviceChanged) => {
});
```
-### on('interrupt')
+### on('interrupt')(deprecated)
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\): void
-请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)
+请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。
+
+> **说明:**
+> 从 API Version 7 开始支持,从 API Version 9 开始废弃。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
@@ -1936,11 +2123,14 @@ audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
});
```
-### off('interrupt')
+### off('interrupt')(deprecated)
off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\): void
-取消监听音频打断事件(删除监听事件,取消打断)
+取消监听音频打断事件(删除监听事件,取消打断)。
+
+> **说明:**
+> 从 API Version 7 开始支持,从 API Version 9 开始废弃。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
@@ -2058,7 +2248,6 @@ audioManager.getAudioScene((err, value) => {
});
```
-
### getAudioScene8+
getAudioScene\(\): Promise
@@ -2084,9 +2273,55 @@ audioManager.getAudioScene().then((value) => {
});
```
-### getVolumeGroups9+
+### getVolumeManager9+
+
+getVolumeManager(): AudioVolumeManager
+
+获取音频音量管理器。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**示例:**
+
+```js
+let audioVolumeManager = audioManager.getVolumeManager();
+```
+
+### getStreamManager9+
+
+getStreamManager(): AudioStreamManager
+
+获取音频流管理器。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Core
+
+**示例:**
+
+```js
+let audioStreamManager = audioManager.getStreamManager();
+```
+
+### getRoutingManager9+
+
+getRoutingManager(): AudioRoutingManager
+
+获取音频路由设备管理器。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Device
+
+**示例:**
+
+```js
+let audioRoutingManager = audioManager.getRoutingManager();
+```
+
+## AudioVolumeManager9+
-getVolumeGroups(networkId: string, callback: AsyncCallback\): void
+音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getVolumeManager9)获取AudioVolumeManager实例。
+
+### getVolumeGroupInfos9+
+
+getVolumeGroupInfos(networkId: string, callback: AsyncCallback\): void
获取音量组信息列表,使用callback方式异步返回结果。
@@ -2098,13 +2333,12 @@ getVolumeGroups(networkId: string, callback: AsyncCallback\):
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
-| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID ,也可以通过getRoutingManager().getDevices()获取全部networkId。 |
-| callback | AsyncCallback<[VolumeGroupInfos](#volumegroupinfos9)> | 是 | 回调,返回音量组信息列表。 |
+| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。 |
+| callback | AsyncCallback<[VolumeGroupInfos](#volumegroupinfos9)> | 是 | 回调,返回音量组信息列表。 |
**示例:**
```js
-let audioManager = audio.getAudioManager();
-audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID, (err, value) => {
+audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err, value) => {
if (err) {
console.error(`Failed to obtain the volume group infos list. ${err}`);
return;
@@ -2113,9 +2347,9 @@ audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID, (err, value) => {
});
```
-### getVolumeGroups9+
+### getVolumeGroupInfos9+
-getVolumeGroups(networkId: string\): Promise
+getVolumeGroupInfos(networkId: string\): Promise
获取音量组信息列表,使用promise方式异步返回结果。
@@ -2125,9 +2359,9 @@ getVolumeGroups(networkId: string\): Promise
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
-| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID ,也可以通过getRoutingManager().getDevices()获取全部networkId。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ------------------| ---- | -------------------- |
+| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。 |
**返回值:**
@@ -2139,19 +2373,17 @@ getVolumeGroups(networkId: string\): Promise
```js
async function getVolumeGroupInfos(){
- let volumegroupinfos = await audio.getAudioManager().getVolumeGroups(audio.LOCAL_NETWORK_ID);
+ let volumegroupinfos = await audio.getAudioVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
}
```
-### getGroupManager9+
+### getVolumeGroupManager9+
-getGroupManager(groupId: number, callback: AsyncCallback\): void
+getVolumeGroupManager(groupId: number, callback: AsyncCallback\): void
获取音频组管理器,使用callback方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2159,37 +2391,28 @@ getGroupManager(groupId: number, callback: AsyncCallback\):
| 参数名 | 类型 | 必填 | 说明 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
| groupId | number | 是 | 音量组id。 |
-| callback | AsyncCallback< [AudioGroupManager](#audiogroupmanager9) > | 是 | 回调,返回一个音量组实例。 |
+| callback | AsyncCallback< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | 是 | 回调,返回一个音量组实例。 |
**示例:**
```js
-let audioManager = audio.getAudioManager();
-let audioGroupManager;
-async function getGroupManager(){
- let value = await audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID);
- if (value.length > 0) {
- let groupid = value[0].groupId;
- audioManager.getGroupManager(groupid, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the volume group infos list. ${err}`);
- return;
- }
- audioGroupManager = value
- console.info('Callback invoked to indicate that the volume group infos list is obtained.');
- });
+let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
+audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the volume group infos list. ${err}`);
+ return;
}
-}
+ console.info('Callback invoked to indicate that the volume group infos list is obtained.');
+});
+
```
-### getGroupManager9+
+### getVolumeGroupManager9+
-getGroupManager(groupId: number\): Promise
+getVolumeGroupManager(groupId: number\): Promise
获取音频组管理器,使用promise方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2202,288 +2425,134 @@ getGroupManager(groupId: number\): Promise
| 类型 | 说明 |
| ------------------- | ----------------------------- |
-| Promise< [AudioGroupManager](#audiogroupmanager9) > | 音量组实例。 |
+| Promise< [AudioVolumeGroupManager](#audiovolumegroupmanager) > | 音量组实例。 |
**示例:**
```js
-let audioManager = audio.getAudioManager();
-async function getGroupManager(){
- let value = await audioManager.getVolumeGroups(audio.LOCAL_NETWORK_ID);
- if (value.length > 0) {
- let groupid = value[0].groupId;
- let audioGroupManager = await audioManager.getGroupManager(groupid)
- console.info('Callback invoked to indicate that the volume group infos list is obtained.');
- }
-}
+let groupid = value[0].groupId;
+let audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid)
+console.info('Callback invoked to indicate that the volume group infos list is obtained.');
```
-### getStreamManager9+
+### on('volumeChange')8+
-getStreamManager(callback: AsyncCallback\): void
+on(type: 'volumeChange', callback: Callback\): void
-获取音频流管理器实例。使用callback方式异步返回结果。
+监听系统音量变化事件,使用callback方式异步返回结果。
-**系统能力:** SystemCapability.Multimedia.Audio.Core
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | --------------------------------------------------------- | ---- | ---------------- |
-| callback | AsyncCallback<[AudioStreamManager](#audiostreammanager9)> | 是 | 返回音频流管理器实例。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 事件回调类型,支持的事件为:'volumeChange'。 |
+| callback | Callback<[VolumeEvent](#volumeevent8)> | 是 | 回调方法。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
**示例:**
```js
-let audioManager = audio.getAudioManager();
-let audioStreamManager;
-audioManager.getStreamManager((err, data) => {
- if (err) {
- console.error(`getStreamManager : Error: ${err}`);
- } else {
- console.info('getStreamManager : Success : SUCCESS');
- audioStreamManager = data;
- }
+audioVolumeManager.on('volumeChange', (volumeEvent) => {
+ console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
+ console.info(`Volume level: ${volumeEvent.volume} `);
+ console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});
```
-### getStreamManager9+
-
-getStreamManager(): Promise
-
-获取音频流管理器实例。使用Promise方式异步返回结果。
-
-**系统能力:** SystemCapability.Multimedia.Audio.Core
+## AudioVolumeGroupManager9+
-**返回值:**
+管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。
-| 类型 | 说明 |
-| ---------------------------------------------------- | ---------------- |
-| Promise<[AudioStreamManager](#audiostreammanager9)> | 返回音频流管理器实例。 |
+**系统接口:** 该接口为系统接口
-**示例:**
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
-```js
-let audioManager = audio.getAudioManager();
-let audioStreamManager;
-audioManager.getStreamManager().then((data) => {
- audioStreamManager = data;
- console.info('getStreamManager: Success!');
-}).catch((err) => {
- console.error(`getStreamManager: ERROR : ${err}`);
-});
+### setVolume9+
-```
+setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
-### requestIndependentInterrupt9+
+设置指定流的音量,使用callback方式异步返回结果。
-requestIndependentInterrupt(focusType: FocusType, callback: AsyncCallback\): void
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
-申请独立焦点,获取独立SessionID,使用callback方式异步返回结果。
+仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统接口:** 该接口为系统接口
-**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | ----------------------------- | ---- | ----------------- |
-| focusType | [FocusType](#focustype) | 是 | 焦点类型。 |
-| callback | AsyncCallback<boolean> | 是 | 回调,返回焦点申请成功/失败状态。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
+| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
+| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 |
**示例:**
```js
-async function requestIndependentInterrupt(){
- let value = await audioManager.requestIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING);
- if (value) {
- console.info('requestIndependentInterrupt interface for result callback: SUCCESS');
- } else {
- console.error('Result ERROR');
+audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
+ if (err) {
+ console.error(`Failed to set the volume. ${err}`);
+ return;
}
-}
+ console.info('Callback invoked to indicate a successful volume setting.');
+});
```
-### requestIndependentInterrupt9+
-requestIndependentInterrupt(focusType: FocusType): Promise
+### setVolume9+
+
+setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
+
+设置指定流的音量,使用Promise方式异步返回结果。
+
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
-申请独立焦点,获取独立SessionID,使用promise方式异步返回结果。
+仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
**系统接口:** 该接口为系统接口
-**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| ------ | ---- | ---- | ---- |
-| focusType | [FocusType](#focustype) | 是 | 焦点类型。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
+| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
**返回值:**
-| 类型 | 说明 |
-| --------------------------------------------------------- | ------------ |
-| Promise<boolean> | 返回申请焦点成功/失败状态。 |
+| 类型 | 说明 |
+| ------------------- | ----------------------------- |
+| Promise<void> | Promise回调表示成功还是失败。 |
**示例:**
```js
-async function requestIndependentInterrupt(){
- audioManager.requestIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING).then((value) => {
- console.info('Promise returned to succeed ');
- }).catch ((err) => {
- console.error('Failed to requestIndependentInterrupt');
- });
-}
+audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
+ console.info('Promise returned to indicate a successful volume setting.');
+});
```
-### abandonIndependentInterrupt9+
-abandonIndependentInterrupt(focusType: FocusType, callback: AsyncCallback\): void
+### getVolume9+
-废除独立焦点,使用callback方式异步返回结果。
+getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
-**系统接口:** 该接口为系统接口
+获取指定流的音量,使用callback方式异步返回结果。
-**系统能力:** SystemCapability.Multimedia.Audio.Renderer
-
-**参数:**
-
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | ----------------------------- | ---- | ----------------- |
-| focusType | [FocusType](#focustype) | 是 | 焦点类型。 |
-| callback | AsyncCallback<boolean> | 是 | 回调,返回废除焦点成功/失败状态。 |
-
-**示例:**
-
-```js
-async function abandonIndependentInterrupt(){
- let value = await audioManager.abandonIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING);
- if (value) {
- console.info('abandonIndependentInterrupt interface for result callback: SUCCESS');
- } else {
- console.error('Result ERROR');
- }
-}
-```
-### abandonIndependentInterrupt9+
-
-abandonIndependentInterrupt(focusType: FocusType): Promise
-
-废除独立焦点,使用promise方式异步返回结果。
-
-**系统接口:** 该接口为系统接口
-
-**系统能力:** SystemCapability.Multimedia.Audio.Renderer
-
-**参数:**
-
-| 参数名 | 类型 | 必填 | 说明 |
-| ------ | ---- | ---- | ---- |
-| focusType | [FocusType](#focustype) | 是 | 焦点类型。 |
-
-**返回值:**
-
-| 类型 | 说明 |
-| --------------------------------------------------------- | ------------ |
-| Promise<boolean> | 返回废除焦点成功/失败状态。 |
-
-**示例:**
-
-```js
-async function abandonIndependentInterrupt(){
- audioManager.abandonIndependentInterrupt(audio.FocusType.FOCUS_TYPE_RECORDING).then((value) => {
- console.info('Promise returned to succeed');
- }).catch ((err) => {
- console.error('Failed to abandonIndependentInterrupt');
- });
-}
-```
-## AudioGroupManager9+
-管理音频组音量。在调用AudioGroupManager的接口前,需要先通过 [getGroupManager](#getgroupmanager9) 创建实例。
-
-**系统接口:** 该接口为系统接口
-
-**系统能力:** SystemCapability.Multimedia.Audio.Volume
-
-### setVolume9+
-
-setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
-
-设置指定流的音量,使用callback方式异步返回结果。
-
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
-
-仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
-
-**系统接口:** 该接口为系统接口
-
-**系统能力:** SystemCapability.Multimedia.Audio.Volume
-
-**参数:**
-
-| 参数名 | 类型 | 必填 | 说明 |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
-| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
-| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 |
-
-**示例:**
-
-```js
-audioGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
- if (err) {
- console.error(`Failed to set the volume. ${err}`);
- return;
- }
- console.info('Callback invoked to indicate a successful volume setting.');
-});
-```
-
-### setVolume9+
-
-setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
-
-设置指定流的音量,使用Promise方式异步返回结果。
-
-**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
-
-仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
-
-**系统接口:** 该接口为系统接口
-
-**系统能力:** SystemCapability.Multimedia.Audio.Volume
-
-**参数:**
-
-| 参数名 | 类型 | 必填 | 说明 |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
-| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
-
-**返回值:**
-
-| 类型 | 说明 |
-| ------------------- | ----------------------------- |
-| Promise<void> | Promise回调表示成功还是失败。 |
-
-**示例:**
-
-```js
-audioGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
- console.info('Promise returned to indicate a successful volume setting.');
-});
-```
-
-### getVolume9+
-
-getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
-
-获取指定流的音量,使用callback方式异步返回结果。
-
-**系统接口:** 该接口为系统接口
-
-**系统能力:** SystemCapability.Multimedia.Audio.Volume
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2495,7 +2564,7 @@ getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): v
**示例:**
```js
-audioGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the volume. ${err}`);
return;
@@ -2510,8 +2579,6 @@ getVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的音量,使用Promise方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2529,7 +2596,7 @@ getVolume(volumeType: AudioVolumeType): Promise<number>
**示例:**
```js
-audioGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
});
```
@@ -2540,8 +2607,6 @@ getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>)
获取指定流的最小音量,使用callback方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2554,7 +2619,7 @@ getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>)
**示例:**
```js
-audioGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the minimum volume. ${err}`);
return;
@@ -2569,8 +2634,6 @@ getMinVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最小音量,使用Promise方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2588,7 +2651,7 @@ getMinVolume(volumeType: AudioVolumeType): Promise<number>
**示例:**
```js
-audioGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
});
```
@@ -2599,8 +2662,6 @@ getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>)
获取指定流的最大音量,使用callback方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2613,7 +2674,7 @@ getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>)
**示例:**
```js
-audioGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the maximum volume. ${err}`);
return;
@@ -2628,8 +2689,6 @@ getMaxVolume(volumeType: AudioVolumeType): Promise<number>
获取指定流的最大音量,使用Promise方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2647,7 +2706,7 @@ getMaxVolume(volumeType: AudioVolumeType): Promise<number>
**示例:**
```js
-audioGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
+audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
console.info('Promised returned to indicate that the maximum volume is obtained.');
});
```
@@ -2677,7 +2736,7 @@ mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void
**示例:**
```js
-audioGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
+audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
if (err) {
console.error(`Failed to mute the stream. ${err}`);
return;
@@ -2716,7 +2775,7 @@ mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
**示例:**
```js
-audioGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
+audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
console.info('Promise returned to indicate that the stream is muted.');
});
```
@@ -2727,8 +2786,6 @@ isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): voi
获取指定音量流是否被静音,使用callback方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2741,7 +2798,7 @@ isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): voi
**示例:**
```js
-audioGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the mute status. ${err}`);
return;
@@ -2756,8 +2813,6 @@ isMute(volumeType: AudioVolumeType): Promise<boolean>
获取指定音量流是否被静音,使用Promise方式异步返回结果。
-**系统接口:** 该接口为系统接口
-
**系统能力:** SystemCapability.Multimedia.Audio.Volume
**参数:**
@@ -2775,11 +2830,300 @@ isMute(volumeType: AudioVolumeType): Promise<boolean>
**示例:**
```js
-audioGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
+audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
});
```
+### setRingerMode
+
+setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
+
+设置铃声模式,使用callback方式异步返回结果。
+
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
+
+仅在静音和非静音状态切换时需要该权限。
+
+**系统接口:** 该接口为系统接口
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------------- | ---- | ------------------------ |
+| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 |
+| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
+ if (err) {
+ console.error(`Failed to set the ringer mode. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate a successful setting of the ringer mode.');
+});
+```
+
+### setRingerMode
+
+setRingerMode(mode: AudioRingMode): Promise<void>
+
+设置铃声模式,使用Promise方式异步返回结果。
+
+**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
+
+仅在静音和非静音状态切换时需要该权限。
+
+**系统接口:** 该接口为系统接口
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------------------------------- | ---- | -------------- |
+| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
+ console.info('Promise returned to indicate a successful setting of the ringer mode.');
+});
+```
+
+### getRingerMode
+
+getRingerMode(callback: AsyncCallback<AudioRingMode>): void
+
+获取铃声模式,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------------------------------------- | ---- | ------------------------ |
+| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | 是 | 回调返回系统的铃声模式。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.getRingerMode((err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the ringer mode. ${err}`);
+ return;
+ }
+ console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
+});
+```
+
+### getRingerMode
+
+getRingerMode(): Promise<AudioRingMode>
+
+获取铃声模式,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------------------------------------- | ------------------------------- |
+| Promise<[AudioRingMode](#audioringmode)> | Promise回调返回系统的铃声模式。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.getRingerMode().then((value) => {
+ console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
+});
+```
+
+### on('ringerModeChange')8+
+
+on(type: 'ringerModeChange', callback: Callback\): void
+
+监听铃声模式变化事件。
+
+**系统接口:** 该接口为系统接口
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
+| callback | Callback<[AudioRingMode](#audioringmode)> | 是 | 回调方法。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
+ console.info(`Updated ringermode: ${ringerMode}`);
+});
+```
+### setMicrophoneMute
+
+setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
+
+设置麦克风静音状态,使用callback方式异步返回结果。
+
+**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ------------------------- | ---- | --------------------------------------------- |
+| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
+| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
+ if (err) {
+ console.error(`Failed to mute the microphone. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate that the microphone is muted.');
+});
+```
+
+### setMicrophoneMute
+
+setMicrophoneMute(mute: boolean): Promise<void>
+
+设置麦克风静音状态,使用Promise方式异步返回结果。
+
+**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ------ | ------- | ---- | --------------------------------------------- |
+| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
+ console.info('Promise returned to indicate that the microphone is muted.');
+});
+```
+
+### isMicrophoneMute
+
+isMicrophoneMute(callback: AsyncCallback<boolean>): void
+
+获取麦克风静音状态,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
+| callback | AsyncCallback<boolean> | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.isMicrophoneMute((err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the mute status of the microphone. ${err}`);
+ return;
+ }
+ console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
+});
+```
+
+### isMicrophoneMute
+
+isMicrophoneMute(): Promise<boolean>
+
+获取麦克风静音状态,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------------- | ------------------------------------------------------------ |
+| Promise<boolean> | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.isMicrophoneMute().then((value) => {
+ console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
+});
+```
+
+### on('micStateChange')9+
+
+on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void
+
+监听系统麦克风状态更改事件。
+
+目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | 是 | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
+| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是 | 回调方法,返回变更后的麦克风状态。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
+**示例:**
+
+```js
+audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
+ console.info(`Current microphone status is: ${micStateChange.mute} `);
+});
+```
+
## AudioStreamManager9+
管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。
@@ -2983,6 +3327,15 @@ on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArr
| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 |
| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。 |
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
**示例:**
```js
@@ -3012,7 +3365,7 @@ audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) =>
### off('audioRendererChange')9+
-off(type: "audioRendererChange");
+off(type: "audioRendererChange"): void
取消监听音频渲染器更改事件。
@@ -3024,6 +3377,15 @@ off(type: "audioRendererChange");
| -------- | ------- | ---- | ---------------- |
| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
**示例:**
```js
@@ -3057,7 +3419,7 @@ audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>
console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
- var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+ let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
@@ -3072,27 +3434,145 @@ audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>
});
```
-### off('audioCapturerChange')9+
+### off('audioCapturerChange')9+
+
+off(type: "audioCapturerChange"): void;
+
+取消监听音频采集器更改事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| -------- | -------- | --- | ------------------------------------------------------------- |
+| type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
+
+**示例:**
+
+```js
+audioStreamManager.off('audioCapturerChange');
+console.info('######### CapturerChange Off is called #########');
+
+```
+
+### isActive
+
+isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
+
+获取指定音量流是否为活跃状态,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
+| callback | AsyncCallback<boolean> | 是 | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
+
+**示例:**
+
+```js
+audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the active status of the stream. ${err}`);
+ return;
+ }
+ console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
+});
+```
+
+### isActive
+
+isActive(volumeType: AudioVolumeType): Promise<boolean>
+
+获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Volume
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ---------------------- | -------------------------------------------------------- |
+| Promise<boolean> | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
+
+**示例:**
+
+```js
+audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
+});
+```
+
+### isAudioRendererLowLatencySupported9+
+
+isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo, callback: Callback<boolean>): void;
+
+检查系统是否支持音频渲染器中的低延迟配置。使用callback异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------- | -------- | --------------------------------------- |
+| streaminfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 音频渲染器流信息。 |
+| callback | Callback<boolean> | 是 | 返回系统是否支持音频渲染器中的低延迟配置。 |
+
+**示例:**
+
+```js
+let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+audioStreamManager.isAudioRendererLowLatencySupported(AudioStreamInfo, (result) => {
+ console.info(`isAudioRendererLowLatencySupported success var ${result}`);
+});
+```
+
+### isAudioRendererLowLatencySupported9+
-off(type: "audioCapturerChange");
+isAudioRendererLowLatencySupported(streaminfo: AudioStreamInfo): Promise<boolean>
-取消监听音频采集器更改事件。
+检查系统是否支持音频渲染器中的低延迟配置。使用Promise方式异步返回结果。
-**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
-| 名称 | 类型 | 必填 | 说明 |
-| -------- | -------- | --- | ------------------------------------------------------------- |
-| type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ------------------------------------ | ---- | ------------|
+| streaminfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 数据流信息 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ---------------------------------------------------- |
+| Promise<void> | Promise方式异步返回系统是否支持音频渲染器中的低延迟配置。 |
**示例:**
```js
-audioStreamManager.off('audioCapturerChange');
-console.info('######### CapturerChange Off is called #########');
-
+let AudioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+}
+let result = audioStreamManager.isAudioRendererLowLatencySupported(AudioStreamInfo);
+console.info(`isAudioRendererLowLatencySupported success var ${result}`);
```
+
## AudioRoutingManager9+
音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。
@@ -3183,6 +3663,15 @@ on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback | 是 | 获取设备更新详情。 |
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
**示例:**
```js
@@ -3217,6 +3706,15 @@ off(type: 'deviceChange', callback?: Callback): void
| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 获取设备更新详情。 |
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
**示例:**
```js
@@ -3272,32 +3770,6 @@ async function getRoutingManager(){
}
```
-### on('micStateChange')9+
-
-on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void
-
-监听系统麦克风状态更改事件
-
-目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
-
-**系统能力:** SystemCapability.Multimedia.Audio.Device
-
-**参数:**
-
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
-| type | string | 是 | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
-| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是 | 回调方法,返回变更后的麦克风状态。 |
-
-**示例:**
-
-```js
-let audioManager = audio.getAudioManager();
-audioManager.getRoutingManager.on('micStateChange', (micStateChange) => {
- console.info(`Current microphone status is: ${micStateChange.mute} `);
-});
-```
-
### selectInputDevice9+
selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise<void>
@@ -3343,6 +3815,118 @@ async function getRoutingManager(){
}
```
+### setCommunicationDevice
+
+setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void
+
+设置通信设备激活状态,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Communication
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ------------------------------------- | ---- | ------------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 音频设备类型。 |
+| active | boolean | 是 | 设备激活状态。 |
+| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioRoutingManager.setCommunicationDevice(audio.ActiveDeviceType.SPEAKER, true, (err) => {
+ if (err) {
+ console.error(`Failed to set the active status of the device. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate that the device is set to the active status.');
+});
+```
+
+### setCommunicationDevice
+
+setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>
+
+设置通信设备激活状态,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Communication
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ----------------------------------------------------- | ---- | ------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 |
+| active | boolean | 是 | 设备激活状态。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise回调返回设置成功或失败。 |
+
+**示例:**
+
+```js
+audioRoutingManager.setCommunicationDevice(audio.ActiveDeviceType.SPEAKER, true).then(() => {
+ console.info('Promise returned to indicate that the device is set to the active status.');
+});
+```
+
+### isCommunicationDeviceActive
+
+isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void
+
+获取指定通信设备的激活状态,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Communication
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 |
+| callback | AsyncCallback<boolean> | 是 | 回调返回设备的激活状态。 |
+
+**示例:**
+
+```js
+audioRoutingManager.isCommunicationDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the active status of the device. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate that the active status of the device is obtained.');
+});
+```
+
+### isCommunicationDeviceActive
+
+isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>
+
+获取指定通信设备的激活状态,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Communication
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ---------------------------------------------------- | ---- | ------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 |
+
+**返回值:**
+
+| Type | Description |
+| ---------------------- | ------------------------------- |
+| Promise<boolean> | Promise回调返回设备的激活状态。 |
+
+**示例:**
+
+```js
+audioRoutingManager.isCommunicationDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
+});
+```
+
### selectOutputDevice9+
selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
@@ -3575,7 +4159,7 @@ audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) =>
console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`);
- var devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
+ let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
@@ -3638,7 +4222,7 @@ audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>
console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
- var devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
+ let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
@@ -3853,6 +4437,52 @@ audioRenderer.getStreamInfo().then((streamInfo) => {
});
```
+### getAudioStreamId9+
+
+getAudioStreamId(callback: AsyncCallback): void
+
+获取音频流id,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| :------- | :--------------------------------------------------- | :--- | :------------------- |
+| callback | AsyncCallback<[number]\> | 是 | 回调返回音频流id。 |
+
+**示例:**
+
+```js
+audioRenderer.getAudioStreamId((err, streamid) => {
+ console.info(`Renderer GetStreamId: ${streamid}`);
+});
+```
+
+### getAudioStreamId9+
+
+getAudioStreamId(): Promise
+
+获取音频流id,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**返回值:**
+
+| 类型 | 说明 |
+| :--------------------------------------------- | :--------------------- |
+| Promise<[number]\> | Promise返回音频流id. |
+
+**示例:**
+
+```js
+audioRenderer.getAudioStreamId().then((streamid) => {
+ console.info(`Renderer getAudioStreamId: ${streamid}`);
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
+});
+```
+
### start8+
start(callback: AsyncCallback): void
@@ -4446,27 +5076,92 @@ audioRenderer.setInterruptMode(mode, (err, data)=>{
console.info('setInterruptMode Success!');
});
```
-### on('interrupt')9+
-on(type: 'interrupt', callback: Callback\): void
+### setVolume9+
-监听音频中断事件。使用callback获取中断事件。
+setVolume(volume: number): Promise<void>
+
+设置应用的音量。使用Promise异步回调。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Renderer
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ---------- | ------- | ------ | ---------- |
+| volume | number | 是 | 音量值。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ----------------------------- |
+| Promise<void> | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
+
+**示例:**
+
+```js
+audioRenderer.setVolume(10).then(data=>{
+ console.info('setVolume Success!');
+}).catch((err) => {
+ console.error(`setVolume Fail: ${err}`);
+});
+```
+### setVolume9+
+
+setVolume(volume: number, callback: AsyncCallback\): void
+
+设置应用的音量。使用Callback回调返回执行结果。
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
**参数:**
+| 参数名 | 类型 | 必填 | 说明 |
+| ------- | -----------| ------ | -------------- |
+|volume | number | 是 | 音量值。|
+|callback | AsyncCallback\ | 是 |回调返回执行结果。|
+
+**示例:**
+
+```js
+audioRenderer.setVolume(10, (err, data)=>{
+ if(err){
+ console.error(`setVolume Fail: ${err}`);
+ }
+ console.info('setVolume Success!');
+});
+```
+
+### on('audioInterrupt')9+
+
+on(type: 'audioInterrupt', callback: Callback\): void
+
+监听音频中断事件。使用callback获取中断事件。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
+
+**参数:**
+
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
-| type | string | 是 | 事件回调类型,支持的事件为:'interrupt'(中断事件被触发,音频播放被中断。) |
+| type | string | 是 | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频播放被中断。) |
| callback | Callback<[InterruptEvent](#interruptevent9)> | 是 | 被监听的中断事件的回调。 |
+**错误码:**
+
+以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | --------------------------------------------|
+| 401 | if input parameter type or number mismatch. |
+| 6800101 | if input parameter value error. |
+
**示例:**
```js
let isPlay;
let started;
-audioRenderer.on('interrupt', async(interruptEvent) => {
+audioRenderer.on('audioInterrupt', async(interruptEvent) => {
if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
switch (interruptEvent.hintType) {
case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
@@ -4525,7 +5220,7 @@ on(type: "markReach", frame: number, callback: Callback<number>): void
| :------- | :----------------------- | :--- | :---------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
-| callback | Callback\ | 是 | 触发事件时调用的回调。 |
+| callback | Callback | 是 | 触发事件时调用的回调。 |
**示例:**
@@ -4572,7 +5267,7 @@ on(type: "periodReach", frame: number, callback: Callback<number>): void
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 |
-| callback | Callback\ | 是 | 触发事件时调用的回调。 |
+| callback | Callback | 是 | 触发事件时调用的回调。 |
**示例:**
@@ -4768,6 +5463,52 @@ audioCapturer.getStreamInfo().then((audioParamsGet) => {
});
```
+### getAudioStreamId9+
+
+getAudioStreamId(callback: AsyncCallback): void
+
+获取音频流id,使用callback方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| :------- | :--------------------------------------------------- | :--- | :------------------- |
+| callback | AsyncCallback<[number]\> | 是 | 回调返回音频流id。 |
+
+**示例:**
+
+```js
+audioCapturer.getAudioStreamId((err, streamid) => {
+ console.info(`audioCapturer GetStreamId: ${streamid}`);
+});
+```
+
+### getAudioStreamId9+
+
+getAudioStreamId(): Promise
+
+获取音频流id,使用Promise方式异步返回结果。
+
+**系统能力:** SystemCapability.Multimedia.Audio.Capturer
+
+**返回值:**
+
+| 类型 | 说明 |
+| :--------------------------------------------- | :--------------------- |
+| Promise<[number]\> | Promise返回音频流id. |
+
+**示例:**
+
+```js
+audioCapturer.getAudioStreamId().then((streamid) => {
+ console.info(`audioCapturer getAudioStreamId: ${streamid}`);
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
+});
+```
+
### start8+
start(callback: AsyncCallback): void
@@ -4935,7 +5676,6 @@ audioCapturer.release().then(() => {
});
```
-
### read8+
read(size: number, isBlockingRead: boolean, callback: AsyncCallback): void
@@ -4969,7 +5709,6 @@ audioCapturer.read(bufferSize, true, async(err, buffer) => {
});
```
-
### read8+
read(size: number, isBlockingRead: boolean): Promise
@@ -5009,7 +5748,6 @@ audioCapturer.read(bufferSize, true).then((buffer) => {
});
```
-
### getAudioTime8+
getAudioTime(callback: AsyncCallback): void
@@ -5032,7 +5770,6 @@ audioCapturer.getAudioTime((err, timestamp) => {
});
```
-
### getAudioTime8+
getAudioTime(): Promise
@@ -5057,7 +5794,6 @@ audioCapturer.getAudioTime().then((audioTime) => {
});
```
-
### getBufferSize8+
getBufferSize(callback: AsyncCallback): void
@@ -5087,7 +5823,6 @@ audioCapturer.getBufferSize((err, bufferSize) => {
});
```
-
### getBufferSize8+
getBufferSize(): Promise
@@ -5114,7 +5849,6 @@ audioCapturer.getBufferSize().then((data) => {
});
```
-
### on('markReach')8+
on(type: "markReach", frame: number, callback: Callback<number>): void
@@ -5129,7 +5863,7 @@ on(type: "markReach", frame: number, callback: Callback<number>): void
| :------- | :---------------------- | :--- | :----------------------------------------- |
| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
-| callback | Callback\ | 是 | 使用callback方式异步返回被触发事件的回调。 |
+| callback | Callback | 是 | 使用callback方式异步返回被触发事件的回调。 |
**示例:**
@@ -5175,7 +5909,7 @@ on(type: "periodReach", frame: number, callback: Callback<number>): void
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 |
| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 |
-| callback | Callback\ | 是 | 使用callback方式异步返回被触发事件的回调 |
+| callback | Callback | 是 | 使用callback方式异步返回被触发事件的回调 |
**示例:**
@@ -5275,6 +6009,8 @@ audioCapturer.on('stateChange', (state) => {
提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
+**系统接口:** 该接口为系统接口
+
### load9+
load(type: ToneType, callback: AsyncCallback<void>): void
diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-audio.md b/zh-cn/application-dev/reference/errorcodes/errorcode-audio.md
new file mode 100644
index 0000000000000000000000000000000000000000..f29df4229816800cf2483359f274ef0daab75ef8
--- /dev/null
+++ b/zh-cn/application-dev/reference/errorcodes/errorcode-audio.md
@@ -0,0 +1,131 @@
+# Audio错误码
+
+## 6800101 无效入参
+
+**错误信息**
+
+invalid parameter.
+
+**错误描述**
+调用接口时,传入的参数无效。
+
+**可能原因**
+
+1. 参数拼写错误。
+2. 参数类型错误。
+
+**处理步骤**
+
+根据接口文档,传入正确的入参。
+
+## 6800102 分配内存失败
+
+**错误信息**
+
+allocate memory failed.
+
+**错误描述**
+
+调用接口时,分配内存失败或者出现空指针。
+
+**可能原因**
+
+1. 系统内存压力大,没有足够的内存用来映射。
+2. 对于失效的实例,没有及时销毁释放内存。
+
+**处理步骤**
+
+1. 销毁当前实例。
+2. 重新创建实例,如果重新创建失败,则停止相关操作。
+
+## 6800103 状态不支持
+
+**错误信息**
+
+Operation not permit at current state.
+
+**错误描述**
+
+当前状态不支持此操作。
+
+**可能原因**
+
+当前状态机不支持操作。比如未启动流就播放数据等。
+
+**处理步骤**
+
+1. 确认当前状态是否支持当前操作。
+2. 把实例切换到正确的状态进行正确的操作。
+
+## 6800104 参数选项不支持
+
+**错误信息**
+
+unsupported operation.
+
+**错误描述**
+
+参数选项不支持。
+
+**可能原因**
+
+api已经支持,但是入参的某些枚举不支持。
+
+**处理步骤**
+
+1. 确认当前api支持的枚举或其他入参。
+2. 改用支持的参数选项。
+
+## 6800105 处理超时
+
+**错误信息**
+
+time out.
+
+**错误描述**
+
+等待处理超时。
+
+**可能原因**
+
+等待外部处理超时,比如从应用pull数据超时。
+
+**处理步骤**
+
+控制数据填写的时间(例如增加延迟处理)。
+
+## 6800201 音频流数量达到极限
+
+**错误信息**
+
+stream number limited.
+
+**错误描述**
+
+创建的音频流达到最大数。
+
+**可能原因**
+
+无效的音频流没有及时释放。
+
+**处理步骤**
+
+释放其他无效的音频流释放资源。
+
+## 6800301 系统处理异常
+
+**错误信息**
+
+system error.
+
+**错误描述**
+
+系统处理异常。
+
+**可能原因**
+
+系统处理异常,比如系统服务重启、ipc异常等。
+
+**处理步骤**
+重新创建业务。
+