diff --git a/en/application-dev/reference/apis/js-apis-audio.md b/en/application-dev/reference/apis/js-apis-audio.md
index 8296185a2866ab0148e68ee56e52eea68e708892..48be07fbffdadd82f34eb41b6906f4a87a679e89 100644
--- a/en/application-dev/reference/apis/js-apis-audio.md
+++ b/en/application-dev/reference/apis/js-apis-audio.md
@@ -1,4 +1,4 @@
-# Audio Management
+# @ohos.multimedia.audio (Audio Management)
The **Audio** module provides basic audio management capabilities, including audio volume and audio device management, and audio data collection and rendering.
@@ -9,9 +9,9 @@ This module provides the following common audio-related functions:
- [AudioCapturer](#audiocapturer8): audio capture, used to record PCM audio data.
- [TonePlayer](#toneplayer9): tone player, used to manage and play Dual Tone Multi Frequency (DTMF) tones, such as dial tones and ringback tones.
-> **NOTE**
+> **NOTE**
>
-> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
@@ -23,9 +23,9 @@ import audio from '@ohos.multimedia.audio';
| Name | Type | Readable | Writable| Description |
| --------------------------------------- | ----------| ---- | ---- | ------------------ |
-| LOCAL_NETWORK_ID9+ | string | Yes | No | Network ID of the local device.
This is a system API.
**System capability**: SystemCapability.Multimedia.Audio.Device |
-| DEFAULT_VOLUME_GROUP_ID9+ | number | Yes | No | Default volume group ID.
**System capability**: SystemCapability.Multimedia.Audio.Volume |
-| DEFAULT_INTERRUPT_GROUP_ID9+ | number | Yes | No | Default audio interruption group ID.
**System capability**: SystemCapability.Multimedia.Audio.Interrupt |
+| LOCAL_NETWORK_ID9+ | string | Yes | No | Network ID of the local device.
This is a system API.
**System capability**: SystemCapability.Multimedia.Audio.Device |
+| DEFAULT_VOLUME_GROUP_ID9+ | number | Yes | No | Default volume group ID.
**System capability**: SystemCapability.Multimedia.Audio.Volume |
+| DEFAULT_INTERRUPT_GROUP_ID9+ | number | Yes | No | Default audio interruption group ID.
**System capability**: SystemCapability.Multimedia.Audio.Interrupt |
**Example**
@@ -74,7 +74,10 @@ Creates an **AudioRenderer** instance. This API uses an asynchronous callback to
**Example**
```js
+import featureAbility from '@ohos.ability.featureAbility';
+import fileio from '@ohos.fileio';
import audio from '@ohos.multimedia.audio';
+
let audioStreamInfo = {
samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
channels: audio.AudioChannel.CHANNEL_1,
@@ -126,6 +129,8 @@ Creates an **AudioRenderer** instance. This API uses a promise to return the res
**Example**
```js
+import featureAbility from '@ohos.ability.featureAbility';
+import fileio from '@ohos.fileio';
import audio from '@ohos.multimedia.audio';
let audioStreamInfo = {
@@ -279,9 +284,9 @@ Creates a **TonePlayer** instance. This API uses an asynchronous callback to ret
import audio from '@ohos.multimedia.audio';
let audioRendererInfo = {
- "contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
- "streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
- "rendererFlags": 0
+ content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
+ usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags : 0
}
let tonePlayer;
@@ -322,13 +327,14 @@ Creates a **TonePlayer** instance. This API uses a promise to return the result.
```js
import audio from '@ohos.multimedia.audio';
-async function createTonePlayer(){
+let tonePlayer;
+async function createTonePlayerBefore(){
let audioRendererInfo = {
- "contentType": audio.ContentType.CONTENT_TYPE_MUSIC,
- "streamUsage": audio.StreamUsage.STREAM_USAGE_MEDIA,
- "rendererFlags": 0
+ content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
+ usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags : 0
}
- let tonePlayer = await audio.createTonePlayer(audioRendererInfo);
+ tonePlayer = await audio.createTonePlayer(audioRendererInfo);
}
```
@@ -338,7 +344,7 @@ Enumerates the audio stream types.
**System capability**: SystemCapability.Multimedia.Audio.Volume
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------- | ------ | ---------- |
| VOICE_CALL8+ | 0 | Audio stream for voice calls.|
| RINGTONE | 2 | Audio stream for ringtones. |
@@ -354,7 +360,7 @@ Enumerates the result types of audio interruption requests.
**System API**: This is a system API.
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------- | ------ | ---------- |
| INTERRUPT_REQUEST_GRANT | 0 | The audio interruption request is accepted.|
| INTERRUPT_REQUEST_REJECT | 1 | The audio interruption request is denied. There may be a stream with a higher priority.|
@@ -365,7 +371,7 @@ Enumerates the audio interruption modes.
**System capability**: SystemCapability.Multimedia.Audio.Interrupt
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------- | ------ | ---------- |
| SHARE_MODE | 0 | Shared mode.|
| INDEPENDENT_MODE | 1 | Independent mode.|
@@ -376,7 +382,7 @@ Enumerates the audio device flags.
**System capability**: SystemCapability.Multimedia.Audio.Device
-| Name | Default Value | Description |
+| Name | Value | Description |
| ------------------------------- | ------ | ------------------------------------------------- |
| NONE_DEVICES_FLAG9+ | 0 | No device.
This is a system API. |
| OUTPUT_DEVICES_FLAG | 1 | Output device.|
@@ -392,7 +398,7 @@ Enumerates the audio device roles.
**System capability**: SystemCapability.Multimedia.Audio.Device
-| Name | Default Value| Description |
+| Name | Value | Description |
| ------------- | ------ | -------------- |
| INPUT_DEVICE | 1 | Input role.|
| OUTPUT_DEVICE | 2 | Output role.|
@@ -403,7 +409,7 @@ Enumerates the audio device types.
**System capability**: SystemCapability.Multimedia.Audio.Device
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------| ------ | --------------------------------------------------------- |
| INVALID | 0 | Invalid device. |
| EARPIECE | 1 | Earpiece. |
@@ -422,7 +428,7 @@ Enumerates the device types used for communication.
**System capability**: SystemCapability.Multimedia.Audio.Communication
-| Name | Default Value| Description |
+| Name | Value | Description |
| ------------- | ------ | -------------|
| SPEAKER | 2 | Speaker. |
@@ -432,7 +438,7 @@ Enumerates the ringer modes.
**System capability**: SystemCapability.Multimedia.Audio.Communication
-| Name | Default Value| Description |
+| Name | Value | Description |
| ------------------- | ------ | ---------- |
| RINGER_MODE_SILENT | 0 | Silent mode.|
| RINGER_MODE_VIBRATE | 1 | Vibration mode.|
@@ -444,7 +450,7 @@ Enumerates the audio sample formats.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------------- | ------ | -------------------------- |
| SAMPLE_FORMAT_INVALID | -1 | Invalid format. |
| SAMPLE_FORMAT_U8 | 0 | Unsigned 8-bit integer. |
@@ -459,15 +465,15 @@ Enumerates the audio error codes.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Error Message | Error Code | Error Description |
+| Name | Value | Description |
| ---------------------| --------| ----------------- |
| ERROR_INVALID_PARAM | 6800101 | Invalid parameter. |
| ERROR_NO_MEMORY | 6800102 | Memory allocation failure. |
| ERROR_ILLEGAL_STATE | 6800103 | Unsupported state. |
-| ERROR_UNSUPPORTED | 6800104 | Unsupported parameter value. |
+| ERROR_UNSUPPORTED | 6800104 | Unsupported parameter value. |
| ERROR_TIMEOUT | 6800105 | Processing timeout. |
| ERROR_STREAM_LIMIT | 6800201 | Too many audio streams.|
-| ERROR_SYSTEM | 6800301 | System error. |
+| ERROR_SYSTEM | 6800301 | System error. |
## AudioChannel8+
@@ -475,18 +481,18 @@ Enumerates the audio channels.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value | Description |
+| Name | Value | Description |
| --------- | -------- | -------- |
| CHANNEL_1 | 0x1 << 0 | Mono.|
| CHANNEL_2 | 0x1 << 1 | Dual-channel.|
## AudioSamplingRate8+
-Enumerates the audio sampling rates.
+Enumerates the audio sampling rates. The sampling rates supported vary according to the device in use.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| ----------------- | ------ | --------------- |
| SAMPLE_RATE_8000 | 8000 | The sampling rate is 8000. |
| SAMPLE_RATE_11025 | 11025 | The sampling rate is 11025.|
@@ -506,7 +512,7 @@ Enumerates the audio encoding types.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| --------------------- | ------ | --------- |
| ENCODING_TYPE_INVALID | -1 | Invalid. |
| ENCODING_TYPE_RAW | 0 | PCM encoding.|
@@ -517,7 +523,7 @@ Enumerates the audio content types.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------------- | ------ | ---------- |
| CONTENT_TYPE_UNKNOWN | 0 | Unknown content.|
| CONTENT_TYPE_SPEECH | 1 | Speech. |
@@ -532,7 +538,7 @@ Enumerates the audio stream usage.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| ------------------------------------------| ------ | ---------- |
| STREAM_USAGE_UNKNOWN | 0 | Unknown usage.|
| STREAM_USAGE_MEDIA | 1 | Used for media. |
@@ -548,7 +554,7 @@ Enumerates the audio interruption request types.
**System capability**: SystemCapability.Multimedia.Audio.Interrupt
-| Name | Default Value | Description |
+| Name | Value | Description |
| ---------------------------------- | ------ | ------------------------- |
| INTERRUPT_REQUEST_TYPE_DEFAULT | 0 | Default type, which can be used to interrupt audio requests. |
@@ -558,7 +564,7 @@ Enumerates the audio states.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| -------------- | ------ | ---------------- |
| STATE_INVALID | -1 | Invalid state. |
| STATE_NEW | 0 | Creating instance state.|
@@ -574,7 +580,7 @@ Enumerates the audio renderer rates.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Default Value| Description |
+| Name | Value | Description |
| ------------------ | ------ | ---------- |
| RENDER_RATE_NORMAL | 0 | Normal rate.|
| RENDER_RATE_DOUBLE | 1 | Double rate. |
@@ -586,7 +592,7 @@ Enumerates the audio interruption types.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Default Value| Description |
+| Name | Value | Description |
| -------------------- | ------ | ---------------------- |
| INTERRUPT_TYPE_BEGIN | 1 | Audio interruption started.|
| INTERRUPT_TYPE_END | 2 | Audio interruption ended.|
@@ -597,7 +603,7 @@ Enumerates the types of force that causes audio interruption.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Default Value| Description |
+| Name | Value | Description |
| --------------- | ------ | ------------------------------------ |
| INTERRUPT_FORCE | 0 | Forced action taken by the system. |
| INTERRUPT_SHARE | 1 | The application can choose to take action or ignore.|
@@ -608,7 +614,7 @@ Enumerates the hints provided along with audio interruption.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Default Value| Description |
+| Name | Value | Description |
| ---------------------------------- | ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE8+ | 0 | None. |
| INTERRUPT_HINT_RESUME | 1 | Resume the playback. |
@@ -636,7 +642,7 @@ Describes audio renderer information.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Type | Mandatory| Description |
+| Name | Type | Mandatory | Description |
| ------------- | --------------------------- | ---- | ---------------- |
| content | [ContentType](#contenttype) | Yes | Audio content type. |
| usage | [StreamUsage](#streamusage) | Yes | Audio stream usage.|
@@ -661,7 +667,7 @@ Describes audio renderer configurations.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Type | Mandatory| Description |
+| Name | Type | Mandatory | Description |
| ------------ | ---------------------------------------- | ---- | ---------------- |
| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | Yes | Audio stream information.|
| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | Yes | Audio renderer information.|
@@ -672,7 +678,7 @@ Describes the interruption event received by the application when playback is in
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Type | Mandatory| Description |
+| Name | Type |Mandatory | Description |
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
| eventType | [InterruptType](#interrupttype) | Yes | Whether the interruption has started or ended. |
| forceType | [InterruptForceType](#interruptforcetype9) | Yes | Whether the interruption is taken by the system or to be taken by the application.|
@@ -686,7 +692,7 @@ Describes the event received by the application when the volume is changed.
**System capability**: SystemCapability.Multimedia.Audio.Volume
-| Name | Type | Mandatory| Description |
+| Name | Type | Mandatory | Description |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
| volume | number | Yes | Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**.|
@@ -701,7 +707,7 @@ Describes the event received by the application when the microphone mute status
**System capability**: SystemCapability.Multimedia.Audio.Device
| Name | Type | Mandatory| Description |
-| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
+| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- |
| mute | boolean | Yes | Mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite. |
## ConnectType9+
@@ -712,7 +718,7 @@ Enumerates the types of connected devices.
**System capability**: SystemCapability.Multimedia.Audio.Volume
-| Name | Default Value| Description |
+| Name | Value | Description |
| :------------------------------ | :----- | :--------------------- |
| CONNECT_TYPE_LOCAL | 1 | Local device. |
| CONNECT_TYPE_DISTRIBUTED | 2 | Distributed device. |
@@ -738,7 +744,7 @@ Describes the volume group information.
| networkId9+ | string | Yes | No | Network ID of the device. |
| groupId9+ | number | Yes | No | Group ID of the device.|
| mappingId9+ | number | Yes | No | Group mapping ID.|
-| groupName9+ | number | Yes | No | Group name.|
+| groupName9+ | string | Yes | No | Group name.|
| type9+ | [ConnectType](#connecttype9)| Yes | No | Type of the connected device.|
## DeviceChangeAction
@@ -758,7 +764,7 @@ Enumerates the device connection statuses.
**System capability**: SystemCapability.Multimedia.Audio.Device
-| Name | Default Value| Description |
+| Name | Value | Description |
| :--------- | :----- | :------------- |
| CONNECT | 0 | Connected. |
| DISCONNECT | 1 | Disconnected.|
@@ -791,7 +797,7 @@ Enumerates the audio source types.
**System capability**: SystemCapability.Multimedia.Audio.Core
-| Name | Default Value| Description |
+| Name | Value | Description |
| :------------------------------------------- | :----- | :--------------------- |
| SOURCE_TYPE_INVALID | -1 | Invalid audio source. |
| SOURCE_TYPE_MIC | 0 | Mic source. |
@@ -804,7 +810,7 @@ Enumerates the audio scenes.
**System capability**: SystemCapability.Multimedia.Audio.Communication
-| Name | Default Value| Description |
+| Name | Value | Description |
| :--------------------- | :----- | :-------------------------------------------- |
| AUDIO_SCENE_DEFAULT | 0 | Default audio scene. |
| AUDIO_SCENE_RINGING | 1 | Ringing audio scene.
This is a system API.|
@@ -959,7 +965,6 @@ Sets an audio scene. This API uses an asynchronous callback to return the result
**Example**
```js
-let audioManager = audio.getAudioManager();
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
if (err) {
console.error(`Failed to set the audio scene mode. ${err}`);
@@ -994,7 +999,6 @@ Sets an audio scene. This API uses a promise to return the result.
**Example**
```js
-let audioManager = audio.getAudioManager();
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
console.info('Promise returned to indicate a successful setting of the audio scene mode.');
}).catch ((err) => {
@@ -1019,7 +1023,6 @@ Obtains the audio scene. This API uses an asynchronous callback to return the re
**Example**
```js
-let audioManager = audio.getAudioManager();
audioManager.getAudioScene((err, value) => {
if (err) {
console.error(`Failed to obtain the audio scene mode. ${err}`);
@@ -1046,7 +1049,6 @@ Obtains the audio scene. This API uses a promise to return the result.
**Example**
```js
-let audioManager = audio.getAudioManager();
audioManager.getAudioScene().then((value) => {
console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
}).catch ((err) => {
@@ -1096,179 +1098,20 @@ Obtains an **AudioRoutingManager** instance.
let audioRoutingManager = audioManager.getRoutingManager();
```
-## AudioVolumeManager9+
-
-Implements audio volume management. Before calling an API in **AudioVolumeManager**, you must use [getVolumeManager](#getvolumemanager9) to obtain an **AudioVolumeManager** instance.
-
-### getVolumeGroupInfos9+
-
-getVolumeGroupInfos(networkId: string, callback: AsyncCallback\): void
-
-Obtains the volume groups. This API uses an asynchronous callback to return the result.
-
-**System API**: This is a system API.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
-| networkId | string | Yes | Network ID of the device. The network ID of the local device is **audio.LOCAL_NETWORK_ID**. |
-| callback | AsyncCallback<[VolumeGroupInfos](#volumegroupinfos9)> | Yes | Callback used to return the volume group information array.|
-
-**Example**
-```js
-audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (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.');
-});
-```
-
-### getVolumeGroupInfos9+
-
-getVolumeGroupInfos(networkId: string\): Promise
-
-Obtains the volume groups. This API uses a promise to return the result.
-
-**System API**: This is a system API.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| ---------- | ------------------| ---- | -------------------- |
-| networkId | string | Yes | Network ID of the device. The network ID of the local device is **audio.LOCAL_NETWORK_ID**. |
-
-**Return value**
-
-| Type | Description |
-| ------------------- | ----------------------------- |
-| Promise<[VolumeGroupInfos](#volumegroupinfos9)> | Volume group information array.|
-
-**Example**
-
-```js
-async function getVolumeGroupInfos(){
- let volumegroupinfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
- console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
-}
-```
-
-### getVolumeGroupManager9+
-
-getVolumeGroupManager(groupId: number, callback: AsyncCallback\): void
-
-Obtains the audio group manager. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
-| groupId | number | Yes | Volume group ID. |
-| callback | AsyncCallback< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | Yes | Callback used to return the audio group manager.|
-
-**Example**
-
-```js
-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.');
-});
-
-```
-
-### getVolumeGroupManager9+
-
-getVolumeGroupManager(groupId: number\): Promise
-
-Obtains the audio group manager. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| ---------- | ---------------------------------------- | ---- | ---------------- |
-| groupId | number | Yes | Volume group ID. |
-
-**Return value**
-
-| Type | Description |
-| ------------------- | ----------------------------- |
-| Promise< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | Promise used to return the audio group manager.|
-
-**Example**
-
-```js
-let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
-let audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
-console.info('Callback invoked to indicate that the volume group infos list is obtained.');
-```
-
-### on('volumeChange')9+
-
-on(type: 'volumeChange', callback: Callback\): void
-
-Subscribes to system volume change events. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'volumeChange'** means the system volume change event, which is triggered when the system volume changes.|
-| callback | Callback<[VolumeEvent](#volumeevent8)> | Yes | Callback used to return the system volume change event. |
-
-**Error codes**
-
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
-
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
-
-**Example**
-
-```js
-audioVolumeManager.on('volumeChange', (volumeEvent) => {
- console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
- console.info(`Volume level: ${volumeEvent.volume} `);
- console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
-});
-```
-
-## AudioVolumeGroupManager9+
-
-Manages the volume of an audio group. Before calling any API in **AudioVolumeGroupManager**, you must use [getVolumeGroupManager](#getvolumegroupmanager9) to obtain an **AudioVolumeGroupManager** instance.
-
-**System API**: This is a system API.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
-
-### setVolume9+
+### setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
Sets the volume for a stream. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setVolume](#setvolume9) in **AudioVolumeGroupManager**.
+
**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
-**System API**: This is a system API.
-
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1282,7 +1125,7 @@ This permission is required only for muting or unmuting the ringer when **volume
**Example**
```js
-audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
+audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
if (err) {
console.error(`Failed to set the volume. ${err}`);
return;
@@ -1291,18 +1134,20 @@ audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
});
```
-### setVolume9+
+### setVolume(deprecated)
setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
Sets the volume for a stream. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setVolume](#setvolume9) in **AudioVolumeGroupManager**.
+
**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
-**System API**: This is a system API.
-
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1321,17 +1166,21 @@ This permission is required only for muting or unmuting the ringer when **volume
**Example**
```js
-audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
+audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
console.info('Promise returned to indicate a successful volume setting.');
});
```
-### getVolume9+
+### getVolume(deprecated)
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
Obtains the volume of a stream. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getVolume](#getvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1344,7 +1193,7 @@ Obtains the volume of a stream. This API uses an asynchronous callback to return
**Example**
```js
-audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the volume. ${err}`);
return;
@@ -1353,12 +1202,16 @@ audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
});
```
-### getVolume9+
+### getVolume(deprecated)
getVolume(volumeType: AudioVolumeType): Promise<number>
Obtains the volume of a stream. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getVolume](#getvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1376,17 +1229,21 @@ Obtains the volume of a stream. This API uses a promise to return the result.
**Example**
```js
-audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
+audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
});
```
-### getMinVolume9+
+### getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
Obtains the minimum volume allowed for a stream. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMinVolume](#getminvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1399,7 +1256,7 @@ Obtains the minimum volume allowed for a stream. This API uses an asynchronous c
**Example**
```js
-audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the minimum volume. ${err}`);
return;
@@ -1408,12 +1265,16 @@ audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) =
});
```
-### getMinVolume9+
+### getMinVolume(deprecated)
getMinVolume(volumeType: AudioVolumeType): Promise<number>
Obtains the minimum volume allowed for a stream. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMinVolume](#getminvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1431,17 +1292,21 @@ Obtains the minimum volume allowed for a stream. This API uses a promise to retu
**Example**
```js
-audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
+audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
});
```
-### getMaxVolume9+
+### getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
Obtains the maximum volume allowed for a stream. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMaxVolume](#getmaxvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1454,7 +1319,7 @@ Obtains the maximum volume allowed for a stream. This API uses an asynchronous c
**Example**
```js
-audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the maximum volume. ${err}`);
return;
@@ -1463,12 +1328,16 @@ audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) =
});
```
-### getMaxVolume9+
+### getMaxVolume(deprecated)
getMaxVolume(volumeType: AudioVolumeType): Promise<number>
Obtains the maximum volume allowed for a stream. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMaxVolume](#getmaxvolume9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1486,22 +1355,20 @@ Obtains the maximum volume allowed for a stream. This API uses a promise to retu
**Example**
```js
-audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
+audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
console.info('Promised returned to indicate that the maximum volume is obtained.');
});
```
-### mute9+
+### mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void
Mutes or unmutes a stream. This API uses an asynchronous callback to return the result.
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
-
-**System API**: This is a system API.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [mute](#mute9) in **AudioVolumeGroupManager**.
**System capability**: SystemCapability.Multimedia.Audio.Volume
@@ -1516,7 +1383,7 @@ This permission is required only for muting or unmuting the ringer when **volume
**Example**
```js
-audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
+audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
if (err) {
console.error(`Failed to mute the stream. ${err}`);
return;
@@ -1525,17 +1392,15 @@ audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
});
```
-### mute9+
+### mute(deprecated)
mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
Mutes or unmutes a stream. This API uses a promise to return the result.
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
-
-**System API**: This is a system API.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [mute](#mute9) in **AudioVolumeGroupManager**.
**System capability**: SystemCapability.Multimedia.Audio.Volume
@@ -1554,18 +1419,23 @@ This permission is required only for muting or unmuting the ringer when **volume
**Example**
+
```js
-audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
+audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
console.info('Promise returned to indicate that the stream is muted.');
});
```
-### isMute9+
+### isMute(deprecated)
isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
Checks whether a stream is muted. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMute](#ismute9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1578,21 +1448,25 @@ Checks whether a stream is muted. This API uses an asynchronous callback to retu
**Example**
```js
-audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
console.error(`Failed to obtain the mute status. ${err}`);
return;
}
- console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
+ console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
});
```
-### isMute9+
+### isMute(deprecated)
isMute(volumeType: AudioVolumeType): Promise<boolean>
Checks whether a stream is muted. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMute](#ismute9) in **AudioVolumeGroupManager**.
+
**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
@@ -1610,24 +1484,89 @@ Checks whether a stream is muted. This API uses a promise to return the result.
**Example**
```js
-audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
+audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
});
```
-### setRingerMode9+
+### isActive(deprecated)
+
+isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
+
+Checks whether a stream is active. This API uses an asynchronous callback to return the result.
+
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isActive](#isactive9) in **AudioStreamManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
+
+**Example**
+
+```js
+audioManager.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(deprecated)
+
+isActive(volumeType: AudioVolumeType): Promise<boolean>
+
+Checks whether a stream is active. This API uses a promise to return the result.
+
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isActive](#isactive9) in **AudioStreamManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
+
+**Return value**
+
+| Type | Description |
+| ---------------------- | -------------------------------------------------------- |
+| Promise<boolean> | Promise used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
+
+**Example**
+
+```js
+audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
+});
+```
+
+### setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
Sets the ringer mode. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setRingerMode](#setringermode9) in **AudioVolumeGroupManager**.
+
**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
This permission is required only for muting or unmuting the ringer.
-**System API**: This is a system API.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
@@ -1639,7 +1578,7 @@ This permission is required only for muting or unmuting the ringer.
**Example**
```js
-audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
+audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
if (err) {
console.error(`Failed to set the ringer mode. ${err}`);
return;
@@ -1648,19 +1587,21 @@ audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (e
});
```
-### setRingerMode9+
+### setRingerMode(deprecated)
setRingerMode(mode: AudioRingMode): Promise<void>
Sets the ringer mode. This API uses a promise to return the result.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setRingerMode](#setringermode9) in **AudioVolumeGroupManager**.
+
**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
This permission is required only for muting or unmuting the ringer.
-**System API**: This is a system API.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
@@ -1677,18 +1618,22 @@ This permission is required only for muting or unmuting the ringer.
**Example**
```js
-audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
+audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
console.info('Promise returned to indicate a successful setting of the ringer mode.');
});
```
-### getRingerMode9+
+### getRingerMode(deprecated)
getRingerMode(callback: AsyncCallback<AudioRingMode>): void
Obtains the ringer mode. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getRingerMode](#getringermode9) in **AudioVolumeGroupManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
@@ -1699,7 +1644,7 @@ Obtains the ringer mode. This API uses an asynchronous callback to return the re
**Example**
```js
-audioVolumeGroupManager.getRingerMode((err, value) => {
+audioManager.getRingerMode((err, value) => {
if (err) {
console.error(`Failed to obtain the ringer mode. ${err}`);
return;
@@ -1708,13 +1653,17 @@ audioVolumeGroupManager.getRingerMode((err, value) => {
});
```
-### getRingerMode9+
+### getRingerMode(deprecated)
getRingerMode(): Promise<AudioRingMode>
Obtains the ringer mode. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getRingerMode](#getringermode9) in **AudioVolumeGroupManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Return value**
@@ -1725,85 +1674,123 @@ Obtains the ringer mode. This API uses a promise to return the result.
**Example**
```js
-audioVolumeGroupManager.getRingerMode().then((value) => {
+audioManager.getRingerMode().then((value) => {
console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
});
```
-### on('ringerModeChange')9+
+### getDevices(deprecated)
-on(type: 'ringerModeChange', callback: Callback\): void
+getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
-Subscribes to ringer mode change events.
+Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getDevices](#getdevices9) in **AudioRoutingManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'ringerModeChange'** means the ringer mode change event, which is triggered when a ringer mode change is detected.|
-| callback | Callback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the system volume change event. |
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
+| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
+| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Yes | Callback used to return the device list.|
-**Error codes**
+**Example**
+```js
+audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the device list. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate that the device list is obtained.');
+});
+```
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+### getDevices(deprecated)
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
+
+Obtains the audio devices with a specific flag. This API uses a promise to return the result.
+
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getDevices](#getdevices9) in **AudioRoutingManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------- | ---- | ---------------- |
+| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag.|
+
+**Return value**
+
+| Type | Description |
+| ------------------------------------------------------------ | ------------------------- |
+| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise used to return the device list.|
**Example**
```js
-audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
- console.info(`Updated ringermode: ${ringerMode}`);
+audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
+ console.info('Promise returned to indicate that the device list is obtained.');
});
```
-### setMicrophoneMute9+
-setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
+### setDeviceActive(deprecated)
-Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.
+setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void
-**Required permissions**: ohos.permission.MANAGE_AUDIO_CONFIG
+Sets a device to the active state. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setCommunicationDevice](#setcommunicationdevice9) in **AudioRoutingManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | ------------------------- | ---- | --------------------------------------------- |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------- | ---- | ------------------------ |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type. |
+| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
```js
-audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
+audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
if (err) {
- console.error(`Failed to mute the microphone. ${err}`);
+ console.error(`Failed to set the active status of the device. ${err}`);
return;
}
- console.info('Callback invoked to indicate that the microphone is muted.');
+ console.info('Callback invoked to indicate that the device is set to the active status.');
});
```
-### setMicrophoneMute9+
+### setDeviceActive(deprecated)
-setMicrophoneMute(mute: boolean): Promise<void>
+setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>
-Mutes or unmutes the microphone. This API uses a promise to return the result.
+Sets a device to the active state. This API uses a promise to return the result.
-**Required permissions**: ohos.permission.MANAGE_AUDIO_CONFIG
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setCommunicationDevice](#setcommunicationdevice9) in **AudioRoutingManager**.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name| Type | Mandatory| Description |
-| ------ | ------- | ---- | --------------------------------------------- |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------- | ---- | ------------------ |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type.|
+| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
**Return value**
@@ -1813,552 +1800,539 @@ Mutes or unmutes the microphone. This API uses a promise to return the result.
**Example**
+
```js
-audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
+audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
+ console.info('Promise returned to indicate that the device is set to the active status.');
});
```
-### isMicrophoneMute9+
+### isDeviceActive(deprecated)
-isMicrophoneMute(callback: AsyncCallback<boolean>): void
+isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void
-Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.
+Checks whether a device is active. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isCommunicationDeviceActive](#iscommunicationdeviceactive9) in **AudioRoutingManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------- | ---- | ------------------------ |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type. |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the active state of the device.|
**Example**
```js
-audioVolumeGroupManager.isMicrophoneMute((err, value) => {
+audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
if (err) {
- console.error(`Failed to obtain the mute status of the microphone. ${err}`);
+ console.error(`Failed to obtain the active status of the device. ${err}`);
return;
}
- console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
+ console.info('Callback invoked to indicate that the active status of the device is obtained.');
});
```
-### isMicrophoneMute9+
+### isDeviceActive(deprecated)
-isMicrophoneMute(): Promise<boolean>
+isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>
-Checks whether the microphone is muted. This API uses a promise to return the result.
+Checks whether a device is active. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isCommunicationDeviceActive](#iscommunicationdeviceactive9) in **AudioRoutingManager**.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------- | ---- | ------------------ |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type.|
**Return value**
-| Type | Description |
-| ---------------------- | ------------------------------------------------------------ |
-| Promise<boolean> | Promise used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
+| Type | Description |
+| ---------------------- | ------------------------------- |
+| Promise<boolean> | Promise used to return the active state of the device.|
**Example**
```js
-audioVolumeGroupManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
+audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
});
```
-### on('micStateChange')9+
+### setMicrophoneMute(deprecated)
-on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void
+setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
-Subscribes to system mic state change events.
+Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.
-Currently, when multiple **AudioManager** instances are used in a single process, only the subscription of the last instance takes effect, and the subscription of other instances is overwritten (even if the last instance does not initiate a subscription). Therefore, you are advised to use a single **AudioManager** instance.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setMicrophoneMute](#setmicrophonemute9) in **AudioVolumeGroupManager**.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**Required permissions**: ohos.permission.MICROPHONE
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'micStateChange'** means the system mic state change event, which is triggered when the system mic state changes.|
-| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | Yes | Callback used to return the changed micr state. |
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------- | ---- | --------------------------------------------- |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
+| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
-**Error codes**
+**Example**
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+```js
+audioManager.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.');
+});
+```
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+### setMicrophoneMute(deprecated)
+
+setMicrophoneMute(mute: boolean): Promise<void>
+
+Mutes or unmutes the microphone. This API uses a promise to return the result.
+
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setMicrophoneMute](#setmicrophonemute9) in **AudioVolumeGroupManager**.
+
+**Required permissions**: ohos.permission.MICROPHONE
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------- | ---- | --------------------------------------------- |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
+
+**Return value**
+
+| Type | Description |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
- console.info(`Current microphone status is: ${micStateChange.mute} `);
+audioManager.setMicrophoneMute(true).then(() => {
+ console.info('Promise returned to indicate that the microphone is muted.');
});
```
-## AudioStreamManager9+
+### isMicrophoneMute(deprecated)
-Implements audio stream management. Before calling any API in **AudioStreamManager**, you must use [getStreamManager](#getstreammanager9) to obtain an **AudioStreamManager** instance.
+isMicrophoneMute(callback: AsyncCallback<boolean>): void
-### getCurrentAudioRendererInfoArray9+
+Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.
-getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMicrophoneMute](#ismicrophonemute9) in **AudioVolumeGroupManager**.
-Obtains the information about the current audio renderer. This API uses an asynchronous callback to return the result.
+**Required permissions**: ohos.permission.MICROPHONE
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ----------------------------------- | -------- | --------------------------- |
-| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Yes | Callback used to return the audio renderer information.|
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
**Example**
```js
-audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
- console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
+audioManager.isMicrophoneMute((err, value) => {
if (err) {
- console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
- } else {
- if (AudioRendererChangeInfoArray != null) {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
- }
+ 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}.`);
});
```
-### getCurrentAudioRendererInfoArray9+
+### isMicrophoneMute(deprecated)
-getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>
+isMicrophoneMute(): Promise<boolean>
-Obtains the information about the current audio renderer. This API uses a promise to return the result.
+Checks whether the microphone is muted. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMicrophoneMute](#ismicrophonemute9) in **AudioVolumeGroupManager**.
+
+**Required permissions**: ohos.permission.MICROPHONE
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Return value**
-| Type | Description |
-| ---------------------------------------------------------------------------------| --------------------------------------- |
-| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Promise used to return the audio renderer information. |
+| Type | Description |
+| ---------------------- | ------------------------------------------------------------ |
+| Promise<boolean> | Promise used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
**Example**
```js
-async function getCurrentAudioRendererInfoArray(){
- await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
- console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
- if (AudioRendererChangeInfoArray != null) {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }).catch((err) => {
- console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
- });
-}
+audioManager.isMicrophoneMute().then((value) => {
+ console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
+});
```
-### getCurrentAudioCapturerInfoArray9+
+### on('volumeChange')(deprecated)
-getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void
+on(type: 'volumeChange', callback: Callback\): void
-Obtains the information about the current audio capturer. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [on](#on9) in **AudioVolumeManager**.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+Subscribes to system volume change events.
+
+**System API**: This is a system API.
+
+Currently, when multiple **AudioManager** instances are used in a single process, only the subscription of the last instance takes effect, and the subscription of other instances is overwritten (even if the last instance does not initiate a subscription). Therefore, you are advised to use a single **AudioManager** instance.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
-| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Yes | Callback used to return the audio capturer information.|
+| Name | Type | Mandatory| Description |
+| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'volumeChange'** means the system volume change event, which is triggered when a system volume change is detected.|
+| callback | Callback<[VolumeEvent](#volumeevent8)> | Yes | Callback used to return the system volume change event. |
**Example**
```js
-audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
- console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
- if (err) {
- console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
- } else {
- if (AudioCapturerChangeInfoArray != null) {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- 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}`);
- 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}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }
+audioManager.on('volumeChange', (volumeEvent) => {
+ console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
+ console.info(`Volume level: ${volumeEvent.volume} `);
+ console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});
```
-### getCurrentAudioCapturerInfoArray9+
+### on('ringerModeChange')(deprecated)
-getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>
+on(type: 'ringerModeChange', callback: Callback\): void
-Obtains the information about the current audio capturer. This API uses a promise to return the result.
+Subscribes to ringer mode change events.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [on('ringerModeChange')](#onringermodechange9) in **AudioVolumeGroupManager**.
-**Return value**
+**System API**: This is a system API.
-| Type | Description |
-| -----------------------------------------------------------------------------| ----------------------------------- |
-| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Promise used to return the audio capturer information. |
+**System capability**: SystemCapability.Multimedia.Audio.Communication
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'ringerModeChange'** means the ringer mode change event, which is triggered when a ringer mode change is detected.|
+| callback | Callback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the ringer mode change event. |
**Example**
```js
-async function getCurrentAudioCapturerInfoArray(){
- await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
- console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
- if (AudioCapturerChangeInfoArray != null) {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- 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}`);
- 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}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- }
- }
- }).catch((err) => {
- console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
- });
-}
+audioManager.on('ringerModeChange', (ringerMode) => {
+ console.info(`Updated ringermode: ${ringerMode}`);
+});
```
-### on('audioRendererChange')9+
-
-on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArray>): void
-
-Subscribes to audio renderer change events.
+### on('deviceChange')(deprecated)
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+on(type: 'deviceChange', callback: Callback): void
-**Parameters**
+Subscribes to device change events. When a device is connected or disconnected, registered clients will receive the callback.
-| Name | Type | Mandatory | Description |
-| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
-| type | string | Yes | Event type. The event `'audioRendererChange'` is triggered when the audio renderer changes. |
-| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Yes | Callback used to return the result. |
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [on](#on9) in **AudioRoutingManager**.
-**Error codes**
+**System capability**: SystemCapability.Multimedia.Audio.Device
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+**Parameters**
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+| Name | Type | Mandatory| Description |
+| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
+| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | Yes | Callback used to return the device update details. |
**Example**
```js
-audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
- console.info(`## RendererChange on is called for ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
- console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
- console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
- console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
- console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
- for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
- console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
- console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
- }
- }
+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('audioRendererChange')9+
-
-off(type: "audioRendererChange"): void
-
-Unsubscribes from audio renderer change events.
+### off('deviceChange')(deprecated)
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+off(type: 'deviceChange', callback?: Callback): void
-**Parameters**
+Unsubscribes from device change events.
-| Name | Type | Mandatory| Description |
-| -------- | ------- | ---- | ---------------- |
-| type | string | Yes | Event type. The event `'audioRendererChange'` is triggered when the audio renderer changes.|
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [off](#off9) in **AudioRoutingManager**.
-**Error codes**
+**System capability**: SystemCapability.Multimedia.Audio.Device
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+**Parameters**
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
+| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | No | Callback used to return the device update details. |
**Example**
```js
-audioStreamManager.off('audioRendererChange');
-console.info('######### RendererChange Off is called #########');
+audioManager.off('deviceChange', (deviceChanged) => {
+ console.info('Should be no callback.');
+});
```
-### on('audioCapturerChange')9+
+### on('interrupt')(deprecated)
-on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArray>): void
+on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\): void
-Subscribes to audio capturer change events.
+Subscribes to audio interruption events. When the application's audio is interrupted by another playback event, the application will receive the callback.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+Same as [on('audioInterrupt')](#onaudiointerrupt9), this API is used to listen for focus changes. However, this API is used in scenarios without audio streams (no **AudioRenderer** instance is created), such as frequency modulation (FM) and voice wakeup.
+
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9.
+
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------- | --------- | ----------------------------------------------------------------------- |
-| type | string | Yes | Event type. The event `'audioCapturerChange'` is triggered when the audio capturer changes. |
-| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'interrupt'** means the audio interruption event, which is triggered when the audio playback of the current application is interrupted by another application.|
+| interrupt | AudioInterrupt | Yes | Audio interruption event type. |
+| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | Yes | Callback invoked for the audio interruption event. |
**Example**
```js
-audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`## CapChange on is called for element ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- 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}`);
- 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}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
+let interAudioInterrupt = {
+ streamUsage:2,
+ contentType:0,
+ pauseWhenDucked:true
+};
+audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
+ if (InterruptAction.actionType === 0) {
+ console.info('An event to gain the audio focus starts.');
+ console.info(`Focus gain event: ${InterruptAction} `);
+ }
+ if (InterruptAction.actionType === 1) {
+ console.info('An audio interruption event starts.');
+ console.info(`Audio interruption event: ${InterruptAction} `);
}
});
```
-### off('audioCapturerChange')9+
+### off('interrupt')(deprecated)
-off(type: "audioCapturerChange"): void;
+off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\): void
-Unsubscribes from audio capturer change events.
+Unsubscribes from audio interruption events.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9.
+
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | -------- | --- | ------------------------------------------------------------- |
-| type | string |Yes | Event type. The event `'audioCapturerChange'` is triggered when the audio capturer changes.|
+| Name | Type | Mandatory| Description |
+| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'interrupt'** means the audio interruption event, which is triggered when the audio playback of the current application is interrupted by another application.|
+| interrupt | AudioInterrupt | Yes | Audio interruption event type. |
+| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | No | Callback invoked for the audio interruption event. |
**Example**
```js
-audioStreamManager.off('audioCapturerChange');
-console.info('######### CapturerChange Off is called #########');
-
+let interAudioInterrupt = {
+ streamUsage:2,
+ contentType:0,
+ pauseWhenDucked:true
+};
+audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
+ if (InterruptAction.actionType === 0) {
+ console.info('An event to release the audio focus starts.');
+ console.info(`Focus release event: ${InterruptAction} `);
+ }
+});
```
-### isActive9+
+## AudioVolumeManager9+
-isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
+Implements audio volume management. Before calling an API in **AudioVolumeManager**, you must use [getVolumeManager](#getvolumemanager9) to obtain an **AudioVolumeManager** instance.
-Checks whether a stream is active. This API uses an asynchronous callback to return the result.
+### getVolumeGroupInfos9+
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+getVolumeGroupInfos(networkId: string, callback: AsyncCallback\): void
+
+Obtains the volume groups. This API uses an asynchronous callback to return the result.
+
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
+| networkId | string | Yes | Network ID of the device. The network ID of the local device is **audio.LOCAL_NETWORK_ID**. |
+| callback | AsyncCallback<[VolumeGroupInfos](#volumegroupinfos9)> | Yes | Callback used to return the volume group information array.|
**Example**
-
```js
-audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err, value) => {
if (err) {
- console.error(`Failed to obtain the active status of the stream. ${err}`);
+ console.error(`Failed to obtain the volume group infos list. ${err}`);
return;
}
- console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
+ console.info('Callback invoked to indicate that the volume group infos list is obtained.');
});
```
-### isActive9+
+### getVolumeGroupInfos9+
-isActive(volumeType: AudioVolumeType): Promise<boolean>
+getVolumeGroupInfos(networkId: string\): Promise
-Checks whether a stream is active. This API uses a promise to return the result.
+Obtains the volume groups. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ----------------------------------- | ---- | ------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------| ---- | -------------------- |
+| networkId | string | Yes | Network ID of the device. The network ID of the local device is **audio.LOCAL_NETWORK_ID**. |
**Return value**
-| Type | Description |
-| ---------------------- | -------------------------------------------------------- |
-| Promise<boolean> | Promise used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
+| Type | Description |
+| ------------------- | ----------------------------- |
+| Promise<[VolumeGroupInfos](#volumegroupinfos9)> | Volume group information array.|
**Example**
```js
-audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
-});
-```
-
-## AudioRoutingManager9+
-
-Implements audio routing management. Before calling any API in **AudioRoutingManager**, you must use [getRoutingManager](#getroutingmanager9) to obtain an **AudioRoutingManager** instance.
+async function getVolumeGroupInfos(){
+ let volumegroupinfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
+ console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
+}
+```
-### getDevices9+
+### getVolumeGroupManager9+
-getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
+getVolumeGroupManager(groupId: number, callback: AsyncCallback\): void
-Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.
+Obtains the audio group manager. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
| Name | Type | Mandatory| Description |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
-| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
-| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Yes | Callback used to return the device list.|
+| groupId | number | Yes | Volume group ID. |
+| callback | AsyncCallback<[AudioVolumeGroupManager](#audiovolumegroupmanager9)> | Yes | Callback used to return the audio group manager.|
**Example**
```js
-audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
+let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
+audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
if (err) {
- console.error(`Failed to obtain the device list. ${err}`);
+ console.error(`Failed to obtain the volume group infos list. ${err}`);
return;
}
- console.info('Callback invoked to indicate that the device list is obtained.');
+ console.info('Callback invoked to indicate that the volume group infos list is obtained.');
});
+
```
-### getDevices9+
+### getVolumeGroupManager9+
-getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
+getVolumeGroupManager(groupId: number\): Promise
-Obtains the audio devices with a specific flag. This API uses a promise to return the result.
+Obtains the audio group manager. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ------------------------- | ---- | ---------------- |
-| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag.|
+| Name | Type | Mandatory| Description |
+| ---------- | ---------------------------------------- | ---- | ---------------- |
+| groupId | number | Yes | Volume group ID. |
**Return value**
-| Type | Description |
-| ------------------------------------------------------------ | ------------------------- |
-| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise used to return the device list.|
+| Type | Description |
+| ------------------- | ----------------------------- |
+| Promise< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | Promise used to return the audio group manager.|
**Example**
```js
-audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
-});
+let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
+let audioVolumeGroupManager;
+getVolumeGroupManager();
+async function getVolumeGroupManager(){
+ audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
+ console.info('Callback invoked to indicate that the volume group infos list is obtained.');
+}
+
```
-### on9+
+### on('volumeChange')9+
-on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback): void
+on(type: 'volumeChange', callback: Callback\): void
-Subscribes to device change events. When a device is connected or disconnected, registered clients will receive the callback.
+Subscribes to system volume change events. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
-| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
-| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
-| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | Yes | Callback used to return the device update details. |
+| Name | Type | Mandatory| Description |
+| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'volumeChange'** means the system volume change event, which is triggered when the system volume changes.|
+| callback | Callback<[VolumeEvent](#volumeevent8)> | Yes | Callback used to return the system volume change event. |
**Error codes**
@@ -2366,2108 +2340,2324 @@ For details about the error codes, see [Audio Error Codes](../errorcodes/errorco
| ID| Error Message|
| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+| 6800101 | if input parameter value error |
**Example**
```js
-audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (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);
+audioVolumeManager.on('volumeChange', (volumeEvent) => {
+ console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
+ console.info(`Volume level: ${volumeEvent.volume} `);
+ console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});
```
-### off9+
-
-off(type: 'deviceChange', callback?: Callback): void
-
-Unsubscribes from device change events.
-
-**System capability**: SystemCapability.Multimedia.Audio.Device
-
-**Parameters**
-
-| Name | Type | Mandatory| Description |
-| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
-| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
-| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | No | Callback used to return the device update details. |
+## AudioVolumeGroupManager9+
-**Error codes**
+Manages the volume of an audio group. Before calling any API in **AudioVolumeGroupManager**, you must use [getVolumeGroupManager](#getvolumegroupmanager9) to obtain an **AudioVolumeGroupManager** instance.
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+**System API**: This is a system API.
-| ID| Error Message|
-| ------- | --------------------------------------------|
-| 6800101 | if input parameter value error. |
+**System capability**: SystemCapability.Multimedia.Audio.Volume
-**Example**
+### setVolume9+
-```js
-audioRoutingManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
-});
-```
+setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
-### selectInputDevice9+
+Sets the volume for a stream. This API uses an asynchronous callback to return the result.
-selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-Selects an audio input device. Currently, only one input device can be selected. This API uses an asynchronous callback to return the result.
+This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
-| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Input device. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| volume | number | Yes | Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**.|
+| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
**Example**
-```js
-let inputAudioDeviceDescriptor = [{
- "deviceRole":audio.DeviceRole.INPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-async function selectInputDevice(){
- audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
- if (err) {
- console.error(`Result ERROR: ${err}`);
- } else {
- console.info('Select input devices result callback: SUCCESS'); }
- });
-}
+```js
+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.');
+});
```
-### selectInputDevice9+
+### setVolume9+
-selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise<void>
+setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
-**System API**: This is a system API.
+Sets the volume for a stream. This API uses a promise to return the result.
-Selects an audio input device. Currently, only one input device can be selected. This API uses a promise to return the result.
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-**System capability**: SystemCapability.Multimedia.Audio.Device
+This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
-| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Input device. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| volume | number | Yes | Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**.|
**Return value**
-| Type | Description |
-| --------------------- | --------------------------- |
-| Promise<void> | Promise used to return the result.|
+| Type | Description |
+| ------------------- | ----------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-let inputAudioDeviceDescriptor =[{
- "deviceRole":audio.DeviceRole.INPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-
-async function getRoutingManager(){
- audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
- console.info('Select input devices result promise: SUCCESS');
- }).catch((err) => {
- console.error(`Result ERROR: ${err}`);
- });
-}
+audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
+ console.info('Promise returned to indicate a successful volume setting.');
+});
```
-### setCommunicationDevice9+
+### getVolume9+
-setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void
+getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
-Sets a communication device to the active state. This API uses an asynchronous callback to return the result.
+Obtains the volume of a stream. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ------------------------------------- | ---- | ------------------------ |
-| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type. |
-| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| callback | AsyncCallback<number> | Yes | Callback used to return the volume.|
**Example**
```js
-audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
+audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
- console.error(`Failed to set the active status of the device. ${err}`);
+ console.error(`Failed to obtain the volume. ${err}`);
return;
}
- console.info('Callback invoked to indicate that the device is set to the active status.');
+ console.info('Callback invoked to indicate that the volume is obtained.');
});
```
-### setCommunicationDevice9+
+### getVolume9+
-setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>
+getVolume(volumeType: AudioVolumeType): Promise<number>
-Sets a communication device to the active state. This API uses a promise to return the result.
+Obtains the volume of a stream. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ----------------------------------------------------- | ---- | ------------------ |
-| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type.|
-| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
**Return value**
-| Type | Description |
-| ------------------- | ------------------------------- |
-| Promise<void> | Promise used to return the result.|
+| Type | Description |
+| --------------------- | ------------------------- |
+| Promise<number> | Promise used to return the volume.|
**Example**
```js
-audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
- console.info('Promise returned to indicate that the device is set to the active status.');
+audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
});
```
-### isCommunicationDeviceActive9+
+### getMinVolume9+
-isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void
+getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
-Checks whether a communication device is active. This API uses an asynchronous callback to return the result.
+Obtains the minimum volume allowed for a stream. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
-| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type. |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the active state of the device.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| callback | AsyncCallback<number> | Yes | Callback used to return the minimum volume.|
**Example**
```js
-audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
+audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
- console.error(`Failed to obtain the active status of the device. ${err}`);
+ console.error(`Failed to obtain the minimum volume. ${err}`);
return;
}
- console.info('Callback invoked to indicate that the active status of the device is obtained.');
+ console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
});
```
-### isCommunicationDeviceActive9+
+### getMinVolume9+
-isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>
+getMinVolume(volumeType: AudioVolumeType): Promise<number>
-Checks whether a communication device is active. This API uses a promise to return the result.
+Obtains the minimum volume allowed for a stream. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ---------- | ---------------------------------------------------- | ---- | ------------------ |
-| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
**Return value**
-| Type | Description |
-| ---------------------- | ------------------------------- |
-| Promise<boolean> | Promise used to return the active state of the device.|
+| Type | Description |
+| --------------------- | ------------------------- |
+| Promise<number> | Promise used to return the minimum volume.|
**Example**
```js
-audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
- console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
+audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
});
```
-### selectOutputDevice9+
-
-selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
+### getMaxVolume9+
-Selects an audio output device. Currently, only one output device can be selected. This API uses an asynchronous callback to return the result.
+getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
-**System API**: This is a system API.
+Obtains the maximum volume allowed for a stream. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
-| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ---------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| callback | AsyncCallback<number> | Yes | Callback used to return the maximum volume.|
**Example**
+
```js
-let outputAudioDeviceDescriptor = [{
- "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-async function selectOutputDevice(){
- audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err) => {
- if (err) {
- console.error(`Result ERROR: ${err}`);
- } else {
- console.info('Select output devices result callback: SUCCESS'); }
- });
-}
+audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+ if (err) {
+ console.error(`Failed to obtain the maximum volume. ${err}`);
+ return;
+ }
+ console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
+});
```
-### selectOutputDevice9+
-
-selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise<void>
+### getMaxVolume9+
-**System API**: This is a system API.
+getMaxVolume(volumeType: AudioVolumeType): Promise<number>
-Selects an audio output device. Currently, only one output device can be selected. This API uses a promise to return the result.
+Obtains the maximum volume allowed for a stream. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
-| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
**Return value**
-| Type | Description |
-| --------------------- | --------------------------- |
-| Promise<void> | Promise used to return the result.|
+| Type | Description |
+| --------------------- | ----------------------------- |
+| Promise<number> | Promise used to return the maximum volume.|
**Example**
```js
-let outputAudioDeviceDescriptor =[{
- "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-
-async function selectOutputDevice(){
- audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
- console.info('Select output devices result promise: SUCCESS');
- }).catch((err) => {
- console.error(`Result ERROR: ${err}`);
- });
-}
+audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
+ console.info('Promised returned to indicate that the maximum volume is obtained.');
+});
```
-### selectOutputDeviceByFilter9+
+### mute9+
-selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
+mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void
-**System API**: This is a system API.
+Mutes or unmutes a stream. This API uses an asynchronous callback to return the result.
-Selects an audio output device based on the filter criteria. Currently, only one output device can be selected. This API uses an asynchronous callback to return the result.
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-**System capability**: SystemCapability.Multimedia.Audio.Device
+This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
-| filter | [AudioRendererFilter](#audiorendererfilter9) | Yes | Filter criteria. |
-| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the stream, and **false** means the opposite.|
+| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
**Example**
-```js
-let outputAudioRendererFilter = {
- "uid":20010041,
- "rendererInfo": {
- "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
- "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
- "rendererFlags":0 },
- "rendererId":0 };
-let outputAudioDeviceDescriptor = [{
- "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-async function selectOutputDeviceByFilter(){
- audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err) => {
- if (err) {
- console.error(`Result ERROR: ${err}`);
- } else {
- console.info('Select output devices by filter result callback: SUCCESS'); }
- });
-}
+```js
+audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
+ if (err) {
+ console.error(`Failed to mute the stream. ${err}`);
+ return;
+ }
+ console.info('Callback invoked to indicate that the stream is muted.');
+});
```
-### selectOutputDeviceByFilter9+
+### mute9+
-selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise<void>
+mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
-**System API**: This is a system API.
+Mutes or unmutes a stream. This API uses a promise to return the result.
-Selects an audio output device based on the filter criteria. Currently, only one output device can be selected. This API uses a promise to return the result.
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-**System capability**: SystemCapability.Multimedia.Audio.Device
+This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory| Description |
-| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
-| filter | [AudioRendererFilter](#audiorendererfilter9) | Yes | Filter criteria. |
-| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the stream, and **false** means the opposite.|
**Return value**
-| Type | Description |
-| --------------------- | --------------------------- |
-| Promise<void> | Promise used to return the result.|
+| Type | Description |
+| ------------------- | ----------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-let outputAudioRendererFilter = {
- "uid":20010041,
- "rendererInfo": {
- "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
- "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
- "rendererFlags":0 },
- "rendererId":0 };
-let outputAudioDeviceDescriptor = [{
- "deviceRole":audio.DeviceRole.OUTPUT_DEVICE,
- "networkId":audio.LOCAL_NETWORK_ID,
- "interruptGroupId":1,
- "volumeGroupId":1 }];
-
-async function selectOutputDeviceByFilter(){
- audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
- console.info('Select output devices by filter result promise: SUCCESS');
- }).catch((err) => {
- console.error(`Result ERROR: ${err}`);
- })
-}
+audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
+ console.info('Promise returned to indicate that the stream is muted.');
+});
```
-## AudioRendererChangeInfoArray9+
-
-Defines an **AudioRenderChangeInfo** array, which is read-only.
+### isMute9+
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
-## AudioRendererChangeInfo9+
+Checks whether a stream is muted. This API uses an asynchronous callback to return the result.
-Describes the audio renderer change event.
+**System capability**: SystemCapability.Multimedia.Audio.Volume
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**Parameters**
-| Name | Type | Readable | Writable | Description |
-| ------------- | ---------------------------------------- | -------- | -------- | ---------------------------------------------------------- |
-| streamId | number | Yes | No | Unique ID of an audio stream. |
-| clientUid | number | Yes | No | UID of the audio renderer client.
This is a system API. |
-| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | Yes | No | Audio renderer information. |
-| rendererState | [AudioState](#audiostate) | Yes | No | Audio state.
This is a system API. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the stream. The value **true** means that the stream is muted, and **false** means the opposite.|
**Example**
```js
-import audio from '@ohos.multimedia.audio';
-
-let audioStreamManager;
-let resultFlag = false;
-let audioManager = audio.getAudioManager();
-
-audioManager.getStreamManager((err, data) => {
+audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
- console.error(`Get AudioStream Manager : ERROR : ${err}`);
- } else {
- audioStreamManager = data;
- console.info('Get AudioStream Manager : Success');
+ console.error(`Failed to obtain the mute status. ${err}`);
+ return;
}
+ console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
});
+```
-audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
- for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
- console.info(`## RendererChange on is called for ${i} ##`);
- console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
- console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
- console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
- 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}`);
- 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}`);
- console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for ${i} is: ${resultFlag}`);
- }
- }
+### isMute9+
+
+isMute(volumeType: AudioVolumeType): Promise<boolean>
+
+Checks whether a stream is muted. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type.|
+
+**Return value**
+
+| Type | Description |
+| ---------------------- | ------------------------------------------------------ |
+| Promise<boolean> | Promise used to return the mute status of the stream. The value **true** means that the stream is muted, and **false** means the opposite.|
+
+**Example**
+
+```js
+audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
});
```
+### setRingerMode9+
-## AudioCapturerChangeInfoArray9+
+setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
-Defines an **AudioCapturerChangeInfo** array, which is read-only.
+Sets the ringer mode. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-## AudioCapturerChangeInfo9+
+This permission is required only for muting or unmuting the ringer.
-Describes the audio capturer change event.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Volume
-| Name | Type | Readable | Writable | Description |
-| ------------- | ---------------------------------------- | -------- | -------- | ---------------------------------------------------------- |
-| streamId | number | Yes | No | Unique ID of an audio stream. |
-| clientUid | number | Yes | No | UID of the audio capturer client.
This is a system API. |
-| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | Yes | No | Audio capturer information. |
-| capturerState | [AudioState](#audiostate) | Yes | No | Audio state.
This is a system API. |
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------------- | ---- | ------------------------ |
+| mode | [AudioRingMode](#audioringmode) | Yes | Ringer mode. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
```js
-import audio from '@ohos.multimedia.audio';
-
-const audioManager = audio.getAudioManager();
-let audioStreamManager;
-audioManager.getStreamManager((err, data) => {
+audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
if (err) {
- console.error(`getStreamManager : Error: ${err}`);
- } else {
- console.info('getStreamManager : Success : SUCCESS');
- audioStreamManager = data;
- }
-});
-
-let resultFlag = false;
-audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
- for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
- console.info(`## CapChange on is called for element ${i} ##`);
- console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
- console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
- 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}`);
- 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}`);
- console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
- console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
- console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
- console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
- console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
- console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
- }
- if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
- resultFlag = true;
- console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
- }
+ console.error(`Failed to set the ringer mode. ${err}`);
+ return;
}
+ console.info('Callback invoked to indicate a successful setting of the ringer mode.');
});
```
-## AudioDeviceDescriptors
+### setRingerMode9+
-Defines an [AudioDeviceDescriptor](#audiodevicedescriptor) array, which is read-only.
+setRingerMode(mode: AudioRingMode): Promise<void>
-## AudioDeviceDescriptor
+Sets the ringer mode. This API uses a promise to return the result.
-Describes an audio device.
+**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-**System capability**: SystemCapability.Multimedia.Audio.Device
+This permission is required only for muting or unmuting the ringer.
-| Name | Type | Readable | Writable | Description |
-| ----------------------------- | ------------------------- | -------- | -------- | ------------------------------------------------------------ |
-| deviceRole | [DeviceRole](#devicerole) | Yes | No | Device role. |
-| deviceType | [DeviceType](#devicetype) | Yes | No | Device type. |
-| id9+ | number | Yes | No | Device ID. |
-| name9+ | string | Yes | No | Device name. |
-| address9+ | string | Yes | No | Device address. |
-| sampleRates9+ | Array<number> | Yes | No | Supported sampling rates. |
-| channelCounts9+ | Array<number> | Yes | No | Number of channels supported. |
-| channelMasks9+ | Array<number> | Yes | No | Supported channel masks. |
-| networkId9+ | string | Yes | No | ID of the device network.
This is a system API. |
-| interruptGroupId9+ | number | Yes | No | ID of the interruption group to which the device belongs.
This is a system API. |
-| volumeGroupId9+ | number | Yes | No | ID of the volume group to which the device belongs.
This is a system API. |
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------------------------------- | ---- | -------------- |
+| mode | [AudioRingMode](#audioringmode) | Yes | Ringer mode.|
+
+**Return value**
+
+| Type | Description |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-import audio from '@ohos.multimedia.audio';
+audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
+ console.info('Promise returned to indicate a successful setting of the ringer mode.');
+});
+```
-function displayDeviceProp(value) {
- deviceRoleValue = value.deviceRole;
- deviceTypeValue = value.deviceType;
-}
+### getRingerMode9+
-let deviceRoleValue = null;
-let deviceTypeValue = null;
-const promise = audio.getAudioManager().getDevices(1);
-promise.then(function (value) {
- console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
- value.forEach(displayDeviceProp);
- if (deviceTypeValue != null && deviceRoleValue != null){
- console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS');
- } else {
- console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL');
+getRingerMode(callback: AsyncCallback<AudioRingMode>): void
+
+Obtains the ringer mode. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------------------------------- | ---- | ------------------------ |
+| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the ringer mode.|
+
+**Example**
+
+```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}.`);
});
```
-## AudioRendererFilter9+
+### getRingerMode9+
+
+getRingerMode(): Promise<AudioRingMode>
+
+Obtains the ringer mode. This API uses a promise to return the result.
-Implements filter criteria. Before calling **selectOutputDeviceByFilter**, you must obtain an **AudioRendererFilter** instance.
+**System capability**: SystemCapability.Multimedia.Audio.Volume
-**System API**: This is a system API.
+**Return value**
-| Name | Type | Mandatory | Description |
-| ------------ | ---------------------------------------- | --------- | ------------------------------------------------------------ |
-| uid | number | Yes | Application ID.
**System capability**: SystemCapability.Multimedia.Audio.Core |
-| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | No | Audio renderer information.
**System capability**: SystemCapability.Multimedia.Audio.Renderer |
-| rendererId | number | No | Unique ID of an audio stream.
**System capability**: SystemCapability.Multimedia.Audio.Renderer |
+| Type | Description |
+| ---------------------------------------------- | ------------------------------- |
+| Promise<[AudioRingMode](#audioringmode)> | Promise used to return the ringer mode.|
**Example**
```js
-let outputAudioRendererFilter = {
- "uid":20010041,
- "rendererInfo": {
- "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
- "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
- "rendererFlags":0 },
- "rendererId":0 };
+audioVolumeGroupManager.getRingerMode().then((value) => {
+ console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
+});
```
-## AudioRenderer8+
+### on('ringerModeChange')9+
-Provides APIs for audio rendering. Before calling any API in **AudioRenderer**, you must use [createAudioRenderer](#audiocreateaudiorenderer8) to create an **AudioRenderer** instance.
+on(type: 'ringerModeChange', callback: Callback\): void
-### Attributes
+Subscribes to ringer mode change events.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Volume
-| Name | Type | Readable | Writable | Description |
-| ------------------ | -------------------------- | -------- | -------- | --------------------- |
-| state8+ | [AudioState](#audiostate8) | Yes | No | Audio renderer state. |
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'ringerModeChange'** means the ringer mode change event, which is triggered when a ringer mode change is detected.|
+| callback | Callback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the system volume change event. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-let state = audioRenderer.state;
+audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
+ console.info(`Updated ringermode: ${ringerMode}`);
+});
```
+### setMicrophoneMute9+
-### getRendererInfo8+
+setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
-getRendererInfo(callback: AsyncCallback): void
+Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.
-Obtains the renderer information of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
+**Required permissions**: ohos.permission.MANAGE_AUDIO_CONFIG
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------------------------------------------- | :-------- | :------------------------------------------------ |
-| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | Yes | Callback used to return the renderer information. |
+| Name | Type | Mandatory| Description |
+| -------- | ------------------------- | ---- | --------------------------------------------- |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
+| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
**Example**
```js
-audioRenderer.getRendererInfo((err, rendererInfo) => {
- console.info('Renderer GetRendererInfo:');
- console.info(`Renderer content: ${rendererInfo.content}`);
- console.info(`Renderer usage: ${rendererInfo.usage}`);
- console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
+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.');
});
```
-### getRendererInfo8+
+### setMicrophoneMute9+
-getRendererInfo(): Promise
+setMicrophoneMute(mute: boolean): Promise<void>
-Obtains the renderer information of this **AudioRenderer** instance. This API uses a promise to return the result.
+Mutes or unmutes the microphone. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**Required permissions**: ohos.permission.MANAGE_AUDIO_CONFIG
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name| Type | Mandatory| Description |
+| ------ | ------- | ---- | --------------------------------------------- |
+| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite.|
**Return value**
-| Type | Description |
-| -------------------------------------------------- | ------------------------------------------------ |
-| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise used to return the renderer information. |
+| Type | Description |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-audioRenderer.getRendererInfo().then((rendererInfo) => {
- console.info('Renderer GetRendererInfo:');
- console.info(`Renderer content: ${rendererInfo.content}`);
- console.info(`Renderer usage: ${rendererInfo.usage}`);
- console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
-}).catch((err) => {
- console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
+audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
+ console.info('Promise returned to indicate that the microphone is muted.');
});
```
-### getStreamInfo8+
+### isMicrophoneMute9+
-getStreamInfo(callback: AsyncCallback): void
+isMicrophoneMute(callback: AsyncCallback<boolean>): void
-Obtains the stream information of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
+Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------------------------------------- | :-------- | :---------------------------------------------- |
-| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | Yes | Callback used to return the stream information. |
+| Name | Type | Mandatory| Description |
+| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
**Example**
```js
-audioRenderer.getStreamInfo((err, streamInfo) => {
- console.info('Renderer GetStreamInfo:');
- console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Renderer channel: ${streamInfo.channels}`);
- console.info(`Renderer format: ${streamInfo.sampleFormat}`);
- console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
+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}.`);
});
```
-### getStreamInfo8+
+### isMicrophoneMute9+
-getStreamInfo(): Promise
+isMicrophoneMute(): Promise<boolean>
-Obtains the stream information of this **AudioRenderer** instance. This API uses a promise to return the result.
+Checks whether the microphone is muted. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Volume
**Return value**
-| Type | Description |
-| :--------------------------------------------- | :--------------------------------------------- |
-| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise used to return the stream information. |
+| Type | Description |
+| ---------------------- | ------------------------------------------------------------ |
+| Promise<boolean> | Promise used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite.|
**Example**
```js
-audioRenderer.getStreamInfo().then((streamInfo) => {
- console.info('Renderer GetStreamInfo:');
- console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Renderer channel: ${streamInfo.channels}`);
- console.info(`Renderer format: ${streamInfo.sampleFormat}`);
- console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
+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
+
+Subscribes to system microphone state change events.
+
+Currently, when multiple **AudioManager** instances are used in a single process, only the subscription of the last instance takes effect, and the subscription of other instances is overwritten (even if the last instance does not initiate a subscription). Therefore, you are advised to use a single **AudioManager** instance.
+
+**System capability**: SystemCapability.Multimedia.Audio.Volume
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'micStateChange'** means the system microphone state change event, which is triggered when the system microphone state changes.|
+| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | Yes | Callback used to return the changed microphone state. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
+
+**Example**
+
+```js
+audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
+ console.info(`Current microphone status is: ${micStateChange.mute} `);
+});
```
-### getAudioStreamId9+
+## AudioStreamManager9+
-getAudioStreamId(callback: AsyncCallback): void
+Implements audio stream management. Before calling any API in **AudioStreamManager**, you must use [getStreamManager](#getstreammanager9) to obtain an **AudioStreamManager** instance.
-Obtains the stream ID of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
+### getCurrentAudioRendererInfoArray9+
+
+getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void
+
+Obtains the information about the current audio renderer. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------- | :-------- | :------------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the stream ID. |
+| Name | Type | Mandatory | Description |
+| -------- | ----------------------------------- | -------- | --------------------------- |
+| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Yes | Callback used to return the audio renderer information.|
**Example**
```js
-audioRenderer.getAudioStreamId((err, streamid) => {
- console.info(`Renderer GetStreamId: ${streamid}`);
+audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
+ console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
+ if (err) {
+ console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
+ } else {
+ if (AudioRendererChangeInfoArray != null) {
+ for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+ let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+ console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
+ console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
+ console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
+ console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
+ console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
+ for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+ console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
+ console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
+ console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
+ }
+ }
+ }
+ }
});
-
```
-### getAudioStreamId9+
+### getCurrentAudioRendererInfoArray9+
-getAudioStreamId(): Promise
+getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray>
-Obtains the stream ID of this **AudioRenderer** instance. This API uses a promise to return the result.
+Obtains the information about the current audio renderer. This API uses a promise to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| :--------------- | :------------------------------------ |
-| Promise | Promise used to return the stream ID. |
+| Type | Description |
+| ---------------------------------------------------------------------------------| --------------------------------------- |
+| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Promise used to return the audio renderer information. |
**Example**
```js
-audioRenderer.getAudioStreamId().then((streamid) => {
- console.info(`Renderer getAudioStreamId: ${streamid}`);
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
-
+async function getCurrentAudioRendererInfoArray(){
+ await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
+ console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
+ if (AudioRendererChangeInfoArray != null) {
+ for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+ let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+ console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
+ console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
+ console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
+ console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
+ console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
+ for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+ console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
+ console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
+ console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
+ }
+ }
+ }
+ }).catch((err) => {
+ console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
+ });
+}
```
-### start8+
+### getCurrentAudioCapturerInfoArray9+
-start(callback: AsyncCallback): void
+getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void
-Starts the renderer. This API uses an asynchronous callback to return the result.
+Obtains the information about the current audio capturer. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
+| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Yes | Callback used to return the audio capturer information.|
**Example**
```js
-audioRenderer.start((err) => {
+audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
+ console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
if (err) {
- console.error('Renderer start failed.');
+ console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
} else {
- console.info('Renderer start success.');
+ if (AudioCapturerChangeInfoArray != null) {
+ for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+ console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
+ 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}`);
+ 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}`);
+ console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
+ }
+ }
+ }
}
});
-
```
-### start8+
+### getCurrentAudioCapturerInfoArray9+
-start(): Promise
+getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray>
-Starts the renderer. This API uses a promise to return the result.
+Obtains the information about the current audio capturer. This API uses a promise to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Type | Description |
+| -----------------------------------------------------------------------------| ----------------------------------- |
+| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Promise used to return the audio capturer information. |
**Example**
```js
-audioRenderer.start().then(() => {
- console.info('Renderer started');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
-
+async function getCurrentAudioCapturerInfoArray(){
+ await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
+ console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
+ if (AudioCapturerChangeInfoArray != null) {
+ for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+ console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
+ 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}`);
+ 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}`);
+ console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
+ }
+ }
+ }
+ }).catch((err) => {
+ console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
+ });
+}
```
-### pause8+
+### on('audioRendererChange')9+
-pause(callback: AsyncCallback\): void
+on(type: "audioRendererChange", callback: Callback<AudioRendererChangeInfoArray>): void
-Pauses rendering. This API uses an asynchronous callback to return the result.
+Subscribes to audio renderer change events.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
+| type | string | Yes | Event type. The event `'audioRendererChange'` is triggered when the audio renderer changes. |
+| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Yes | Callback used to return the result. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-audioRenderer.pause((err) => {
- if (err) {
- console.error('Renderer pause failed');
- } else {
- console.info('Renderer paused.');
+audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
+ for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+ let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
+ console.info(`## RendererChange on is called for ${i} ##`);
+ console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
+ console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
+ console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
+ console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
+ console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
+ for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
+ console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
+ console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
+ console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
+ }
}
});
-
```
-### pause8+
+### off('audioRendererChange')9+
-pause(): Promise\
+off(type: "audioRendererChange"): void
-Pauses rendering. This API uses a promise to return the result.
+Unsubscribes from audio renderer change events.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Return value**
+**Parameters**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Name | Type | Mandatory| Description |
+| -------- | ------- | ---- | ---------------- |
+| type | string | Yes | Event type. The event `'audioRendererChange'` is triggered when the audio renderer changes.|
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-audioRenderer.pause().then(() => {
- console.info('Renderer paused');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
-
+audioStreamManager.off('audioRendererChange');
+console.info('######### RendererChange Off is called #########');
```
-### drain8+
+### on('audioCapturerChange')9+
-drain(callback: AsyncCallback\): void
+on(type: "audioCapturerChange", callback: Callback<AudioCapturerChangeInfoArray>): void
-Drains the playback buffer. This API uses an asynchronous callback to return the result.
+Subscribes to audio capturer change events.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| -------- | ------- | --------- | ----------------------------------------------------------------------- |
+| type | string | Yes | Event type. The event `'audioCapturerChange'` is triggered when the audio capturer changes. |
+| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Yes | Callback used to return the result. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-audioRenderer.drain((err) => {
- if (err) {
- console.error('Renderer drain failed');
- } else {
- console.info('Renderer drained.');
+audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
+ for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+ console.info(`## CapChange on is called for element ${i} ##`);
+ console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
+ 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}`);
+ 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}`);
+ console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
+ console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
+ console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
+ }
}
});
-
```
-### drain8+
+### off('audioCapturerChange')9+
-drain(): Promise\
+off(type: "audioCapturerChange"): void;
-Drains the playback buffer. This API uses a promise to return the result.
+Unsubscribes from audio capturer change events.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
-**Return value**
+**Parameters**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Name | Type | Mandatory| Description |
+| -------- | -------- | --- | ------------------------------------------------------------- |
+| type | string |Yes | Event type. The event `'audioCapturerChange'` is triggered when the audio capturer changes.|
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-audioRenderer.drain().then(() => {
- console.info('Renderer drained successfully');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
+audioStreamManager.off('audioCapturerChange');
+console.info('######### CapturerChange Off is called #########');
```
-### stop8+
+### isActive9+
-stop(callback: AsyncCallback\): void
+isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
-Stops rendering. This API uses an asynchronous callback to return the result.
+Checks whether a stream is active. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream types. |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
**Example**
```js
-audioRenderer.stop((err) => {
+audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
if (err) {
- console.error('Renderer stop failed');
- } else {
- console.info('Renderer stopped.');
+ 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}.`);
});
-
```
-### stop8+
+### isActive9+
-stop(): Promise\
+isActive(volumeType: AudioVolumeType): Promise<boolean>
-Stops rendering. This API uses a promise to return the result.
+Checks whether a stream is active. This API uses a promise to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------- | ---- | ------------ |
+| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream types.|
+
**Return value**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Type | Description |
+| ---------------------- | -------------------------------------------------------- |
+| Promise<boolean> | Promise used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite.|
**Example**
```js
-audioRenderer.stop().then(() => {
- console.info('Renderer stopped successfully');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
+audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
});
-
```
-### release8+
+## AudioRoutingManager9+
-release(callback: AsyncCallback\): void
+Implements audio routing management. Before calling any API in **AudioRoutingManager**, you must use [getRoutingManager](#getroutingmanager9) to obtain an **AudioRoutingManager** instance.
-Releases the renderer. This API uses an asynchronous callback to return the result.
+### getDevices9+
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
+
+Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
+| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
+| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Yes | Callback used to return the device list.|
**Example**
```js
-audioRenderer.release((err) => {
+audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
if (err) {
- console.error('Renderer release failed');
- } else {
- console.info('Renderer released.');
+ console.error(`Failed to obtain the device list. ${err}`);
+ return;
}
+ console.info('Callback invoked to indicate that the device list is obtained.');
});
-
```
-### release8+
+### getDevices9+
-release(): Promise\
+getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
-Releases the renderer. This API uses a promise to return the result.
+Obtains the audio devices with a specific flag. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------- | ---- | ---------------- |
+| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag.|
**Return value**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Type | Description |
+| ------------------------------------------------------------ | ------------------------- |
+| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise used to return the device list.|
**Example**
```js
-audioRenderer.release().then(() => {
- console.info('Renderer released successfully');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
+audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
+ console.info('Promise returned to indicate that the device list is obtained.');
});
-
```
-### write8+
+### on9+
-write(buffer: ArrayBuffer, callback: AsyncCallback\): void
+on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback): void
-Writes the buffer. This API uses an asynchronous callback to return the result.
+Subscribes to device change events. When a device is connected or disconnected, registered clients will receive the callback.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------- | --------- | ------------------------------------------------------------ |
-| buffer | ArrayBuffer | Yes | Buffer to be written. |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, the number of bytes written is returned; otherwise, an error code is returned. |
+| Name | Type | Mandatory| Description |
+| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
+| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
+| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | Yes | Callback used to return the device update details. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-let bufferSize;
-audioRenderer.getBufferSize().then((data)=> {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
- });
-console.info(`Buffer size: ${bufferSize}`);
-let context = featureAbility.getContext();
-let path;
-async function getCacheDir(){
- path = await context.getCacheDir();
-}
-let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
-let ss = fileio.createStreamSync(filePath, 'r');
-let buf = new ArrayBuffer(bufferSize);
-ss.readSync(buf);
-audioRenderer.write(buf, (err, writtenbytes) => {
- if (writtenbytes < 0) {
- console.error('write failed.');
- } else {
- console.info(`Actual written bytes: ${writtenbytes}`);
- }
+audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (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);
});
-
```
-### write8+
+### off9+
-write(buffer: ArrayBuffer): Promise\
+off(type: 'deviceChange', callback?: Callback): void
-Writes the buffer. This API uses a promise to return the result.
+Unsubscribes from device change events.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Device
-**Return value**
+**Parameters**
-| Type | Description |
-| ---------------- | ------------------------------------------------------------ |
-| Promise\ | Promise used to return the result. If the operation is successful, the number of bytes written is returned; otherwise, an error code is returned. |
+| Name | Type | Mandatory| Description |
+| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
+| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected.|
+| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | No | Callback used to return the device update details. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID| Error Message|
+| ------- | --------------------------------------------|
+| 6800101 | if input parameter value error |
**Example**
```js
-let bufferSize;
-audioRenderer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
- }).catch((err) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
- });
-console.info(`BufferSize: ${bufferSize}`);
-let context = featureAbility.getContext();
-let path;
-async function getCacheDir(){
- path = await context.getCacheDir();
-}
-let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
-let ss = fileio.createStreamSync(filePath, 'r');
-let buf = new ArrayBuffer(bufferSize);
-ss.readSync(buf);
-audioRenderer.write(buf).then((writtenbytes) => {
- if (writtenbytes < 0) {
- console.error('write failed.');
- } else {
- console.info(`Actual written bytes: ${writtenbytes}`);
- }
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
+audioRoutingManager.off('deviceChange', (deviceChanged) => {
+ console.info('Should be no callback.');
});
-
```
-### getAudioTime8+
+### selectInputDevice9+
-getAudioTime(callback: AsyncCallback\): void
+selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
-Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses an asynchronous callback to return the result.
+Selects an audio input device. Only one input device can be selected. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------- | --------- | -------------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the timestamp. |
+| Name | Type | Mandatory| Description |
+| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
+| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Input device. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
-
```js
-audioRenderer.getAudioTime((err, timestamp) => {
- console.info(`Current timestamp: ${timestamp}`);
-});
+let inputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.INPUT_DEVICE,
+ deviceType : audio.DeviceType.EARPIECE,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
+async function selectInputDevice(){
+ audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
+ if (err) {
+ console.error(`Result ERROR: ${err}`);
+ } else {
+ console.info('Select input devices result callback: SUCCESS'); }
+ });
+}
```
-### getAudioTime8+
+### selectInputDevice9+
-getAudioTime(): Promise\
+selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise<void>
-Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses a promise to return the result.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+Selects an audio input device. Only one input device can be selected. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
+| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Input device. |
**Return value**
-| Type | Description |
-| ---------------- | ------------------------------------- |
-| Promise\ | Promise used to return the timestamp. |
+| Type | Description |
+| --------------------- | --------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-audioRenderer.getAudioTime().then((timestamp) => {
- console.info(`Current timestamp: ${timestamp}`);
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
+let inputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.INPUT_DEVICE,
+ deviceType : audio.DeviceType.EARPIECE,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
+async function getRoutingManager(){
+ audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
+ console.info('Select input devices result promise: SUCCESS');
+ }).catch((err) => {
+ console.error(`Result ERROR: ${err}`);
+ });
+}
```
-### getBufferSize8+
+### setCommunicationDevice9+
-getBufferSize(callback: AsyncCallback\): void
+setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void
-Obtains a reasonable minimum buffer size in bytes for rendering. This API uses an asynchronous callback to return the result.
+Sets a communication device to the active state. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback\ | Yes | Callback used to return the buffer size. |
+| Name | Type | Mandatory| Description |
+| ---------- | ------------------------------------- | ---- | ------------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type. |
+| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
```js
-let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
+audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
if (err) {
- console.error('getBufferSize error');
+ 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.');
});
-
```
-### getBufferSize8+
+### setCommunicationDevice9+
-getBufferSize(): Promise\
+setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void>
-Obtains a reasonable minimum buffer size in bytes for rendering. This API uses a promise to return the result.
+Sets a communication device to the active state. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Communication
+
+**Parameters**
+
+| Name | Type | Mandatory| Description |
+| ---------- | ----------------------------------------------------- | ---- | ------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type.|
+| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
**Return value**
-| Type | Description |
-| ---------------- | --------------------------------------- |
-| Promise\ | Promise used to return the buffer size. |
+| Type | Description |
+| ------------------- | ------------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-let bufferSize;
-audioRenderer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
- bufferSize = data;
-}).catch((err) => {
- console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
+audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
+ console.info('Promise returned to indicate that the device is set to the active status.');
});
-
```
-### setRenderRate8+
+### isCommunicationDeviceActive9+
-setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void
+isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void
-Sets the render rate. This API uses an asynchronous callback to return the result.
+Checks whether a communication device is active. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------------------- | --------- | ----------------------------------- |
-| rate | [AudioRendererRate](#audiorendererrate8) | Yes | Audio render rate. |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type. |
+| callback | AsyncCallback<boolean> | Yes | Callback used to return the active state of the device.|
**Example**
```js
-audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
+audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
if (err) {
- console.error('Failed to set params');
- } else {
- console.info('Callback invoked to indicate a successful render rate setting.');
+ 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.');
});
-
```
-### setRenderRate8+
+### isCommunicationDeviceActive9+
-setRenderRate(rate: AudioRendererRate): Promise\
+isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean>
-Sets the render rate. This API uses a promise to return the result.
+Checks whether a communication device is active. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Communication
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ---------------------------------------- | --------- | ------------------ |
-| rate | [AudioRendererRate](#audiorendererrate8) | Yes | Audio render rate. |
+| Name | Type | Mandatory| Description |
+| ---------- | ---------------------------------------------------- | ---- | ------------------ |
+| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | Yes | Communication device type.|
**Return value**
-| Type | Description |
-| -------------- | ---------------------------------- |
-| Promise\ | Promise used to return the result. |
+| Type | Description |
+| ---------------------- | ------------------------------- |
+| Promise<boolean> | Promise used to return the active state of the device.|
**Example**
```js
-audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
- console.info('setRenderRate SUCCESS');
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
+audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
+ console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
});
-
```
-### getRenderRate8+
+### selectOutputDevice9+
-getRenderRate(callback: AsyncCallback\): void
+selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
-Obtains the current render rate. This API uses an asynchronous callback to return the result.
+Selects an audio output device. Currently, only one output device can be selected. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System API**: This is a system API.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------------------------------------- | --------- | ---------------------------------------------- |
-| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | Yes | Callback used to return the audio render rate. |
+| Name | Type | Mandatory| Description |
+| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
+| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
-
```js
-audioRenderer.getRenderRate((err, renderrate) => {
- console.info(`getRenderRate: ${renderrate}`);
-});
+let outputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
+ deviceType : audio.DeviceType.SPEAKER,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
+async function selectOutputDevice(){
+ audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err) => {
+ if (err) {
+ console.error(`Result ERROR: ${err}`);
+ } else {
+ console.info('Select output devices result callback: SUCCESS'); }
+ });
+}
```
-### getRenderRate8+
-
-getRenderRate(): Promise\
-
-Obtains the current render rate. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
-
-**Return value**
-
-| Type | Description |
-| ------------------------------------------------- | --------------------------------------------- |
-| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise used to return the audio render rate. |
-
-**Example**
-
-```js
-audioRenderer.getRenderRate().then((renderRate) => {
- console.info(`getRenderRate: ${renderRate}`);
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
-
-```
+### selectOutputDevice9+
-### setInterruptMode9+
+selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise<void>
-setInterruptMode(mode: InterruptMode): Promise<void>
+**System API**: This is a system API.
-Sets the audio interruption mode for the application. This API uses a promise to return the result.
+Selects an audio output device. Currently, only one output device can be selected. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Interrupt
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | -------------------------------- | --------- | ------------------------ |
-| mode | [InterruptMode](#interruptmode9) | Yes | Audio interruption mode. |
+| Name | Type | Mandatory| Description |
+| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
+| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
**Return value**
-| Type | Description |
-| ------------------- | ------------------------------------------------------------ |
-| Promise<void> | Promise used to return the result. If the operation is successful, **undefined** is returned. Otherwise, **error** is returned. |
+| Type | Description |
+| --------------------- | --------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-let mode = 0;
-audioRenderer.setInterruptMode(mode).then(data=>{
- console.info('setInterruptMode Success!');
-}).catch((err) => {
- console.error(`setInterruptMode Fail: ${err}`);
-});
+let outputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
+ deviceType : audio.DeviceType.SPEAKER,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
+async function selectOutputDevice(){
+ audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
+ console.info('Select output devices result promise: SUCCESS');
+ }).catch((err) => {
+ console.error(`Result ERROR: ${err}`);
+ });
+}
```
-### setInterruptMode9+
+### selectOutputDeviceByFilter9+
-setInterruptMode(mode: InterruptMode, callback: AsyncCallback\): void
+selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void
-Sets the audio interruption mode for the application. This API uses an asynchronous callback to return the result.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Interrupt
+Selects an audio output device based on the filter criteria. Currently, only one output device can be selected. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------------------- | --------- | ----------------------------------- |
-| mode | [InterruptMode](#interruptmode9) | Yes | Audio interruption mode. |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+| Name | Type | Mandatory| Description |
+| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
+| filter | [AudioRendererFilter](#audiorendererfilter9) | Yes | Filter criteria. |
+| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
+| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
**Example**
-
```js
-let mode = 1;
-audioRenderer.setInterruptMode(mode, (err, data)=>{
- if(err){
- console.error(`setInterruptMode Fail: ${err}`);
- }
- console.info('setInterruptMode Success!');
-});
+let outputAudioRendererFilter = {
+ uid : 20010041,
+ rendererInfo : {
+ content : audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags : 0 },
+ rendererId : 0 };
+
+let outputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
+ deviceType : audio.DeviceType.SPEAKER,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
+async function selectOutputDeviceByFilter(){
+ audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err) => {
+ if (err) {
+ console.error(`Result ERROR: ${err}`);
+ } else {
+ console.info('Select output devices by filter result callback: SUCCESS'); }
+ });
+}
```
-### setVolume9+
+### selectOutputDeviceByFilter9+
-setVolume(volume: number): Promise<void>
+selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise<void>
-Sets the volume for the application. This API uses a promise to return the result.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+Selects an audio output device based on the filter criteria. Currently, only one output device can be selected. This API uses a promise to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Device
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | --------- | -------------- |
-| volume | number | Yes | Volume to set. |
+| Name | Type | Mandatory| Description |
+| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
+| filter | [AudioRendererFilter](#audiorendererfilter9) | Yes | Filter criteria. |
+| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | Yes | Output device. |
**Return value**
-| Type | Description |
-| ------------------- | ------------------------------------------------------------ |
-| Promise<void> | Promise used to return the result. If the operation is successful, **undefined** is returned. Otherwise, **error** is returned. |
+| Type | Description |
+| --------------------- | --------------------------- |
+| Promise<void> | Promise used to return the result.|
**Example**
```js
-audioRenderer.setVolume(10).then(data=>{
- console.info('setVolume Success!');
-}).catch((err) => {
- console.error(`setVolume Fail: ${err}`);
-});
+let outputAudioRendererFilter = {
+ uid : 20010041,
+ rendererInfo : {
+ content : audio.ContentType.CONTENT_TYPE_MUSIC,
+ usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
+ rendererFlags : 0 },
+ rendererId : 0 };
-```
+let outputAudioDeviceDescriptor = [{
+ deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
+ deviceType : audio.DeviceType.SPEAKER,
+ id : 1,
+ name : "",
+ address : "",
+ sampleRates : [44100],
+ channelCounts : [2],
+ channelMasks : [0],
+ networkId : audio.LOCAL_NETWORK_ID,
+ interruptGroupId : 1,
+ volumeGroupId : 1,
+}];
-### setVolume9+
+async function selectOutputDeviceByFilter(){
+ audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
+ console.info('Select output devices by filter result promise: SUCCESS');
+ }).catch((err) => {
+ console.error(`Result ERROR: ${err}`);
+ })
+}
+```
-setVolume(volume: number, callback: AsyncCallback\): void
+## AudioRendererChangeInfoArray9+
-Sets the volume for the application. This API uses an asynchronous callback to return the result.
+Defines an **AudioRenderChangeInfo** array, which is read-only.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Parameters**
+## AudioRendererChangeInfo9+
-| Name | Type | Mandatory | Description |
-| -------- | -------------------- | --------- | ----------------------------------- |
-| volume | number | Yes | Volume to set. |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. |
+Describes the audio renderer change event.
+
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
+
+| Name | Type | Readable | Writable | Description |
+| ------------- | ---------------------------------------- | -------- | -------- | ---------------------------------------------------------- |
+| streamId | number | Yes | No | Unique ID of an audio stream. |
+| clientUid | number | Yes | No | UID of the audio renderer client.
This is a system API. |
+| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | Yes | No | Audio renderer information. |
+| rendererState | [AudioState](#audiostate) | Yes | No | Audio state.
This is a system API. |
**Example**
```js
-audioRenderer.setVolume(10, (err, data)=>{
- if(err){
- console.error(`setVolume Fail: ${err}`);
+import audio from '@ohos.multimedia.audio';
+
+const audioManager = audio.getAudioManager();
+let audioStreamManager = audioManager.getStreamManager();
+let resultFlag = false;
+
+audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => {
+ for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
+ console.info(`## RendererChange on is called for ${i} ##`);
+ console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
+ console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
+ console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
+ 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}`);
+ 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}`);
+ console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
+ console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
+ console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
+ }
+ if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
+ resultFlag = true;
+ console.info(`ResultFlag for ${i} is: ${resultFlag}`);
+ }
}
- console.info('setVolume Success!');
});
-
```
-### on('audioInterrupt')9+
-
-on(type: 'audioInterrupt', callback: Callback\): void
-
-Subscribes to audio interruption events. This API uses a callback to get interrupt events.
-Same as [on('interrupt')](#oninterruptdeprecated), this API has obtained the focus before **start**, **pause**, or **stop** of **AudioRenderer** is called. Therefore, you do not need to request the focus.
+## AudioCapturerChangeInfoArray9+
-**System capability**: SystemCapability.Multimedia.Audio.Interrupt
+Defines an **AudioCapturerChangeInfo** array, which is read-only.
-**Parameters**
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
-| Name | Type | Mandatory | Description |
-| -------- | -------------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'audioInterrupt'** means the audio interruption event, which is triggered when audio playback is interrupted. |
-| callback | Callback<[InterruptEvent](#interruptevent9)> | Yes | Callback used to return the audio interruption event. |
+## AudioCapturerChangeInfo9+
-**Error codes**
+Describes the audio capturer change event.
-For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
-| ID | Error Message |
-| ------- | ------------------------------- |
-| 6800101 | if input parameter value error. |
+| Name | Type | Readable | Writable | Description |
+| ------------- | ---------------------------------------- | -------- | -------- | ---------------------------------------------------------- |
+| streamId | number | Yes | No | Unique ID of an audio stream. |
+| clientUid | number | Yes | No | UID of the audio capturer client.
This is a system API. |
+| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | Yes | No | Audio capturer information. |
+| capturerState | [AudioState](#audiostate) | Yes | No | Audio state.
This is a system API. |
**Example**
```js
-let isPlay;
-let started;
-audioRenderer.on('audioInterrupt', async(interruptEvent) => {
- if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
- switch (interruptEvent.hintType) {
- case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
- console.info('Force paused. Stop writing');
- isPlay = false;
- break;
- case audio.InterruptHint.INTERRUPT_HINT_STOP:
- console.info('Force stopped. Stop writing');
- isPlay = false;
- break;
+import audio from '@ohos.multimedia.audio';
+
+const audioManager = audio.getAudioManager();
+let audioStreamManager = audioManager.getStreamManager();
+
+let resultFlag = false;
+audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => {
+ for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
+ console.info(`## CapChange on is called for element ${i} ##`);
+ console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
+ console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
+ 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}`);
+ 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}`);
+ console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
+ console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
+ console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
+ console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
+ console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
+ console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
}
- } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
- switch (interruptEvent.hintType) {
- case audio.InterruptHint.INTERRUPT_HINT_RESUME:
- console.info('Resume force paused renderer or ignore');
- await audioRenderer.start().then(async function () {
- console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
- started = true;
- }).catch((err) => {
- console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
- started = false;
- });
- if (started) {
- isPlay = true;
- console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
- } else {
- console.error('AudioInterruptMusic Renderer start failed');
- }
- break;
- case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
- console.info('Choose to pause or ignore');
- if (isPlay == true) {
- isPlay == false;
- console.info('AudioInterruptMusic: Media PAUSE : TRUE');
- } else {
- isPlay = true;
- console.info('AudioInterruptMusic: Media PLAY : TRUE');
- }
- break;
+ if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
+ resultFlag = true;
+ console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
}
}
});
-
```
-### on('markReach')8+
+## AudioDeviceDescriptors
-on(type: "markReach", frame: number, callback: Callback<number>): void
+Defines an [AudioDeviceDescriptor](#audiodevicedescriptor) array, which is read-only.
-Subscribes to mark reached events. When the number of frames rendered reaches the value of the **frame** parameter, a callback is invoked.
+## AudioDeviceDescriptor
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+Describes an audio device.
-**Parameters**
+**System capability**: SystemCapability.Multimedia.Audio.Device
-| Name | Type | Mandatory | Description |
-| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
-| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
-| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
+| Name | Type | Readable | Writable | Description |
+| ----------------------------- | ------------------------- | -------- | -------- | ------------------------------------------------------------ |
+| deviceRole | [DeviceRole](#devicerole) | Yes | No | Device role. |
+| deviceType | [DeviceType](#devicetype) | Yes | No | Device type. |
+| id9+ | number | Yes | No | Device ID. |
+| name9+ | string | Yes | No | Device name. |
+| address9+ | string | Yes | No | Device address. |
+| sampleRates9+ | Array<number> | Yes | No | Supported sampling rates. |
+| channelCounts9+ | Array<number> | Yes | No | Number of channels supported. |
+| channelMasks9+ | Array<number> | Yes | No | Supported channel masks. |
+| networkId9+ | string | Yes | No | ID of the device network.
This is a system API. |
+| interruptGroupId9+ | number | Yes | No | ID of the interruption group to which the device belongs.
This is a system API. |
+| volumeGroupId9+ | number | Yes | No | ID of the volume group to which the device belongs.
This is a system API. |
**Example**
```js
-audioRenderer.on('markReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
+import audio from '@ohos.multimedia.audio';
+
+function displayDeviceProp(value) {
+ deviceRoleValue = value.deviceRole;
+ deviceTypeValue = value.deviceType;
+}
+
+let deviceRoleValue = null;
+let deviceTypeValue = null;
+const promise = audio.getAudioManager().getDevices(1);
+promise.then(function (value) {
+ console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
+ value.forEach(displayDeviceProp);
+ if (deviceTypeValue != null && deviceRoleValue != null){
+ console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS');
+ } else {
+ console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL');
}
});
-
```
+## AudioRendererFilter9+
-### off('markReach') 8+
+Implements filter criteria. Before calling **selectOutputDeviceByFilter**, you must obtain an **AudioRendererFilter** instance.
-off(type: 'markReach'): void
+**System API**: This is a system API.
-Unsubscribes from mark reached events.
+| Name | Type | Mandatory | Description |
+| ------------ | ---------------------------------------- | --------- | ------------------------------------------------------------ |
+| uid | number | Yes | Application ID.
**System capability**: SystemCapability.Multimedia.Audio.Core |
+| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | No | Audio renderer information.
**System capability**: SystemCapability.Multimedia.Audio.Renderer |
+| rendererId | number | No | Unique ID of an audio stream.
**System capability**: SystemCapability.Multimedia.Audio.Renderer |
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**Example**
-**Parameters**
+```js
+let outputAudioRendererFilter = {
+ "uid":20010041,
+ "rendererInfo": {
+ "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
+ "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
+ "rendererFlags":0 },
+ "rendererId":0 };
+```
-| Name | Type | Mandatory | Description |
-| :--- | :----- | :-------- | :------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
+## AudioRenderer8+
+
+Provides APIs for audio rendering. Before calling any API in **AudioRenderer**, you must use [createAudioRenderer](#audiocreateaudiorenderer8) to create an **AudioRenderer** instance.
+
+### Attributes
+
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
+
+| Name | Type | Readable | Writable | Description |
+| ------------------ | -------------------------- | -------- | -------- | --------------------- |
+| state8+ | [AudioState](#audiostate8) | Yes | No | Audio renderer state. |
**Example**
```js
-audioRenderer.off('markReach');
-
+let state = audioRenderer.state;
```
-### on('periodReach') 8+
+### getRendererInfo8+
-on(type: "periodReach", frame: number, callback: Callback<number>): void
+getRendererInfo(callback: AsyncCallback): void
-Subscribes to period reached events. When the number of frames rendered reaches the value of the **frame** parameter, a callback is triggered and the specified value is returned.
+Obtains the renderer information of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
-| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
-| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------------------------------------------- | :-------- | :------------------------------------------------ |
+| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | Yes | Callback used to return the renderer information. |
**Example**
```js
-audioRenderer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
+audioRenderer.getRendererInfo((err, rendererInfo) => {
+ console.info('Renderer GetRendererInfo:');
+ console.info(`Renderer content: ${rendererInfo.content}`);
+ console.info(`Renderer usage: ${rendererInfo.usage}`);
+ console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
});
-
```
-### off('periodReach') 8+
+### getRendererInfo8+
-off(type: 'periodReach'): void
+getRendererInfo(): Promise
-Unsubscribes from period reached events.
+Obtains the renderer information of this **AudioRenderer** instance. This API uses a promise to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Parameters**
+**Return value**
-| Name | Type | Mandatory | Description |
-| :--- | :----- | :-------- | :--------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
+| Type | Description |
+| -------------------------------------------------- | ------------------------------------------------ |
+| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise used to return the renderer information. |
**Example**
```js
-audioRenderer.off('periodReach')
-
+audioRenderer.getRendererInfo().then((rendererInfo) => {
+ console.info('Renderer GetRendererInfo:');
+ console.info(`Renderer content: ${rendererInfo.content}`);
+ console.info(`Renderer usage: ${rendererInfo.usage}`);
+ console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
+}).catch((err) => {
+ console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
+});
```
-### on('stateChange')8+
+### getStreamInfo8+
-on(type: 'stateChange', callback: Callback): void
+getStreamInfo(callback: AsyncCallback): void
-Subscribes to state change events.
+Obtains the stream information of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value **stateChange** means the state change event. |
-| callback | [AudioState](#audiostate8) | Yes | Callback used to return the state change. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------------------------------------- | :-------- | :---------------------------------------------- |
+| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | Yes | Callback used to return the stream information. |
**Example**
```js
-audioRenderer.on('stateChange', (state) => {
- if (state == 1) {
- console.info('audio renderer state is: STATE_PREPARED');
- }
- if (state == 2) {
- console.info('audio renderer state is: STATE_RUNNING');
- }
+audioRenderer.getStreamInfo((err, streamInfo) => {
+ console.info('Renderer GetStreamInfo:');
+ console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
+ console.info(`Renderer channel: ${streamInfo.channels}`);
+ console.info(`Renderer format: ${streamInfo.sampleFormat}`);
+ console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
});
-
```
-## AudioCapturer8+
+### getStreamInfo8+
-Provides APIs for audio capture. Before calling any API in **AudioCapturer**, you must use [createAudioCapturer](#audiocreateaudiocapturer8) to create an **AudioCapturer** instance.
+getStreamInfo(): Promise
-### Attributes
+Obtains the stream information of this **AudioRenderer** instance. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Type | Readable | Writable | Description |
-| :----------------- | :------------------------- | :------- | :------- | :-------------------- |
-| state8+ | [AudioState](#audiostate8) | Yes | No | Audio capturer state. |
+**Return value**
+
+| Type | Description |
+| :--------------------------------------------- | :--------------------------------------------- |
+| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise used to return the stream information. |
**Example**
```js
-let state = audioCapturer.state;
+audioRenderer.getStreamInfo().then((streamInfo) => {
+ console.info('Renderer GetStreamInfo:');
+ console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
+ console.info(`Renderer channel: ${streamInfo.channels}`);
+ console.info(`Renderer format: ${streamInfo.sampleFormat}`);
+ console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
+});
```
-### getCapturerInfo8+
+### getAudioStreamId9+
-getCapturerInfo(callback: AsyncCallback): void
+getAudioStreamId(callback: AsyncCallback): void
-Obtains the capturer information of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
+Obtains the stream ID of this **AudioRenderer** instance. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :-------------------------------- | :-------- | :------------------------------------------------ |
-| callback | AsyncCallback | Yes | Callback used to return the capturer information. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------- | :-------- | :------------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the stream ID. |
**Example**
```js
-audioCapturer.getCapturerInfo((err, capturerInfo) => {
- if (err) {
- console.error('Failed to get capture info');
- } else {
- console.info('Capturer getCapturerInfo:');
- console.info(`Capturer source: ${capturerInfo.source}`);
- console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
- }
+audioRenderer.getAudioStreamId((err, streamid) => {
+ console.info(`Renderer GetStreamId: ${streamid}`);
});
```
+### getAudioStreamId9+
-### getCapturerInfo8+
-
-getCapturerInfo(): Promise
+getAudioStreamId(): Promise
-Obtains the capturer information of this **AudioCapturer** instance. This API uses a promise to return the result.
+Obtains the stream ID of this **AudioRenderer** instance. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| :------------------------------------------------ | :----------------------------------------------- |
-| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | Promise used to return the capturer information. |
+| Type | Description |
+| :--------------- | :------------------------------------ |
+| Promise | Promise used to return the stream ID. |
**Example**
```js
-audioCapturer.getCapturerInfo().then((audioParamsGet) => {
- if (audioParamsGet != undefined) {
- console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
- console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
- console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
- } else {
- console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
- console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
- }
+audioRenderer.getAudioStreamId().then((streamid) => {
+ console.info(`Renderer getAudioStreamId: ${streamid}`);
}).catch((err) => {
- console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
-### getStreamInfo8+
+### start8+
-getStreamInfo(callback: AsyncCallback): void
+start(callback: AsyncCallback): void
-Obtains the stream information of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
+Starts the renderer. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------------------------------------- | :-------- | :---------------------------------------------- |
-| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | Yes | Callback used to return the stream information. |
+| Name | Type | Mandatory | Description |
+| -------- | -------------------- | --------- | ----------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.getStreamInfo((err, streamInfo) => {
+audioRenderer.start((err) => {
if (err) {
- console.error('Failed to get stream info');
+ console.error('Renderer start failed.');
} else {
- console.info('Capturer GetStreamInfo:');
- console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
- console.info(`Capturer channel: ${streamInfo.channels}`);
- console.info(`Capturer format: ${streamInfo.sampleFormat}`);
- console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
+ console.info('Renderer start success.');
}
});
```
-### getStreamInfo8+
+### start8+
-getStreamInfo(): Promise
+start(): Promise
-Obtains the stream information of this **AudioCapturer** instance. This API uses a promise to return the result.
+Starts the renderer. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| :--------------------------------------------- | :--------------------------------------------- |
-| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise used to return the stream information. |
+| Type | Description |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-audioCapturer.getStreamInfo().then((audioParamsGet) => {
- console.info('getStreamInfo:');
- console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
- console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
- console.info(`channels: ${audioParamsGet.channels}`);
- console.info(`encodingType: ${audioParamsGet.encodingType}`);
+audioRenderer.start().then(() => {
+ console.info('Renderer started');
}).catch((err) => {
- console.error(`getStreamInfo :ERROR: ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
-### getAudioStreamId9+
+### pause8+
-getAudioStreamId(callback: AsyncCallback): void
+pause(callback: AsyncCallback\): void
-Obtains the stream ID of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
+Pauses rendering. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------- | :-------- | :------------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the stream ID. |
+| Name | Type | Mandatory | Description |
+| -------- | -------------------- | --------- | ----------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.getAudioStreamId((err, streamid) => {
- console.info(`audioCapturer GetStreamId: ${streamid}`);
+audioRenderer.pause((err) => {
+ if (err) {
+ console.error('Renderer pause failed');
+ } else {
+ console.info('Renderer paused.');
+ }
});
```
-### getAudioStreamId9+
+### pause8+
-getAudioStreamId(): Promise
+pause(): Promise\
-Obtains the stream ID of this **AudioCapturer** instance. This API uses a promise to return the result.
+Pauses rendering. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| :--------------- | :------------------------------------ |
-| Promise | Promise used to return the stream ID. |
+| Type | Description |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-audioCapturer.getAudioStreamId().then((streamid) => {
- console.info(`audioCapturer getAudioStreamId: ${streamid}`);
+audioRenderer.pause().then(() => {
+ console.info('Renderer paused');
}).catch((err) => {
console.error(`ERROR: ${err}`);
});
```
-### start8+
+### drain8+
-start(callback: AsyncCallback): void
+drain(callback: AsyncCallback\): void
-Starts capturing. This API uses an asynchronous callback to return the result.
+Drains the playback buffer. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| -------- | -------------------- | --------- | ----------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.start((err) => {
+audioRenderer.drain((err) => {
if (err) {
- console.error('Capturer start failed.');
+ console.error('Renderer drain failed');
} else {
- console.info('Capturer start success.');
+ console.info('Renderer drained.');
}
});
```
+### drain8+
-### start8+
-
-start(): Promise
+drain(): Promise\
-Starts capturing. This API uses a promise to return the result.
+Drains the playback buffer. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-audioCapturer.start().then(() => {
- console.info('AudioFrameworkRecLog: ---------START---------');
- console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
- console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
- console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
- if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
- console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
- }
+audioRenderer.drain().then(() => {
+ console.info('Renderer drained successfully');
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
### stop8+
-stop(callback: AsyncCallback): void
+stop(callback: AsyncCallback\): void
-Stops capturing. This API uses an asynchronous callback to return the result.
+Stops rendering. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| -------- | -------------------- | --------- | ----------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.stop((err) => {
+audioRenderer.stop((err) => {
if (err) {
- console.error('Capturer stop failed');
+ console.error('Renderer stop failed');
} else {
- console.info('Capturer stopped.');
+ console.info('Renderer stopped.');
}
});
```
-
### stop8+
-stop(): Promise
+stop(): Promise\
-Stops capturing. This API uses a promise to return the result.
+Stops rendering. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-audioCapturer.stop().then(() => {
- console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
- console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
- if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
- console.info('AudioFrameworkRecLog: State is Stopped:');
- }
+audioRenderer.stop().then(() => {
+ console.info('Renderer stopped successfully');
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
### release8+
-release(callback: AsyncCallback): void
+release(callback: AsyncCallback\): void
-Releases this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
+Releases the renderer. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| -------- | -------------------- | --------- | ----------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.release((err) => {
+audioRenderer.release((err) => {
if (err) {
- console.error('capturer release failed');
+ console.error('Renderer release failed');
} else {
- console.info('capturer released.');
+ console.info('Renderer released.');
}
});
```
-
### release8+
-release(): Promise
+release(): Promise\
-Releases this **AudioCapturer** instance. This API uses a promise to return the result.
+Releases the renderer. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-let stateFlag;
-audioCapturer.release().then(() => {
- console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
- console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
- console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
- console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
+audioRenderer.release().then(() => {
+ console.info('Renderer released successfully');
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
-### read8+
+### write8+
-read(size: number, isBlockingRead: boolean, callback: AsyncCallback): void
+write(buffer: ArrayBuffer, callback: AsyncCallback\): void
-Reads the buffer. This API uses an asynchronous callback to return the result.
+Writes the buffer. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------------- | :-------------------------- | :-------- | :----------------------------------- |
-| size | number | Yes | Number of bytes to read. |
-| isBlockingRead | boolean | Yes | Whether to block the read operation. |
-| callback | AsyncCallback | Yes | Callback used to return the buffer. |
+| Name | Type | Mandatory | Description |
+| -------- | ---------------------- | --------- | ------------------------------------------------------------ |
+| buffer | ArrayBuffer | Yes | Buffer to be written. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, the number of bytes written is returned; otherwise, an error code is returned. |
**Example**
```js
let bufferSize;
-audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
+audioRenderer.getBufferSize().then((data)=> {
+ console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
bufferSize = data;
}).catch((err) => {
- console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
+ console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});
-audioCapturer.read(bufferSize, true, async(err, buffer) => {
- if (!err) {
- console.info('Success in reading the buffer data');
+console.info(`Buffer size: ${bufferSize}`);
+let context = featureAbility.getContext();
+let path;
+async function getCacheDir(){
+ path = await context.getCacheDir();
+}
+let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
+let ss = fileio.createStreamSync(filePath, 'r');
+let buf = new ArrayBuffer(bufferSize);
+ss.readSync(buf);
+audioRenderer.write(buf, (err, writtenbytes) => {
+ if (writtenbytes < 0) {
+ console.error('write failed.');
+ } else {
+ console.info(`Actual written bytes: ${writtenbytes}`);
}
});
```
-### read8+
-
-read(size: number, isBlockingRead: boolean): Promise
-
-Reads the buffer. This API uses a promise to return the result.
+### write8+
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+write(buffer: ArrayBuffer): Promise\
-**Parameters**
+Writes the buffer. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| :------------- | :------ | :-------- | :----------------------------------- |
-| size | number | Yes | Number of bytes to read. |
-| isBlockingRead | boolean | Yes | Whether to block the read operation. |
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
-| Type | Description |
-| :-------------------- | :----------------------------------------------------------- |
-| Promise | Promise used to return the result. If the operation is successful, the buffer data read is returned; otherwise, an error code is returned. |
+| Type | Description |
+| ---------------- | ------------------------------------------------------------ |
+| Promise\ | Promise used to return the result. If the operation is successful, the number of bytes written is returned; otherwise, an error code is returned. |
**Example**
```js
let bufferSize;
-audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
+audioRenderer.getBufferSize().then((data) => {
+ console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
bufferSize = data;
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
+ console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});
-console.info(`Buffer size: ${bufferSize}`);
-audioCapturer.read(bufferSize, true).then((buffer) => {
- console.info('buffer read successfully');
+console.info(`BufferSize: ${bufferSize}`);
+let context = featureAbility.getContext();
+let path;
+async function getCacheDir(){
+ path = await context.getCacheDir();
+}
+let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
+let ss = fileio.createStreamSync(filePath, 'r');
+let buf = new ArrayBuffer(bufferSize);
+ss.readSync(buf);
+audioRenderer.write(buf).then((writtenbytes) => {
+ if (writtenbytes < 0) {
+ console.error('write failed.');
+ } else {
+ console.info(`Actual written bytes: ${writtenbytes}`);
+ }
}).catch((err) => {
- console.info(`ERROR : ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
### getAudioTime8+
-getAudioTime(callback: AsyncCallback): void
+getAudioTime(callback: AsyncCallback\): void
Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| -------- | ---------------------- | --------- | -------------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the timestamp. |
**Example**
```js
-audioCapturer.getAudioTime((err, timestamp) => {
+audioRenderer.getAudioTime((err, timestamp) => {
console.info(`Current timestamp: ${timestamp}`);
});
@@ -4475,54 +4665,49 @@ audioCapturer.getAudioTime((err, timestamp) => {
### getAudioTime8+
-getAudioTime(): Promise
+getAudioTime(): Promise\
Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
| Type | Description |
-| :--------------- | :------------------------------------ |
-| Promise | Promise used to return the timestamp. |
+| ---------------- | ------------------------------------- |
+| Promise\ | Promise used to return the timestamp. |
**Example**
```js
-audioCapturer.getAudioTime().then((audioTime) => {
- console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
+audioRenderer.getAudioTime().then((timestamp) => {
+ console.info(`Current timestamp: ${timestamp}`);
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
+ console.error(`ERROR: ${err}`);
});
```
### getBufferSize8+
-getBufferSize(callback: AsyncCallback): void
+getBufferSize(callback: AsyncCallback\): void
-Obtains a reasonable minimum buffer size in bytes for capturing. This API uses an asynchronous callback to return the result.
+Obtains a reasonable minimum buffer size in bytes for rendering. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
| Name | Type | Mandatory | Description |
-| :------- | :--------------------- | :-------- | :--------------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the buffer size. |
+| -------- | ---------------------- | --------- | ---------------------------------------- |
+| callback | AsyncCallback\ | Yes | Callback used to return the buffer size. |
**Example**
```js
-audioCapturer.getBufferSize((err, bufferSize) => {
- if (!err) {
- console.info(`BufferSize : ${bufferSize}`);
- audioCapturer.read(bufferSize, true).then((buffer) => {
- console.info(`Buffer read is ${buffer}`);
- }).catch((err) => {
- console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
- });
+let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
+ if (err) {
+ console.error('getBufferSize error');
}
});
@@ -4530,1546 +4715,1425 @@ audioCapturer.getBufferSize((err, bufferSize) => {
### getBufferSize8+
-getBufferSize(): Promise
+getBufferSize(): Promise\
-Obtains a reasonable minimum buffer size in bytes for capturing. This API uses a promise to return the result.
+Obtains a reasonable minimum buffer size in bytes for rendering. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Return value**
| Type | Description |
-| :--------------- | :-------------------------------------- |
-| Promise | Promise used to return the buffer size. |
+| ---------------- | --------------------------------------- |
+| Promise\ | Promise used to return the buffer size. |
**Example**
```js
let bufferSize;
-audioCapturer.getBufferSize().then((data) => {
- console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
+audioRenderer.getBufferSize().then((data) => {
+ console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
bufferSize = data;
}).catch((err) => {
- console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
+ console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
});
```
-### on('markReach')8+
+### setRenderRate8+
-on(type: "markReach", frame: number, callback: Callback<number>): void
+setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\): void
-Subscribes to mark reached events. When the number of frames captured reaches the value of the **frame** parameter, a callback is invoked.
+Sets the render rate. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
-| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
-| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
+| Name | Type | Mandatory | Description |
+| -------- | ---------------------------------------- | --------- | ----------------------------------- |
+| rate | [AudioRendererRate](#audiorendererrate8) | Yes | Audio render rate. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-audioCapturer.on('markReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
+audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
+ if (err) {
+ console.error('Failed to set params');
+ } else {
+ console.info('Callback invoked to indicate a successful render rate setting.');
}
});
```
-### off('markReach')8+
-
-off(type: 'markReach'): void
-
-Unsubscribes from mark reached events.
-
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
-
-**Parameters**
-
-| Name | Type | Mandatory | Description |
-| :--- | :----- | :-------- | :------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
-
-**Example**
-
-```js
-audioCapturer.off('markReach');
-
-```
-
-### on('periodReach')8+
+### setRenderRate8+
-on(type: "periodReach", frame: number, callback: Callback<number>): void
+setRenderRate(rate: AudioRendererRate): Promise\
-Subscribes to period reached events. When the number of frames captured reaches the value of the **frame** parameter, a callback is triggered and the specified value is returned.
+Sets the render rate. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
-| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
-| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
+| Name | Type | Mandatory | Description |
+| ---- | ---------------------------------------- | --------- | ------------------ |
+| rate | [AudioRendererRate](#audiorendererrate8) | Yes | Audio render rate. |
+
+**Return value**
+
+| Type | Description |
+| -------------- | ---------------------------------- |
+| Promise\ | Promise used to return the result. |
**Example**
```js
-audioCapturer.on('periodReach', 1000, (position) => {
- if (position == 1000) {
- console.info('ON Triggered successfully');
- }
+audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
+ console.info('setRenderRate SUCCESS');
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
});
```
-### off('periodReach')8+
+### getRenderRate8+
-off(type: 'periodReach'): void
+getRenderRate(callback: AsyncCallback\): void
-Unsubscribes from period reached events.
+Obtains the current render rate. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :--- | :----- | :-------- | :--------------------------------------------------- |
-| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
+| Name | Type | Mandatory | Description |
+| -------- | ------------------------------------------------------- | --------- | ---------------------------------------------- |
+| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | Yes | Callback used to return the audio render rate. |
**Example**
```js
-audioCapturer.off('periodReach')
+audioRenderer.getRenderRate((err, renderrate) => {
+ console.info(`getRenderRate: ${renderrate}`);
+});
```
-### on('stateChange')8+
+### getRenderRate8+
-on(type: 'stateChange', callback: Callback): void
+getRenderRate(): Promise\
-Subscribes to state change events.
+Obtains the current render rate. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Capturer
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Parameters**
+**Return value**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value **stateChange** means the state change event. |
-| callback | [AudioState](#audiostate8) | Yes | Callback used to return the state change. |
+| Type | Description |
+| ------------------------------------------------- | --------------------------------------------- |
+| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise used to return the audio render rate. |
**Example**
```js
-audioCapturer.on('stateChange', (state) => {
- if (state == 1) {
- console.info('audio capturer state is: STATE_PREPARED');
- }
- if (state == 2) {
- console.info('audio capturer state is: STATE_RUNNING');
- }
+audioRenderer.getRenderRate().then((renderRate) => {
+ console.info(`getRenderRate: ${renderRate}`);
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
});
```
-## ToneType9+
+### setInterruptMode9+
-Enumerates the tone types of the player.
+setInterruptMode(mode: InterruptMode): Promise<void>
-**System API**: This is a system API.
+Sets the audio interruption mode for the application. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Interrupt
-| Name | Default Value | Description |
-| :----------------------------------------------- | :------------ | :-------------------------------------------- |
-| TONE_TYPE_DIAL_0 | 0 | DTMF tone of key 0. |
-| TONE_TYPE_DIAL_1 | 1 | DTMF tone of key 1. |
-| TONE_TYPE_DIAL_2 | 2 | DTMF tone of key 2. |
-| TONE_TYPE_DIAL_3 | 3 | DTMF tone of key 3. |
-| TONE_TYPE_DIAL_4 | 4 | DTMF tone of key 4. |
-| TONE_TYPE_DIAL_5 | 5 | DTMF tone of key 5. |
-| TONE_TYPE_DIAL_6 | 6 | DTMF tone of key 6. |
-| TONE_TYPE_DIAL_7 | 7 | DTMF tone of key 7. |
-| TONE_TYPE_DIAL_8 | 8 | DTMF tone of key 8. |
-| TONE_TYPE_DIAL_9 | 9 | DTMF tone of key 9. |
-| TONE_TYPE_DIAL_S | 10 | DTMF tone of the star key (*). |
-| TONE_TYPE_DIAL_P | 11 | DTMF tone of the pound key (#). |
-| TONE_TYPE_DIAL_A | 12 | DTMF tone of key A. |
-| TONE_TYPE_DIAL_B | 13 | DTMF tone of key B. |
-| TONE_TYPE_DIAL_C | 14 | DTMF tone of key C. |
-| TONE_TYPE_DIAL_D | 15 | DTMF tone of key D. |
-| TONE_TYPE_COMMON_SUPERVISORY_DIAL | 100 | Supervisory tone - dial tone. |
-| TONE_TYPE_COMMON_SUPERVISORY_BUSY | 101 | Supervisory tone - busy. |
-| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION | 102 | Supervisory tone - congestion. |
-| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK | 103 | Supervisory tone - radio path acknowledgment. |
-| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE | 104 | Supervisory tone - radio path not available. |
-| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING | 106 | Supervisory tone - call waiting tone. |
-| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE | 107 | Supervisory tone - ringing tone. |
-| TONE_TYPE_COMMON_PROPRIETARY_BEEP | 200 | Proprietary tone - beep tone. |
-| TONE_TYPE_COMMON_PROPRIETARY_ACK | 201 | Proprietary tone - ACK. |
-| TONE_TYPE_COMMON_PROPRIETARY_PROMPT | 203 | Proprietary tone - PROMPT. |
-| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP | 204 | Proprietary tone - double beep tone. |
+**Parameters**
-## TonePlayer9+
+| Name | Type | Mandatory | Description |
+| ---- | -------------------------------- | --------- | ------------------------ |
+| mode | [InterruptMode](#interruptmode9) | Yes | Audio interruption mode. |
-Provides APIs for playing and managing DTMF tones, such as dial tones, ringback tones, supervisory tones, and proprietary tones.
+**Return value**
-**System API**: This is a system API.
+| Type | Description |
+| ------------------- | ------------------------------------------------------------ |
+| Promise<void> | Promise used to return the result. If the operation is successful, **undefined** is returned. Otherwise, **error** is returned. |
-### load9+
+**Example**
-load(type: ToneType, callback: AsyncCallback<void>): void
+```js
+let mode = 0;
+audioRenderer.setInterruptMode(mode).then(data=>{
+ console.info('setInterruptMode Success!');
+}).catch((err) => {
+ console.error(`setInterruptMode Fail: ${err}`);
+});
-Loads the DTMF tone configuration. This API uses an asynchronous callback to return the result.
+```
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+### setInterruptMode9+
+
+setInterruptMode(mode: InterruptMode, callback: AsyncCallback\): void
+
+Sets the audio interruption mode for the application. This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Interrupt
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------- | :-------- | :---------------------------------- |
-| type | [ToneType](#tonetype9) | Yes | Tone type. |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| -------- | -------------------------------- | --------- | ----------------------------------- |
+| mode | [InterruptMode](#interruptmode9) | Yes | Audio interruption mode. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
- if (err) {
- console.error(`callback call load failed error: ${err.message}`);
- return;
- } else {
- console.info('callback call load success');
+let mode = 1;
+audioRenderer.setInterruptMode(mode, (err, data)=>{
+ if(err){
+ console.error(`setInterruptMode Fail: ${err}`);
}
+ console.info('setInterruptMode Success!');
});
```
-### load9+
+### setVolume9+
-load(type: ToneType): Promise<void>
+setVolume(volume: number): Promise<void>
-Loads the DTMF tone configuration. This API uses a promise to return the result.
+Sets the volume for the application. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :--- | :--------------------- | :-------- | ----------- |
-| type | [ToneType](#tonetype9) | Yes | Tone type. |
+| Name | Type | Mandatory | Description |
+| ------ | ------ | --------- | ------------------------------------------------------------ |
+| volume | number | Yes | Volume to set, which can be within the range from 0.0 to 1.0. |
**Return value**
-| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+| Type | Description |
+| ------------------- | ------------------------------------------------------------ |
+| Promise<void> | Promise used to return the result. If the operation is successful, **undefined** is returned. Otherwise, **error** is returned. |
**Example**
```js
-tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
- console.info('promise call load ');
-}).catch(() => {
- console.error('promise call load fail');
+audioRenderer.setVolume(0.5).then(data=>{
+ console.info('setVolume Success!');
+}).catch((err) => {
+ console.error(`setVolume Fail: ${err}`);
});
```
-### start9+
+### setVolume9+
-start(callback: AsyncCallback<void>): void
+setVolume(volume: number, callback: AsyncCallback\): void
-Starts DTMF tone playing. This API uses an asynchronous callback to return the result.
+Sets the volume for the application. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| -------- | -------------------- | --------- | ------------------------------------------------------------ |
+| volume | number | Yes | Volume to set, which can be within the range from 0.0 to 1.0. |
+| callback | AsyncCallback\ | Yes | Callback used to return the result. |
**Example**
```js
-tonePlayer.start((err) => {
- if (err) {
- console.error(`callback call start failed error: ${err.message}`);
- return;
- } else {
- console.info('callback call start success');
+audioRenderer.setVolume(0.5, (err, data)=>{
+ if(err){
+ console.error(`setVolume Fail: ${err}`);
}
+ console.info('setVolume Success!');
});
```
-### start9+
+### on('audioInterrupt')9+
-start(): Promise<void>
+on(type: 'audioInterrupt', callback: Callback\): void
-Starts DTMF tone playing. This API uses a promise to return the result.
+Subscribes to audio interruption events. This API uses a callback to get interrupt events.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+Same as [on('interrupt')](#oninterruptdeprecated), this API has obtained the focus before **start**, **pause**, or **stop** of **AudioRenderer** is called. Therefore, you do not need to request the focus.
-**Return value**
+**System capability**: SystemCapability.Multimedia.Audio.Interrupt
-| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+**Parameters**
+
+| Name | Type | Mandatory | Description |
+| -------- | -------------------------------------------- | --------- | ------------------------------------------------------------ |
+| type | string | Yes | Event type. The value **'audioInterrupt'** means the audio interruption event, which is triggered when audio playback is interrupted. |
+| callback | Callback<[InterruptEvent](#interruptevent9)> | Yes | Callback used to return the audio interruption event. |
+
+**Error codes**
+
+For details about the error codes, see [Audio Error Codes](../errorcodes/errorcode-audio.md).
+
+| ID | Error Message |
+| ------- | ------------------------------ |
+| 6800101 | if input parameter value error |
**Example**
```js
-tonePlayer.start().then(() => {
- console.info('promise call start');
-}).catch(() => {
- console.error('promise call start fail');
-});
+let isPlay;
+let started;
+onAudioInterrupt();
+
+async function onAudioInterrupt(){
+ audioRenderer.on('audioInterrupt', async(interruptEvent) => {
+ if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
+ switch (interruptEvent.hintType) {
+ case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
+ console.info('Force paused. Stop writing');
+ isPlay = false;
+ break;
+ case audio.InterruptHint.INTERRUPT_HINT_STOP:
+ console.info('Force stopped. Stop writing');
+ isPlay = false;
+ break;
+ }
+ } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
+ switch (interruptEvent.hintType) {
+ case audio.InterruptHint.INTERRUPT_HINT_RESUME:
+ console.info('Resume force paused renderer or ignore');
+ await audioRenderer.start().then(async function () {
+ console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
+ started = true;
+ }).catch((err) => {
+ console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
+ started = false;
+ });
+ if (started) {
+ isPlay = true;
+ console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
+ } else {
+ console.error('AudioInterruptMusic Renderer start failed');
+ }
+ break;
+ case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
+ console.info('Choose to pause or ignore');
+ if (isPlay == true) {
+ isPlay == false;
+ console.info('AudioInterruptMusic: Media PAUSE : TRUE');
+ } else {
+ isPlay = true;
+ console.info('AudioInterruptMusic: Media PLAY : TRUE');
+ }
+ break;
+ }
+ }
+ });
+}
```
-### stop9+
+### on('markReach')8+
-stop(callback: AsyncCallback<void>): void
+on(type: "markReach", frame: number, callback: Callback<number>): void
-Stops the tone that is being played. This API uses an asynchronous callback to return the result.
+Subscribes to mark reached events. When the number of frames rendered reaches the value of the **frame** parameter, a callback is invoked.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
+| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
+| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
**Example**
```js
-tonePlayer.stop((err) => {
- if (err) {
- console.error(`callback call stop error: ${err.message}`);
- return;
- } else {
- console.error('callback call stop success ');
+audioRenderer.on('markReach', 1000, (position) => {
+ if (position == 1000) {
+ console.info('ON Triggered successfully');
}
});
```
-### stop9+
-stop(): Promise<void>
+### off('markReach') 8+
-Stops the tone that is being played. This API uses a promise to return the result.
+off(type: 'markReach'): void
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+Unsubscribes from mark reached events.
-**Return value**
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+**Parameters**
+
+| Name | Type | Mandatory | Description |
+| :--- | :----- | :-------- | :------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
**Example**
```js
-tonePlayer.stop().then(() => {
- console.info('promise call stop finish');
-}).catch(() => {
- console.error('promise call stop fail');
-});
+audioRenderer.off('markReach');
```
-### release9+
+### on('periodReach') 8+
-release(callback: AsyncCallback<void>): void
+on(type: "periodReach", frame: number, callback: Callback<number>): void
-Releases the resources associated with the **TonePlayer** instance. This API uses an asynchronous callback to return the result.
+Subscribes to period reached events. When the number of frames rendered reaches the value of the **frame** parameter, a callback is triggered and the specified value is returned.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :------------------- | :-------- | :---------------------------------- |
-| callback | AsyncCallback | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
+| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
+| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
**Example**
```js
-tonePlayer.release((err) => {
- if (err) {
- console.error(`callback call release failed error: ${err.message}`);
- return;
- } else {
- console.info('callback call release success ');
+audioRenderer.on('periodReach', 1000, (position) => {
+ if (position == 1000) {
+ console.info('ON Triggered successfully');
}
});
```
-### release9+
+### off('periodReach') 8+
-release(): Promise<void>
+off(type: 'periodReach'): void
-Releases the resources associated with the **TonePlayer** instance. This API uses a promise to return the result.
+Unsubscribes from period reached events.
-**System capability**: SystemCapability.Multimedia.Audio.Tone
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Return value**
+**Parameters**
-| Type | Description |
-| :------------- | :--------------------------------- |
-| Promise | Promise used to return the result. |
+| Name | Type | Mandatory | Description |
+| :--- | :----- | :-------- | :--------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
**Example**
```js
-tonePlayer.release().then(() => {
- console.info('promise call release');
-}).catch(() => {
- console.error('promise call release fail');
-});
+audioRenderer.off('periodReach')
```
-## ActiveDeviceType(deprecated)
-
-Enumerates the active device types.
-
-> **NOTE**
->
-> This API is deprecated since API version 9. You are advised to use [CommunicationDeviceType](#communicationdevicetype9) instead.
-
-**System capability**: SystemCapability.Multimedia.Audio.Device
-
-| Name | Default Value | Description |
-| ------------- | ------------- | ------------------------------------------------------------ |
-| SPEAKER | 2 | Speaker. |
-| BLUETOOTH_SCO | 7 | Bluetooth device using Synchronous Connection Oriented (SCO) links. |
-
-## InterruptActionType(deprecated)
+### on('stateChange')8+
-Enumerates the returned event types for audio interruption events.
+on(type: 'stateChange', callback: Callback): void
-> **NOTE**
-> This API is supported since API version 7 and deprecated since API version 9.
+Subscribes to state change events.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-| Name | Default Value | Description |
-| -------------- | ------------- | ------------------------- |
-| TYPE_ACTIVATED | 0 | Focus gain event. |
-| TYPE_INTERRUPT | 1 | Audio interruption event. |
-
-## AudioInterrupt(deprecated)
+**Parameters**
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9.
+| Name | Type | Mandatory | Description |
+| :------- | :------------------------------------ | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value **stateChange** means the state change event. |
+| callback | Callback\<[AudioState](#audiostate8)> | Yes | Callback used to return the state change. |
-Describes input parameters of audio interruption events.
+**Example**
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+```js
+audioRenderer.on('stateChange', (state) => {
+ if (state == 1) {
+ console.info('audio renderer state is: STATE_PREPARED');
+ }
+ if (state == 2) {
+ console.info('audio renderer state is: STATE_RUNNING');
+ }
+});
-| Name | Type | Mandatory | Description |
-| --------------- | --------------------------- | --------- | ------------------------------------------------------------ |
-| streamUsage | [StreamUsage](#streamusage) | Yes | Audio stream usage. |
-| contentType | [ContentType](#contenttype) | Yes | Audio content type. |
-| pauseWhenDucked | boolean | Yes | Whether audio playback can be paused during audio interruption. The value **true** means that audio playback can be paused during audio interruption, and **false** means the opposite. |
+```
-## InterruptAction(deprecated)
+## AudioCapturer8+
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9.
+Provides APIs for audio capture. Before calling any API in **AudioCapturer**, you must use [createAudioCapturer](#audiocreateaudiocapturer8) to create an **AudioCapturer** instance.
-Describes the callback invoked for audio interruption or focus gain events.
+### Attributes
-**System capability**: SystemCapability.Multimedia.Audio.Renderer
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------------- | --------- | ------------------------------------------------------------ |
-| actionType | [InterruptActionType](#interruptactiontype) | Yes | Returned event type. The value **TYPE_ACTIVATED** means the focus gain event, and **TYPE_INTERRUPT** means the audio interruption event. |
-| type | [InterruptType](#interrupttype) | No | Type of the audio interruption event. |
-| hint | [InterruptHint](#interrupthint) | No | Hint provided along with the audio interruption event. |
-| activated | boolean | No | Whether the focus is gained or released. The value **true** means that the focus is gained or released, and **false** means that the focus fails to be gained or released. |
+| Name | Type | Readable | Writable | Description |
+| :----------------- | :------------------------- | :------- | :------- | :-------------------- |
+| state8+ | [AudioState](#audiostate8) | Yes | No | Audio capturer state. |
-### setVolume(deprecated)
+**Example**
-setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void
+```js
+let state = audioCapturer.state;
-Sets the volume for a stream. This API uses an asynchronous callback to return the result.
+```
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setVolume](#setvolume9) in **AudioVolumeGroupManager**.
+### getCapturerInfo8+
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
+getCapturerInfo(callback: AsyncCallback): void
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+Obtains the capturer information of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| volume | number | Yes | Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :-------------------------------- | :-------- | :------------------------------------------------ |
+| callback | AsyncCallback | Yes | Callback used to return the capturer information. |
**Example**
```js
-audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
+audioCapturer.getCapturerInfo((err, capturerInfo) => {
if (err) {
- console.error(`Failed to set the volume. ${err}`);
- return;
+ console.error('Failed to get capture info');
+ } else {
+ console.info('Capturer getCapturerInfo:');
+ console.info(`Capturer source: ${capturerInfo.source}`);
+ console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
}
- console.info('Callback invoked to indicate a successful volume setting.');
});
```
-### setVolume(deprecated)
-
-setVolume(volumeType: AudioVolumeType, volume: number): Promise<void>
-
-Sets the volume for a stream. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setVolume](#setvolume9) in **AudioVolumeGroupManager**.
-
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+### getCapturerInfo8+
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+getCapturerInfo(): Promise
-**Parameters**
+Obtains the capturer information of this **AudioCapturer** instance. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| volume | number | Yes | Volume to set. The value range can be obtained by calling **getMinVolume** and **getMaxVolume**. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------------- |
-| Promise<void> | Promise used to return the result. |
+| Type | Description |
+| :------------------------------------------------ | :----------------------------------------------- |
+| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | Promise used to return the capturer information. |
**Example**
```js
-audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
- console.info('Promise returned to indicate a successful volume setting.');
+audioCapturer.getCapturerInfo().then((audioParamsGet) => {
+ if (audioParamsGet != undefined) {
+ console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
+ console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
+ console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
+ } else {
+ console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
+ console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
+ }
+}).catch((err) => {
+ console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
});
```
-### getVolume(deprecated)
-
-getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
+### getStreamInfo8+
-Obtains the volume of a stream. This API uses an asynchronous callback to return the result.
+getStreamInfo(callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getVolume](#getvolume9) in **AudioVolumeGroupManager**.
+Obtains the stream information of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ----------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<number> | Yes | Callback used to return the volume. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------------------------------------- | :-------- | :---------------------------------------------- |
+| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | Yes | Callback used to return the stream information. |
**Example**
```js
-audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioCapturer.getStreamInfo((err, streamInfo) => {
if (err) {
- console.error(`Failed to obtain the volume. ${err}`);
- return;
+ console.error('Failed to get stream info');
+ } else {
+ console.info('Capturer GetStreamInfo:');
+ console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
+ console.info(`Capturer channel: ${streamInfo.channels}`);
+ console.info(`Capturer format: ${streamInfo.sampleFormat}`);
+ console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
}
- console.info('Callback invoked to indicate that the volume is obtained.');
});
```
-### getVolume(deprecated)
-
-getVolume(volumeType: AudioVolumeType): Promise<number>
-
-Obtains the volume of a stream. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getVolume](#getvolume9) in **AudioVolumeGroupManager**.
+### getStreamInfo8+
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+getStreamInfo(): Promise
-**Parameters**
+Obtains the stream information of this **AudioCapturer** instance. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| --------------------- | ---------------------------------- |
-| Promise<number> | Promise used to return the volume. |
+| Type | Description |
+| :--------------------------------------------- | :--------------------------------------------- |
+| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise used to return the stream information. |
**Example**
```js
-audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
+audioCapturer.getStreamInfo().then((audioParamsGet) => {
+ console.info('getStreamInfo:');
+ console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
+ console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
+ console.info(`channels: ${audioParamsGet.channels}`);
+ console.info(`encodingType: ${audioParamsGet.encodingType}`);
+}).catch((err) => {
+ console.error(`getStreamInfo :ERROR: ${err}`);
});
```
-### getMinVolume(deprecated)
-
-getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
+### getAudioStreamId9+
-Obtains the minimum volume allowed for a stream. This API uses an asynchronous callback to return the result.
+getAudioStreamId(callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMinVolume](#getminvolume9) in **AudioVolumeGroupManager**.
+Obtains the stream ID of this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<number> | Yes | Callback used to return the minimum volume. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------- | :-------- | :------------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the stream ID. |
**Example**
```js
-audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the minimum volume. ${err}`);
- return;
- }
- console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
+audioCapturer.getAudioStreamId((err, streamid) => {
+ console.info(`audioCapturer GetStreamId: ${streamid}`);
});
-```
-
-### getMinVolume(deprecated)
-
-getMinVolume(volumeType: AudioVolumeType): Promise<number>
-
-Obtains the minimum volume allowed for a stream. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMinVolume](#getminvolume9) in **AudioVolumeGroupManager**.
+```
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+### getAudioStreamId9+
-**Parameters**
+getAudioStreamId(): Promise
+
+Obtains the stream ID of this **AudioCapturer** instance. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| --------------------- | ------------------------------------------ |
-| Promise<number> | Promise used to return the minimum volume. |
+| Type | Description |
+| :--------------- | :------------------------------------ |
+| Promise | Promise used to return the stream ID. |
**Example**
```js
-audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
+audioCapturer.getAudioStreamId().then((streamid) => {
+ console.info(`audioCapturer getAudioStreamId: ${streamid}`);
+}).catch((err) => {
+ console.error(`ERROR: ${err}`);
});
```
-### getMaxVolume(deprecated)
-
-getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void
+### start8+
-Obtains the maximum volume allowed for a stream. This API uses an asynchronous callback to return the result.
+start(callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMaxVolume](#getmaxvolume9) in **AudioVolumeGroupManager**.
+Starts capturing. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------- |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<number> | Yes | Callback used to return the maximum volume. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioCapturer.start((err) => {
if (err) {
- console.error(`Failed to obtain the maximum volume. ${err}`);
- return;
+ console.error('Capturer start failed.');
+ } else {
+ console.info('Capturer start success.');
}
- console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});
```
-### getMaxVolume(deprecated)
-
-getMaxVolume(volumeType: AudioVolumeType): Promise<number>
-
-Obtains the maximum volume allowed for a stream. This API uses a promise to return the result.
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getMaxVolume](#getmaxvolume9) in **AudioVolumeGroupManager**.
+### start8+
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+start(): Promise
-**Parameters**
+Starts capturing. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| --------------------- | ------------------------------------------ |
-| Promise<number> | Promise used to return the maximum volume. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
- console.info('Promised returned to indicate that the maximum volume is obtained.');
+audioCapturer.start().then(() => {
+ console.info('AudioFrameworkRecLog: ---------START---------');
+ console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
+ console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
+ console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
+ if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
+ console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
+ }
+}).catch((err) => {
+ console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
});
```
-### mute(deprecated)
-
-mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void
-
-Mutes or unmutes a stream. This API uses an asynchronous callback to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [mute](#mute9) in **AudioVolumeGroupManager**.
+### stop8+
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
+stop(callback: AsyncCallback): void
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+Stops capturing. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the stream, and **false** means the opposite. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
+audioCapturer.stop((err) => {
if (err) {
- console.error(`Failed to mute the stream. ${err}`);
- return;
+ console.error('Capturer stop failed');
+ } else {
+ console.info('Capturer stopped.');
}
- console.info('Callback invoked to indicate that the stream is muted.');
});
```
-### mute(deprecated)
-
-mute(volumeType: AudioVolumeType, mute: boolean): Promise<void>
-
-Mutes or unmutes a stream. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [mute](#mute9) in **AudioVolumeGroupManager**.
-
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-This permission is required only for muting or unmuting the ringer when **volumeType** is set to **AudioVolumeType.RINGTONE**.
+### stop8+
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+stop(): Promise
-**Parameters**
+Stops capturing. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the stream, and **false** means the opposite. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------------- |
-| Promise<void> | Promise used to return the result. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
-
```js
-audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
- console.info('Promise returned to indicate that the stream is muted.');
+audioCapturer.stop().then(() => {
+ console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
+ console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
+ if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
+ console.info('AudioFrameworkRecLog: State is Stopped:');
+ }
+}).catch((err) => {
+ console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});
```
-### isMute(deprecated)
-
-isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
+### release8+
-Checks whether a stream is muted. This API uses an asynchronous callback to return the result.
+release(callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMute](#ismute9) in **AudioVolumeGroupManager**.
+Releases this **AudioCapturer** instance. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the stream. The value **true** means that the stream is muted, and **false** means the opposite. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
+audioCapturer.release((err) => {
if (err) {
- console.error(`Failed to obtain the mute status. ${err}`);
- return;
+ console.error('capturer release failed');
+ } else {
+ console.info('capturer released.');
}
- console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
});
```
-### isMute(deprecated)
-
-isMute(volumeType: AudioVolumeType): Promise<boolean>
-
-Checks whether a stream is muted. This API uses a promise to return the result.
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMute](#ismute9) in **AudioVolumeGroupManager**.
+### release8+
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+release(): Promise
-**Parameters**
+Releases this **AudioCapturer** instance. This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| ---------------------- | ------------------------------------------------------------ |
-| Promise<boolean> | Promise used to return the mute status of the stream. The value **true** means that the stream is muted, and **false** means the opposite. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
+let stateFlag;
+audioCapturer.release().then(() => {
+ console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
+ console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
+ console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
+ console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
+}).catch((err) => {
+ console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
});
```
-### isActive(deprecated)
-
-isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void
+### read8+
-Checks whether a stream is active. This API uses an asynchronous callback to return the result.
+read(size: number, isBlockingRead: boolean, callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isActive](#isactive9) in **AudioStreamManager**.
+Reads the buffer. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------------------------------------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite. |
+| Name | Type | Mandatory | Description |
+| :------------- | :-------------------------- | :-------- | :----------------------------------- |
+| size | number | Yes | Number of bytes to read. |
+| isBlockingRead | boolean | Yes | Whether to block the read operation. |
+| callback | AsyncCallback | Yes | Callback used to return the buffer. |
**Example**
```js
-audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the stream. ${err}`);
- return;
+let bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+ console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
+ bufferSize = data;
+ }).catch((err) => {
+ console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
+ });
+audioCapturer.read(bufferSize, true, async(err, buffer) => {
+ if (!err) {
+ console.info('Success in reading the buffer data');
}
- console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});
```
-### isActive(deprecated)
-
-isActive(volumeType: AudioVolumeType): Promise<boolean>
+### read8+
-Checks whether a stream is active. This API uses a promise to return the result.
+read(size: number, isBlockingRead: boolean): Promise
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isActive](#isactive9) in **AudioStreamManager**.
+Reads the buffer. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ----------------------------------- | --------- | ------------------ |
-| volumeType | [AudioVolumeType](#audiovolumetype) | Yes | Audio stream type. |
+| Name | Type | Mandatory | Description |
+| :------------- | :------ | :-------- | :----------------------------------- |
+| size | number | Yes | Number of bytes to read. |
+| isBlockingRead | boolean | Yes | Whether to block the read operation. |
**Return value**
-| Type | Description |
-| ---------------------- | ------------------------------------------------------------ |
-| Promise<boolean> | Promise used to return the active status of the stream. The value **true** means that the stream is active, and **false** means the opposite. |
+| Type | Description |
+| :-------------------- | :----------------------------------------------------------- |
+| Promise | Promise used to return the result. If the operation is successful, the buffer data read is returned; otherwise, an error code is returned. |
**Example**
```js
-audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
- console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
+let bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+ console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
+ bufferSize = data;
+ }).catch((err) => {
+ console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
+ });
+console.info(`Buffer size: ${bufferSize}`);
+audioCapturer.read(bufferSize, true).then((buffer) => {
+ console.info('buffer read successfully');
+}).catch((err) => {
+ console.info(`ERROR : ${err}`);
});
-```
-
-### setRingerMode(deprecated)
-
-setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void
-
-Sets the ringer mode. This API uses an asynchronous callback to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setRingerMode](#setringermode9) in **AudioVolumeGroupManager**.
+```
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
+### getAudioTime8+
-This permission is required only for muting or unmuting the ringer.
+getAudioTime(callback: AsyncCallback): void
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------------- | --------- | ----------------------------------- |
-| mode | [AudioRingMode](#audioringmode) | Yes | Ringer mode. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.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.');
+audioCapturer.getAudioTime((err, timestamp) => {
+ console.info(`Current timestamp: ${timestamp}`);
});
```
-### setRingerMode(deprecated)
-
-setRingerMode(mode: AudioRingMode): Promise<void>
-
-Sets the ringer mode. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setRingerMode](#setringermode9) in **AudioVolumeGroupManager**.
-
-**Required permissions**: ohos.permission.ACCESS_NOTIFICATION_POLICY
-
-This permission is required only for muting or unmuting the ringer.
+### getAudioTime8+
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+getAudioTime(): Promise
-**Parameters**
+Obtains the number of nanoseconds elapsed from the Unix epoch (January 1, 1970). This API uses a promise to return the result.
-| Name | Type | Mandatory | Description |
-| ---- | ------------------------------- | --------- | ------------ |
-| mode | [AudioRingMode](#audioringmode) | Yes | Ringer mode. |
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------------- |
-| Promise<void> | Promise used to return the result. |
+| Type | Description |
+| :--------------- | :------------------------------------ |
+| Promise | Promise used to return the timestamp. |
**Example**
```js
-audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
- console.info('Promise returned to indicate a successful setting of the ringer mode.');
+audioCapturer.getAudioTime().then((audioTime) => {
+ console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
+}).catch((err) => {
+ console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
});
```
-### getRingerMode(deprecated)
-
-getRingerMode(callback: AsyncCallback<AudioRingMode>): void
+### getBufferSize8+
-Obtains the ringer mode. This API uses an asynchronous callback to return the result.
+getBufferSize(callback: AsyncCallback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getRingerMode](#getringermode9) in **AudioVolumeGroupManager**.
+Obtains a reasonable minimum buffer size in bytes for capturing. This API uses an asynchronous callback to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------------------------------- | --------- | ---------------------------------------- |
-| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the ringer mode. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------- | :-------- | :--------------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the buffer size. |
**Example**
```js
-audioManager.getRingerMode((err, value) => {
- if (err) {
- console.error(`Failed to obtain the ringer mode. ${err}`);
- return;
+audioCapturer.getBufferSize((err, bufferSize) => {
+ if (!err) {
+ console.info(`BufferSize : ${bufferSize}`);
+ audioCapturer.read(bufferSize, true).then((buffer) => {
+ console.info(`Buffer read is ${buffer}`);
+ }).catch((err) => {
+ console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
+ });
}
- console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
});
```
-### getRingerMode(deprecated)
-
-getRingerMode(): Promise<AudioRingMode>
+### getBufferSize8+
-Obtains the ringer mode. This API uses a promise to return the result.
+getBufferSize(): Promise
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getRingerMode](#getringermode9) in **AudioVolumeGroupManager**.
+Obtains a reasonable minimum buffer size in bytes for capturing. This API uses a promise to return the result.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Return value**
-| Type | Description |
-| ---------------------------------------------- | --------------------------------------- |
-| Promise<[AudioRingMode](#audioringmode)> | Promise used to return the ringer mode. |
+| Type | Description |
+| :--------------- | :-------------------------------------- |
+| Promise | Promise used to return the buffer size. |
**Example**
```js
-audioManager.getRingerMode().then((value) => {
- console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
+let bufferSize;
+audioCapturer.getBufferSize().then((data) => {
+ console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
+ bufferSize = data;
+}).catch((err) => {
+ console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
});
```
-### getDevices(deprecated)
-
-getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void
+### on('markReach')8+
-Obtains the audio devices with a specific flag. This API uses an asynchronous callback to return the result.
+on(type: "markReach", frame: number, callback: Callback<number>): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getDevices](#getdevices9) in **AudioRoutingManager**.
+Subscribes to mark reached events. When the number of frames captured reaches the value of the **frame** parameter, a callback is invoked.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------------------------------ | --------- | ---------------------------------------- |
-| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
-| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Yes | Callback used to return the device list. |
+| Name | Type | Mandatory | Description |
+| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
+| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
+| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
**Example**
```js
-audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the device list. ${err}`);
- return;
+audioCapturer.on('markReach', 1000, (position) => {
+ if (position == 1000) {
+ console.info('ON Triggered successfully');
}
- console.info('Callback invoked to indicate that the device list is obtained.');
});
```
-### getDevices(deprecated)
-
-getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors>
+### off('markReach')8+
-Obtains the audio devices with a specific flag. This API uses a promise to return the result.
+off(type: 'markReach'): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getDevices](#getdevices9) in **AudioRoutingManager**.
+Unsubscribes from mark reached events.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------- | --------- | ------------------ |
-| deviceFlag | [DeviceFlag](#deviceflag) | Yes | Audio device flag. |
-
-**Return value**
-
-| Type | Description |
-| ------------------------------------------------------------ | --------------------------------------- |
-| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise used to return the device list. |
+| Name | Type | Mandatory | Description |
+| :--- | :----- | :-------- | :------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'markReach'**. |
**Example**
```js
-audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
-});
+audioCapturer.off('markReach');
```
-### setDeviceActive(deprecated)
-
-setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void
+### on('periodReach')8+
-Sets a device to the active state. This API uses an asynchronous callback to return the result.
+on(type: "periodReach", frame: number, callback: Callback<number>): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setCommunicationDevice](#setcommunicationdevice9) in **AudioRoutingManager**.
+Subscribes to period reached events. When the number of frames captured reaches the value of the **frame** parameter, a callback is triggered and the specified value is returned.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------- | --------- | ------------------------------------------------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetype) | Yes | Audio device type. |
-| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :---------------- | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
+| frame | number | Yes | Number of frames to trigger the event. The value must be greater than **0**. |
+| callback | Callback\ | Yes | Callback invoked when the event is triggered. |
**Example**
```js
-audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
- if (err) {
- console.error(`Failed to set the active status of the device. ${err}`);
- return;
+audioCapturer.on('periodReach', 1000, (position) => {
+ if (position == 1000) {
+ console.info('ON Triggered successfully');
}
- console.info('Callback invoked to indicate that the device is set to the active status.');
});
```
-### setDeviceActive(deprecated)
-
-setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void>
+### off('periodReach')8+
-Sets a device to the active state. This API uses a promise to return the result.
+off(type: 'periodReach'): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setCommunicationDevice](#setcommunicationdevice9) in **AudioRoutingManager**.
+Unsubscribes from period reached events.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------- | --------- | ------------------------------------------------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetype) | Yes | Audio device type. |
-| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
-
-**Return value**
-
-| Type | Description |
-| ------------------- | ---------------------------------- |
-| Promise<void> | Promise used to return the result. |
+| Name | Type | Mandatory | Description |
+| :--- | :----- | :-------- | :--------------------------------------------------- |
+| type | string | Yes | Event type. The value is fixed at **'periodReach'**. |
**Example**
-
```js
-audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
- console.info('Promise returned to indicate that the device is set to the active status.');
-});
+audioCapturer.off('periodReach')
```
-### isDeviceActive(deprecated)
-
-isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void
+### on('stateChange')8+
-Checks whether a device is active. This API uses an asynchronous callback to return the result.
+on(type: 'stateChange', callback: Callback): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isCommunicationDeviceActive](#iscommunicationdeviceactive9) in **AudioRoutingManager**.
+Subscribes to state change events.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Capturer
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------- | --------- | ------------------------------------------------------- |
-| deviceType | [ActiveDeviceType](#activedevicetype) | Yes | Audio device type. |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the active state of the device. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------------------------ | :-------- | :----------------------------------------------------------- |
+| type | string | Yes | Event type. The value **stateChange** means the state change event. |
+| callback | Callback\<[AudioState](#audiostate8)> | Yes | Callback used to return the state change. |
**Example**
```js
-audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
- if (err) {
- console.error(`Failed to obtain the active status of the device. ${err}`);
- return;
+audioCapturer.on('stateChange', (state) => {
+ if (state == 1) {
+ console.info('audio capturer state is: STATE_PREPARED');
+ }
+ if (state == 2) {
+ console.info('audio capturer state is: STATE_RUNNING');
}
- console.info('Callback invoked to indicate that the active status of the device is obtained.');
});
```
-### isDeviceActive(deprecated)
-
-isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean>
-
-Checks whether a device is active. This API uses a promise to return the result.
-
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isCommunicationDeviceActive](#iscommunicationdeviceactive9) in **AudioRoutingManager**.
-
-**System capability**: SystemCapability.Multimedia.Audio.Device
-
-**Parameters**
+## ToneType9+
-| Name | Type | Mandatory | Description |
-| ---------- | ------------------------------------- | --------- | ------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetype) | Yes | Audio device type. |
+Enumerates the tone types of the player.
-**Return value**
+**System API**: This is a system API.
-| Type | Description |
-| ---------------------- | ------------------------------------------------------ |
-| Promise<boolean> | Promise used to return the active state of the device. |
+**System capability**: SystemCapability.Multimedia.Audio.Tone
-**Example**
+| Name | Value | Description |
+| :----------------------------------------------- | :---- | :-------------------------------------------- |
+| TONE_TYPE_DIAL_0 | 0 | DTMF tone of key 0. |
+| TONE_TYPE_DIAL_1 | 1 | DTMF tone of key 1. |
+| TONE_TYPE_DIAL_2 | 2 | DTMF tone of key 2. |
+| TONE_TYPE_DIAL_3 | 3 | DTMF tone of key 3. |
+| TONE_TYPE_DIAL_4 | 4 | DTMF tone of key 4. |
+| TONE_TYPE_DIAL_5 | 5 | DTMF tone of key 5. |
+| TONE_TYPE_DIAL_6 | 6 | DTMF tone of key 6. |
+| TONE_TYPE_DIAL_7 | 7 | DTMF tone of key 7. |
+| TONE_TYPE_DIAL_8 | 8 | DTMF tone of key 8. |
+| TONE_TYPE_DIAL_9 | 9 | DTMF tone of key 9. |
+| TONE_TYPE_DIAL_S | 10 | DTMF tone of the star key (*). |
+| TONE_TYPE_DIAL_P | 11 | DTMF tone of the pound key (#). |
+| TONE_TYPE_DIAL_A | 12 | DTMF tone of key A. |
+| TONE_TYPE_DIAL_B | 13 | DTMF tone of key B. |
+| TONE_TYPE_DIAL_C | 14 | DTMF tone of key C. |
+| TONE_TYPE_DIAL_D | 15 | DTMF tone of key D. |
+| TONE_TYPE_COMMON_SUPERVISORY_DIAL | 100 | Supervisory tone - dial tone. |
+| TONE_TYPE_COMMON_SUPERVISORY_BUSY | 101 | Supervisory tone - busy. |
+| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION | 102 | Supervisory tone - congestion. |
+| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK | 103 | Supervisory tone - radio path acknowledgment. |
+| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE | 104 | Supervisory tone - radio path not available. |
+| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING | 106 | Supervisory tone - call waiting tone. |
+| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE | 107 | Supervisory tone - ringing tone. |
+| TONE_TYPE_COMMON_PROPRIETARY_BEEP | 200 | Proprietary tone - beep tone. |
+| TONE_TYPE_COMMON_PROPRIETARY_ACK | 201 | Proprietary tone - ACK. |
+| TONE_TYPE_COMMON_PROPRIETARY_PROMPT | 203 | Proprietary tone - PROMPT. |
+| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP | 204 | Proprietary tone - double beep tone. |
-```js
-audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
- console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
-});
+## TonePlayer9+
-```
+Provides APIs for playing and managing DTMF tones, such as dial tones, ringback tones, supervisory tones, and proprietary tones.
-### setMicrophoneMute(deprecated)
+**System API**: This is a system API.
-setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void
+### load9+
-Mutes or unmutes the microphone. This API uses an asynchronous callback to return the result.
+load(type: ToneType, callback: AsyncCallback<void>): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setMicrophoneMute](#setmicrophonemute9) in **AudioVolumeGroupManager**.
+Loads the DTMF tone configuration. This API uses an asynchronous callback to return the result.
-**Required permissions**: ohos.permission.MICROPHONE
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------- | --------- | ------------------------------------------------------------ |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite. |
-| callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :--------------------- | :-------- | :---------------------------------- |
+| type | [ToneType](#tonetype9) | Yes | Tone type. |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.setMicrophoneMute(true, (err) => {
+tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
if (err) {
- console.error(`Failed to mute the microphone. ${err}`);
+ console.error(`callback call load failed error: ${err.message}`);
return;
+ } else {
+ console.info('callback call load success');
}
- console.info('Callback invoked to indicate that the microphone is muted.');
});
```
-### setMicrophoneMute(deprecated)
-
-setMicrophoneMute(mute: boolean): Promise<void>
+### load9+
-Mutes or unmutes the microphone. This API uses a promise to return the result.
+load(type: ToneType): Promise<void>
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [setMicrophoneMute](#setmicrophonemute9) in **AudioVolumeGroupManager**.
+Loads the DTMF tone configuration. This API uses a promise to return the result.
-**Required permissions**: ohos.permission.MICROPHONE
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------- | --------- | ------------------------------------------------------------ |
-| mute | boolean | Yes | Mute status to set. The value **true** means to mute the microphone, and **false** means the opposite. |
+| Name | Type | Mandatory | Description |
+| :--- | :--------------------- | :-------- | ----------- |
+| type | [ToneType](#tonetype9) | Yes | Tone type. |
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------------- |
-| Promise<void> | Promise used to return the result. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.setMicrophoneMute(true).then(() => {
- console.info('Promise returned to indicate that the microphone is muted.');
+tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
+ console.info('promise call load ');
+}).catch(() => {
+ console.error('promise call load fail');
});
```
-### isMicrophoneMute(deprecated)
-
-isMicrophoneMute(callback: AsyncCallback<boolean>): void
+### start9+
-Checks whether the microphone is muted. This API uses an asynchronous callback to return the result.
+start(callback: AsyncCallback<void>): void
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMicrophoneMute](#ismicrophonemute9) in **AudioVolumeGroupManager**.
+Starts DTMF tone playing. This API uses an asynchronous callback to return the result.
-**Required permissions**: ohos.permission.MICROPHONE
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------- | --------- | ------------------------------------------------------------ |
-| callback | AsyncCallback<boolean> | Yes | Callback used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.isMicrophoneMute((err, value) => {
+tonePlayer.start((err) => {
if (err) {
- console.error(`Failed to obtain the mute status of the microphone. ${err}`);
+ console.error(`callback call start failed error: ${err.message}`);
return;
+ } else {
+ console.info('callback call start success');
}
- console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
});
```
-### isMicrophoneMute(deprecated)
-
-isMicrophoneMute(): Promise<boolean>
+### start9+
-Checks whether the microphone is muted. This API uses a promise to return the result.
+start(): Promise<void>
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isMicrophoneMute](#ismicrophonemute9) in **AudioVolumeGroupManager**.
+Starts DTMF tone playing. This API uses a promise to return the result.
-**Required permissions**: ohos.permission.MICROPHONE
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Return value**
-| Type | Description |
-| ---------------------- | ------------------------------------------------------------ |
-| Promise<boolean> | Promise used to return the mute status of the microphone. The value **true** means that the microphone is muted, and **false** means the opposite. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.isMicrophoneMute().then((value) => {
- console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
+tonePlayer.start().then(() => {
+ console.info('promise call start');
+}).catch(() => {
+ console.error('promise call start fail');
});
```
-### on('volumeChange')(deprecated)
-
-on(type: 'volumeChange', callback: Callback\): void
+### stop9+
-> **NOTE**
->
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [on](#on9) in **AudioVolumeManager**.
+stop(callback: AsyncCallback<void>): void
-Subscribes to system volume change events.
+Stops the tone that is being played. This API uses an asynchronous callback to return the result.
**System API**: This is a system API.
-Currently, when multiple **AudioManager** instances are used in a single process, only the subscription of the last instance takes effect, and the subscription of other instances is overwritten (even if the last instance does not initiate a subscription). Therefore, you are advised to use a single **AudioManager** instance.
-
-**System capability**: SystemCapability.Multimedia.Audio.Volume
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'volumeChange'** means the system volume change event, which is triggered when a system volume change is detected. |
-| callback | Callback<[VolumeEvent](#volumeevent8)> | Yes | Callback used to return the result. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-audioManager.on('volumeChange', (volumeEvent) => {
- console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
- console.info(`Volume level: ${volumeEvent.volume} `);
- console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
+tonePlayer.stop((err) => {
+ if (err) {
+ console.error(`callback call stop error: ${err.message}`);
+ return;
+ } else {
+ console.error('callback call stop success ');
+ }
});
```
-### on('ringerModeChange')(deprecated)
-
-on(type: 'ringerModeChange', callback: Callback\): void
+### stop9+
-Subscribes to ringer mode change events.
+stop(): Promise<void>
-> **NOTE**
->
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [on('ringerModeChange')](#onringermodechange9) in **AudioVolumeGroupManager**.
+Stops the tone that is being played. This API uses a promise to return the result.
**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Communication
+**System capability**: SystemCapability.Multimedia.Audio.Tone
-**Parameters**
+**Return value**
-| Name | Type | Mandatory | Description |
-| -------- | ----------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'ringerModeChange'** means the ringer mode change event, which is triggered when a ringer mode change is detected. |
-| callback | Callback<[AudioRingMode](#audioringmode)> | Yes | Callback used to return the result. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.on('ringerModeChange', (ringerMode) => {
- console.info(`Updated ringermode: ${ringerMode}`);
+tonePlayer.stop().then(() => {
+ console.info('promise call stop finish');
+}).catch(() => {
+ console.error('promise call stop fail');
});
```
-### on('deviceChange')(deprecated)
+### release9+
-on(type: 'deviceChange', callback: Callback): void
+release(callback: AsyncCallback<void>): void
-Subscribes to device change events. When a device is connected or disconnected, registered clients will receive the callback.
+Releases the resources associated with the **TonePlayer** instance. This API uses an asynchronous callback to return the result.
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [on](#on9) in **AudioRoutingManager**.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
**Parameters**
-| Name | Type | Mandatory | Description |
-| :------- | :--------------------------------------------------- | :-------- | :----------------------------------------------------------- |
-| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected. |
-| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | Yes | Callback used to return the device update details. |
+| Name | Type | Mandatory | Description |
+| :------- | :------------------- | :-------- | :---------------------------------- |
+| callback | AsyncCallback | Yes | Callback used to return the result. |
**Example**
```js
-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} `);
+tonePlayer.release((err) => {
+ if (err) {
+ console.error(`callback call release failed error: ${err.message}`);
+ return;
+ } else {
+ console.info('callback call release success ');
+ }
});
```
-### off('deviceChange')(deprecated)
+### release9+
-off(type: 'deviceChange', callback?: Callback): void
+release(): Promise<void>
-Unsubscribes from device change events.
+Releases the resources associated with the **TonePlayer** instance. This API uses a promise to return the result.
-> **NOTE**
->
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [off](#off9) in **AudioRoutingManager**.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Multimedia.Audio.Device
+**System capability**: SystemCapability.Multimedia.Audio.Tone
-**Parameters**
+**Return value**
-| Name | Type | Mandatory | Description |
-| -------- | --------------------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'deviceChange'** means the device change event, which is triggered when a device connection status change is detected. |
-| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | No | Callback used to return the device update details. |
+| Type | Description |
+| :------------- | :--------------------------------- |
+| Promise | Promise used to return the result. |
**Example**
```js
-audioManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
+tonePlayer.release().then(() => {
+ console.info('promise call release');
+}).catch(() => {
+ console.error('promise call release fail');
});
+
```
-### on('interrupt')(deprecated)
+## ActiveDeviceType(deprecated)
-on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\): void
+Enumerates the active device types.
-Subscribes to audio interruption events. When the application's audio is interrupted by another playback event, the application will receive the callback.
+> **NOTE**
+>
+> This API is deprecated since API version 9. You are advised to use [CommunicationDeviceType](#communicationdevicetype9) instead.
-Same as [on('audioInterrupt')](#onaudiointerrupt9), this API is used to listen for focus changes. However, this API is used in scenarios without audio streams (no **AudioRenderer** instance is created), such as frequency modulation (FM) and voice wakeup.
+**System capability**: SystemCapability.Multimedia.Audio.Device
+
+| Name | Value | Description |
+| ------------- | ----- | ------------------------------------------------------------ |
+| SPEAKER | 2 | Speaker. |
+| BLUETOOTH_SCO | 7 | Bluetooth device using Synchronous Connection Oriented (SCO) links. |
+
+## InterruptActionType(deprecated)
+
+Enumerates the returned event types for audio interruption events.
> **NOTE**
>
@@ -6077,40 +6141,30 @@ Same as [on('audioInterrupt')](#onaudiointerrupt9), this API is used to listen f
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Parameters**
+| Name | Value | Description |
+| -------------- | ----- | ------------------------- |
+| TYPE_ACTIVATED | 0 | Focus gain event. |
+| TYPE_INTERRUPT | 1 | Audio interruption event. |
-| Name | Type | Mandatory | Description |
-| --------- | --------------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'interrupt'** means the audio interruption event, which is triggered when the audio playback of the current application is interrupted by another application. |
-| interrupt | AudioInterrupt | Yes | Audio interruption event type. |
-| callback | Callback<[InterruptAction](#interruptaction)> | Yes | Callback invoked for the audio interruption event. |
+## AudioInterrupt(deprecated)
-**Example**
+Describes input parameters of audio interruption events.
-```js
-let interAudioInterrupt = {
- streamUsage:2,
- contentType:0,
- pauseWhenDucked:true
-};
-audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
- if (InterruptAction.actionType === 0) {
- console.info('An event to gain the audio focus starts.');
- console.info(`Focus gain event: ${InterruptAction} `);
- }
- if (InterruptAction.actionType === 1) {
- console.info('An audio interruption event starts.');
- console.info(`Audio interruption event: ${InterruptAction} `);
- }
-});
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9.
-```
+**System capability**: SystemCapability.Multimedia.Audio.Renderer
-### off('interrupt')(deprecated)
+| Name | Type | Mandatory | Description |
+| --------------- | --------------------------- | --------- | ------------------------------------------------------------ |
+| streamUsage | [StreamUsage](#streamusage) | Yes | Audio stream usage. |
+| contentType | [ContentType](#contenttype) | Yes | Audio content type. |
+| pauseWhenDucked | boolean | Yes | Whether audio playback can be paused during audio interruption. The value **true** means that audio playback can be paused during audio interruption, and **false** means the opposite. |
-off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\): void
+## InterruptAction(deprecated)
-Unsubscribes from audio interruption events.
+Describes the callback invoked for audio interruption or focus gain events.
> **NOTE**
>
@@ -6118,26 +6172,9 @@ Unsubscribes from audio interruption events.
**System capability**: SystemCapability.Multimedia.Audio.Renderer
-**Parameters**
-
-| Name | Type | Mandatory | Description |
-| --------- | --------------------------------------------- | --------- | ------------------------------------------------------------ |
-| type | string | Yes | Event type. The value **'interrupt'** means the audio interruption event, which is triggered when the audio playback of the current application is interrupted by another application. |
-| interrupt | AudioInterrupt | Yes | Audio interruption event type. |
-| callback | Callback<[InterruptAction](#interruptaction)> | No | Callback invoked for the audio interruption event. |
-
-**Example**
-
-```js
-let interAudioInterrupt = {
- streamUsage:2,
- contentType:0,
- pauseWhenDucked:true
-};
-audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
- if (InterruptAction.actionType === 0) {
- console.info('An event to release the audio focus starts.');
- console.info(`Focus release event: ${InterruptAction} `);
- }
-});
-```
\ No newline at end of file
+| Name | Type | Mandatory | Description |
+| ---------- | ----------------------------------------------------- | --------- | ------------------------------------------------------------ |
+| actionType | [InterruptActionType](#interruptactiontypedeprecated) | Yes | Returned event type. The value **TYPE_ACTIVATED** means the focus gain event, and **TYPE_INTERRUPT** means the audio interruption event. |
+| type | [InterruptType](#interrupttype) | No | Type of the audio interruption event. |
+| hint | [InterruptHint](#interrupthint) | No | Hint provided along with the audio interruption event. |
+| activated | boolean | No | Whether the focus is gained or released. The value **true** means that the focus is gained or released, and **false** means that the focus fails to be gained or released. |
\ No newline at end of file