Interface (AudioVolumeManager)
This interface implements audio volume management.
Before calling any API in AudioVolumeManager, you must use getVolumeManager to obtain an AudioVolumeManager instance.
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 interface are supported since API version 9.
Modules to Import
import { audio } from '@kit.AudioKit';
getVolumeGroupManager9+
getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void
Obtains a VolumeGroupManager instance. 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. The default value is DEFAULT_VOLUME_GROUP_ID. |
| callback | AsyncCallback<AudioVolumeGroupManager> | Yes | Callback used to return the result. If the operation is successful, err is undefined and data is the VolumeGroupManager instance obtained; otherwise, err is an error object. |
Example
import { BusinessError } from '@kit.BasicServicesKit';
let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
let audioVolumeGroupManager: audio.AudioVolumeGroupManager;
audioVolumeManager.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => {
if (err) {
console.error(`Failed to get volume group manager. Code: ${err.code}, message: ${err.message}`);
return;
}
console.info('Succeeded in getting volume group manager.');
audioVolumeGroupManager = value;
});
getVolumeGroupManager9+
getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>
Obtains a VolumeGroupManager instance. 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. The default value is DEFAULT_VOLUME_GROUP_ID. |
Return value
| Type | Description |
|---|---|
| Promise< AudioVolumeGroupManager > | Promise used to return the VolumeGroupManager instance. |
Example
import { audio } from '@kit.AudioKit';
import { BusinessError } from '@kit.BasicServicesKit';
let groupId: number = audio.DEFAULT_VOLUME_GROUP_ID;
let audioVolumeGroupManager: audio.AudioVolumeGroupManager;
audioVolumeManager.getVolumeGroupManager(groupId).then((value: audio.AudioVolumeGroupManager) => {
console.info('Succeeded in getting volume group manager.');
audioVolumeGroupManager = value;
}).catch((err: BusinessError) => {
console.error(`Failed to get volume group manager. Code: ${err.code}, message: ${err.message}`);
});
getVolumeGroupManagerSync10+
getVolumeGroupManagerSync(groupId: number): AudioVolumeGroupManager
Obtains a VolumeGroupManager instance. This API returns the result synchronously.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| groupId | number | Yes | Volume group ID. The default value is DEFAULT_VOLUME_GROUP_ID. |
Return value
| Type | Description |
|---|---|
| AudioVolumeGroupManager | VolumeGroupManager instance. |
Error codes
For details about the error codes, see Universal Error Codes and Audio Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
| 6800101 | Parameter verification failed. |
Example
import { BusinessError } from '@kit.BasicServicesKit';
try {
let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID);
console.info('Succeeded in getting volume group manager.');
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to get volume group manager. Code: ${error.code}, message: ${error.message}`);
}
getAppVolumePercentage19+
getAppVolumePercentage(): Promise<number>
Obtains the volume of the application. (The volume range is 0 to 100.) This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Return value
| Type | Description |
|---|---|
| Promise<number> | Promise used to return the application volume. |
Example
import { audio } from '@kit.AudioKit';
audioVolumeManager.getAppVolumePercentage().then((value: number) => {
console.info(`app volume is ${value}.`);
});
setAppVolumePercentage19+
setAppVolumePercentage(volume: number): Promise<void>
Sets the volume (within a range of 0 to 100) for the application. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| volume | number | Yes | Volume to set. |
Return value
| Type | Description |
|---|---|
| Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
| 6800301 | Crash or blocking occurs in system process. |
Example
import { audio } from '@kit.AudioKit';
audioVolumeManager.setAppVolumePercentage(20).then(() => {
console.info(`set app volume success.`);
});
on('volumeChange')(deprecated)
on(type: 'volumeChange', callback: Callback<VolumeEvent>): void
Subscribes to the system volume change event, which is triggered when the system volume is changed. This API uses an asynchronous callback to return the result.
NOTE This API is supported since API version 9 and deprecated since API version 20. You are advised to use on('streamVolumeChange') instead.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | string | Yes | Event type. The event 'volumeChange' is triggered when the system volume is changed. |
| callback | Callback<VolumeEvent> | Yes | Callback used to return the changed volume. |
Error codes
For details about the error codes, see Universal Error Codes and Audio Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
| 6800101 | Parameter verification failed. |
Example
audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
console.info(`Volume level: ${volumeEvent.volume} `);
console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});
off('volumeChange')(deprecated)
off(type: 'volumeChange', callback?: Callback<VolumeEvent>): void
Unsubscribes from the system volume change event. This API uses an asynchronous callback to return the result.
NOTE This API is supported since API version 12 and deprecated since API version 20. You are advised to use off('streamVolumeChange') instead.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| type | string | Yes | Event type. The event 'volumeChange' is triggered when the system volume is changed. |
| callback | Callback<VolumeEvent> | No | Callback used to return the changed volume. |
Error codes
For details about the error codes, see Universal Error Codes and Audio Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types. |
| 6800101 | Parameter verification failed. |
Example
// Cancel all subscriptions to the event.
audioVolumeManager.off('volumeChange');
// For the same event, if the callback parameter passed to the off API is the same as that passed to the on API, the off API cancels the subscription registered with the specified callback parameter.
let volumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
console.info(`Volume level: ${volumeEvent.volume} `);
console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
};
audioVolumeManager.on('volumeChange', volumeChangeCallback);
audioVolumeManager.off('volumeChange', volumeChangeCallback);
on('appVolumeChange')19+
on(type: 'appVolumeChange', callback: Callback<VolumeEvent>): void
Subscribes to the application-level volume change event of the application (triggered when the application-level volume is changed). 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 event 'appVolumeChange' is triggered when the application-level volume is changed. |
| callback | Callback<VolumeEvent> | Yes | Callback used to return the changed volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
audioVolumeManager.on('appVolumeChange', (volumeEvent: audio.VolumeEvent) => {
console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
console.info(`Volume level: ${volumeEvent.volume} `);
console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
});
off('appVolumeChange')19+
off(type: 'appVolumeChange', callback?: Callback<VolumeEvent>): void
Unsubscribes from the application-level volume change event of the application. 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 event 'appVolumeChange' is triggered when the application-level volume is changed. |
| callback | Callback<VolumeEvent> | No | Callback used to return the changed volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Cancel all subscriptions to the event.
audioVolumeManager.off('appVolumeChange');
// For the same event, if the callback parameter passed to the off API is the same as that passed to the on API, the off API cancels the subscription registered with the specified callback parameter.
let appVolumeChangeCallback = (volumeEvent: audio.VolumeEvent) => {
console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
console.info(`Volume level: ${volumeEvent.volume} `);
console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
};
audioVolumeManager.on('appVolumeChange', appVolumeChangeCallback);
audioVolumeManager.off('appVolumeChange', appVolumeChangeCallback);
getVolumeByStream20+
getVolumeByStream(streamUsage: StreamUsage): number
Obtains the volume of a specified audio stream.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| streamUsage | StreamUsage | Yes | Audio stream for which the volume is to be obtained. |
Return value
| Type | Description |
|---|---|
| number | Volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Obtain the volume of a specified audio stream.
import { BusinessError } from '@kit.BasicServicesKit';
import { audio } from '@kit.AudioKit'
try {
let volume : number = audio.getAudioManager().getVolumeManager().getVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
console.info(`Obtains the volume of a stream success.`);
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to obtains the volume of a stream, error: ${error}`);
}
getMinVolumeByStream20+
getMinVolumeByStream(streamUsage: StreamUsage): number
Obtains the minimum volume of a specified audio stream.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| streamUsage | StreamUsage | Yes | Audio stream for which the minimum volume is to be obtained. |
Return value
| Type | Description |
|---|---|
| number | Volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Obtain the minimum volume of a specified audio stream.
import { BusinessError } from '@kit.BasicServicesKit';
import { audio } from '@kit.AudioKit'
try {
let volume : number = audio.getAudioManager().getVolumeManager().getMinVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
console.info(`Obtains the minimum volume allowed for a stream success.`);
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to obtains the minimum volume allowed for a stream, error: ${error}`);
}
getMaxVolumeByStream20+
getMaxVolumeByStream(streamUsage: StreamUsage): number
Obtains the maximum volume of a specified audio stream.
Atomic service API: This API can be used in atomic services since API version 23.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| streamUsage | StreamUsage | Yes | Audio stream for which the maximum volume is to be obtained. |
Return value
| Type | Description |
|---|---|
| number | Volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Obtain the maximum volume of a specified audio stream.
import { BusinessError } from '@kit.BasicServicesKit';
import { audio } from '@kit.AudioKit'
try {
let volume : number = audio.getAudioManager().getVolumeManager().getMaxVolumeByStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
console.info(`Obtains the maximum volume allowed for a stream success.`);
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to obtains the maximum volume allowed for a stream, error: ${error}`);
}
isSystemMutedForStream20+
isSystemMutedForStream(streamUsage: StreamUsage): boolean
Checks whether a specified audio stream is muted.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| streamUsage | StreamUsage | Yes | Audio stream to check. |
Return value
| Type | Description |
|---|---|
| boolean | Check result for whether the audio stream is muted. true if muted, false otherwise. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Check whether a specified audio stream is muted.
import { BusinessError } from '@kit.BasicServicesKit';
import { audio } from '@kit.AudioKit'
try {
let isMuted : boolean = audio.getAudioManager().getVolumeManager().isSystemMutedForStream(audio.StreamUsage.STREAM_USAGE_MUSIC);
console.info(`Checks whether the system is muted based on the stream success.`);
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to checks whether the system is muted based on the stream, error: ${error}`);
}
getVolumeInUnitOfDbByStream20+
getVolumeInUnitOfDbByStream(streamUsage: StreamUsage, volumeLevel: number, device: DeviceType): number
Obtains the volume (in dB) calculated by the system based on the audio stream, volume level, and device type.
System capability: SystemCapability.Multimedia.Audio.Volume
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| streamUsage | StreamUsage | Yes | Audio stream. |
| volumeLevel | number | Yes | Volume level. |
| device | DeviceType | Yes | Device type. |
Return value
| Type | Description |
|---|---|
| number | Volume of the audio stream, in dB. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
// Obtain the volume (in dB) calculated by the system based on the audio stream, volume level, and device type.
import { BusinessError } from '@kit.BasicServicesKit';
import { audio } from '@kit.AudioKit'
try {
let volumeInDb : number = audio.getAudioManager().getVolumeManager().getVolumeInUnitOfDbByStream(audio.StreamUsage.STREAM_USAGE_MUSIC, 5, audio.DeviceType.SPEAKER);
console.info(`Gets the volume db value that system calculate by volume stream, volume level and device type.
success.`);
} catch (err) {
let error = err as BusinessError;
console.error(`Failed to gets the volume db value that system calculate by volume stream, volume level and device type., error: ${error}`);
}
on('streamVolumeChange')20+
on(type: 'streamVolumeChange', streamUsage: StreamUsage, callback: Callback<StreamVolumeEvent>): void
Subscribes to the system audio volume change event, which is triggered when the system audio volume is changed. 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 event 'streamVolumeChange' is triggered when the system audio volume is changed. |
| streamUsage | StreamUsage | Yes | Audio stream usage. |
| callback | Callback<StreamVolumeEvent> | Yes | Callback used to return the changed volume. |
Error codes
For details about the error codes, see Audio Error Codes.
| ID | Error Message |
|---|---|
| 6800101 | Parameter verification failed. |
Example
audioVolumeManager.on('streamVolumeChange', audio.StreamUsage.STREAM_USAGE_MUSIC, (streamVolumeEvent: audio.StreamVolumeEvent) => {
console.info(`StreamUsage of stream: ${streamVolumeEvent.streamUsage} `);
console.info(`Volume level: ${streamVolumeEvent.volume} `);
console.info(`Whether to updateUI: ${streamVolumeEvent.updateUi} `);
});
off('streamVolumeChange')20+
off(type: 'streamVolumeChange', callback?: Callback<StreamVolumeEvent>): void
Unsubscribes from the system audio volume change event, which is triggered when the system audio volume is changed. 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 event 'volumeChange' is triggered when the system volume is changed. |
| callback | Callback<StreamVolumeEvent> | No | Callback used to return the changed volume. |
Example
// Cancel all subscriptions to the event.
audioVolumeManager.off('streamVolumeChange');
// For the same event, if the callback parameter passed to the off API is the same as that passed to the on API, the off API cancels the subscription registered with the specified callback parameter.
let streamVolumeChangeCallback = (streamVolumeEvent: audio.StreamVolumeEvent) => {
console.info(`StreamUsage of stream: ${streamVolumeEvent.streamUsage} `);
console.info(`Volume level: ${streamVolumeEvent.volume} `);
console.info(`Whether to updateUI: ${streamVolumeEvent.updateUi} `);
};
audioVolumeManager.on('streamVolumeChange', audio.StreamUsage.STREAM_USAGE_MUSIC, streamVolumeChangeCallback);
audioVolumeManager.off('streamVolumeChange', streamVolumeChangeCallback);