# Interface (AudioVolumeGroupManager) > **说明:** > > - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > - 本Interface首批接口从API version 9开始支持。 管理音频组音量。 在使用AudioVolumeGroupManager的接口之前,需先通过[getVolumeGroupManager](arkts-apis-audio-AudioVolumeManager.md#getvolumegroupmanager9)获取AudioVolumeGroupManager实例。 ## 导入模块 ```ts import { audio } from '@kit.AudioKit'; ``` ## getVolume(deprecated) getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 获取指定流的音量。使用callback异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { if (err) { console.error(`Failed to obtain the volume. ${err}`); return; } console.info('Callback invoked to indicate that the volume is obtained.'); }); ``` ## getVolume(deprecated) getVolume(volumeType: AudioVolumeType): Promise<number> 获取指定流的音量。使用Promise异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ------------------------- | | Promise<number> | Promise对象,返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | **示例:** ```ts audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { console.info(`Promise returned to indicate that the volume is obtained ${value}.`); }); ``` ## getVolumeSync(deprecated) getVolumeSync(volumeType: AudioVolumeType): number 获取指定流的音量。同步返回结果。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ------------------------- | | number | 返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA); console.info(`Indicate that the volume is obtained ${value}.`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the volume, error ${error}.`); } ``` ## getMinVolume(deprecated) getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 获取指定流的最小音量。使用callback异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 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}`); }); ``` ## getMinVolume(deprecated) getMinVolume(volumeType: AudioVolumeType): Promise<number> 获取指定流的最小音量。使用Promise异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ------------------------- | | Promise<number> | Promise对象,返回最小音量。 | **示例:** ```ts audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`); }); ``` ## getMinVolumeSync(deprecated) getMinVolumeSync(volumeType: AudioVolumeType): number 获取指定流的最小音量。同步返回结果。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ------------------------- | | number | 返回最小音量。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA); console.info(`Indicate that the minimum volume is obtained ${value}.`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the minimum volume, error ${error}.`); } ``` ## getMaxVolume(deprecated) getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 获取指定流的最大音量。使用callback异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ---------------------- | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 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}`); }); ``` ## getMaxVolume(deprecated) getMaxVolume(volumeType: AudioVolumeType): Promise<number> 获取指定流的最大音量。使用Promise异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ----------------------------- | | Promise<number> | Promise对象,返回最大音量大小。 | **示例:** ```ts audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => { console.info('Promised returned to indicate that the maximum volume is obtained.'); }); ``` ## getMaxVolumeSync(deprecated) getMaxVolumeSync(volumeType: AudioVolumeType): number 获取指定流的最大音量。同步返回结果。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ----------------------------- | | number | 返回最大音量大小。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA); console.info(`Indicate that the maximum volume is obtained. ${value}`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the maximum volume, error ${error}.`); } ``` ## isMute(deprecated) isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 获取指定音量流静音状态。使用callback异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ----------------------------------------------- | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音量流静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 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}.`); }); ``` ## isMute(deprecated) isMute(volumeType: AudioVolumeType): Promise<boolean> 获取指定音量流是否被静音。使用Promise异步回调。 > **说明:** > 从API version 9开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | ---------------------- | ------------------------------------------------------ | | Promise<boolean> | Promise对象。返回true表示静音;返回false表示非静音。 | **示例:** ```ts audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => { console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`); }); ``` ## isMuteSync(deprecated) isMuteSync(volumeType: AudioVolumeType): boolean 获取指定音量流是否被静音。同步返回结果。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | ------------ | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | **返回值:** | 类型 | 说明 | | ---------------------- | ------------------------------------------------------ | | boolean | 流静音状态。返回true表示静音,返回false表示非静音。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA); console.info(`Indicate that the mute status of the stream is obtained ${value}.`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the mute status of the stream, error ${error}.`); } ``` ## getRingerMode9+ getRingerMode(callback: AsyncCallback<AudioRingMode>): void 获取铃声模式。使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------------------------------- | ---- | ------------------------ | | callback | AsyncCallback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 是 | 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => { 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}.`); }); ``` ## getRingerMode9+ getRingerMode(): Promise<AudioRingMode> 获取铃声模式。使用Promise异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **返回值:** | 类型 | 说明 | | ---------------------------------------------- | ------------------------------- | | Promise<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | Promise对象,返回系统的铃声模式。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => { console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`); }).catch((err: BusinessError) => { console.error(`Failed to getRingerMode. Code: ${err.code}, message: ${err.message}`); }); ``` ## getRingerModeSync10+ getRingerModeSync(): AudioRingMode 获取铃声模式。同步返回结果。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **返回值:** | 类型 | 说明 | | ---------------------------------------------- | ------------------------------- | | [AudioRingMode](arkts-apis-audio-e.md#audioringmode) | 返回系统的铃声模式。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync(); console.info(`Indicate that the ringer mode is obtained ${value}.`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the ringer mode, error ${error}.`); } ``` ## on('ringerModeChange')9+ on(type: 'ringerModeChange', callback: Callback\): void 监听铃声模式变化事件(当[铃声模式](arkts-apis-audio-e.md#audioringmode)发生变化时触发)。使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | | type | string | 是 | 事件回调类型,支持的事件为'ringerModeChange',当铃声模式发生变化时,触发该事件。 | | callback | Callback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 是 | 回调函数,返回变化后的铃音模式。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts audioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => { console.info(`Updated ringermode: ${ringerMode}`); }); ``` ## off('ringerModeChange')18+ off(type: 'ringerModeChange', callback?: Callback<AudioRingMode>): void 取消监听铃声模式变化事件。使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- |----| ------------------------------------------------------------ | | type | string | 是 | 事件回调类型,支持的事件为'ringerModeChange',当取消监听铃声模式变化事件时,触发该事件。 | | callback |Callback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 否 | 回调函数,返回变化后的铃音模式。 | **错误码:** 以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 6800101 | Parameter verification failed. | **示例:** ```ts // 取消该事件的所有监听。 audioVolumeGroupManager.off('ringerModeChange'); // 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。 let ringerModeChangeCallback = (ringerMode: audio.AudioRingMode) => { console.info(`Updated ringermode: ${ringerMode}`); }; audioVolumeGroupManager.on('ringerModeChange', ringerModeChangeCallback); audioVolumeGroupManager.off('ringerModeChange', ringerModeChangeCallback); ``` ## isMicrophoneMute9+ isMicrophoneMute(callback: AsyncCallback<boolean>): void 获取麦克风静音状态。使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ---------------------------- | ---- | ------------------------------------------------------- | | callback | AsyncCallback<boolean> | 是 | 回调函数。当获取麦克风静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => { 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}.`); }); ``` ## isMicrophoneMute9+ isMicrophoneMute(): Promise<boolean> 获取麦克风静音状态。使用Promise异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **返回值:** | 类型 | 说明 | | ---------------------- | ------------------------------------------------------------ | | Promise<boolean> | Promise对象。返回true表示麦克风被静音;返回false表示麦克风未被静音。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => { console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`); }).catch((err: BusinessError) => { console.error(`Failed to isMicrophoneMute. Code: ${err.code}, message: ${err.message}`); }); ``` ## isMicrophoneMuteSync10+ isMicrophoneMuteSync(): boolean 获取麦克风静音状态。同步返回结果。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **返回值:** | 类型 | 说明 | | ---------------------- | ------------------------------------------------------------ | | boolean | 系统麦克风静音状态。返回true表示静音,返回false表示非静音。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync(); console.info(`Indicate that the mute status of the microphone is obtained ${value}.`); } catch (err) { let error = err as BusinessError; console.error(`Failed to obtain the mute status of the microphone, error ${error}.`); } ``` ## on('micStateChange')9+ on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void 监听系统麦克风状态更改事件(当检测到系统麦克风状态发生改变时触发)。使用callback异步回调。 目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅。因此,推荐使用单一AudioManager实例进行开发。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | | type | string | 是 | 事件回调类型,支持的事件为'micStateChange',当检测到系统麦克风状态发生改变时,触发该事件。 | | callback | Callback<[MicStateChangeEvent](arkts-apis-audio-i.md#micstatechangeevent9)> | 是 | 回调函数,返回变更后的麦克风状态。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts audioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => { console.info(`Current microphone status is: ${micStateChange.mute} `); }); ``` ## off('micStateChange')12+ off(type: 'micStateChange', callback?: Callback<MicStateChangeEvent>): void 取消监听系统麦克风状态更改事件。使用callback异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- |----| ------------------------------------------------------------ | | type | string | 是 | 事件回调类型,支持的事件为'micStateChange',当取消监听系统麦克风状态更改事件时,触发该事件。 | | callback | Callback<[MicStateChangeEvent](arkts-apis-audio-i.md#micstatechangeevent9)> | 否 | 回调函数,返回变更后的麦克风状态。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts // 取消该事件的所有监听。 audioVolumeGroupManager.off('micStateChange'); // 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。 let micStateChangeCallback = (micStateChange: audio.MicStateChangeEvent) => { console.info(`Current microphone status is: ${micStateChange.mute} `); }; audioVolumeGroupManager.on('micStateChange', micStateChangeCallback); audioVolumeGroupManager.off('micStateChange', micStateChangeCallback); ``` ## isVolumeUnadjustable10+ isVolumeUnadjustable(): boolean 获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节。同步返回结果。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **返回值:** | 类型 | 说明 | | ---------------------- | ------------------------------------------------------ | | boolean | 固定音量模式开关状态。返回true表示固定音量模式,返回false表示非固定音量模式。 | **示例:** ```ts let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable(); console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`); ``` ## getSystemVolumeInDb(deprecated) getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void 获取音量增益dB值。使用callback异步回调。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | volumeLevel | number | 是 | 音量等级。 | | device | [DeviceType](arkts-apis-audio-e.md#devicetype) | 是 | 设备类型。 | | callback | AsyncCallback<number> | 是 | 回调函数。当获取音量增益dB值成功,err为undefined,data为获取到的音量增益dB值;否则为错误对象。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. Return by callback. | | 6800301 | System error. Return by callback. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => { if (err) { console.error(`Failed to get the volume DB. ${err}`); } else { console.info(`Success to get the volume DB. ${dB}`); } }); ``` ## getSystemVolumeInDb(deprecated) getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number> 获取音量增益dB值。使用Promise异步回调。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | volumeLevel | number | 是 | 音量等级。 | | device | [DeviceType](arkts-apis-audio-e.md#devicetype) | 是 | 设备类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ---------------------------------- | | Promise<number> | Promise对象,返回对应的音量增益dB值。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. Return by promise. | | 6800301 | System error. Return by promise. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => { console.info(`Success to get the volume DB. ${value}`); }).catch((error: BusinessError) => { console.error(`Fail to adjust the system volume by step. ${error}`); }); ``` ## getSystemVolumeInDbSync(deprecated) getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number 获取音量增益dB值。同步返回结果。 > **说明:** > 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | | volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音量流类型。 | | volumeLevel | number | 是 | 音量等级。 | | device | [DeviceType](arkts-apis-audio-e.md#devicetype) | 是 | 设备类型。 | **返回值:** | 类型 | 说明 | | --------------------- | ---------------------------------- | | number | 返回对应的音量增益dB值。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; try { let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER); console.info(`Success to get the volume DB. ${value}`); } catch (err) { let error = err as BusinessError; console.error(`Fail to adjust the system volume by step. ${error}`); } ``` ## getMaxAmplitudeForInputDevice12+ getMaxAmplitudeForInputDevice(inputDevice: AudioDeviceDescriptor): Promise<number> 获取输入设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ----------- | ------------------------------------- | ---- | --------------------------------------------------- | | inputDevice |[AudioDeviceDescriptor](arkts-apis-audio-i.md#audiodevicedescriptor) | 是 | 获取最大电平值的设备信息。 | **返回值:** | 类型 | 说明 | | --------------------- | ---------------------------------- | | Promise<number> | Promise对象,返回对应设备的电平值,大小在[0, 1]之间。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. Return by promise. | | 6800301 | System error. Return by promise. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let capturerInfo: audio.AudioCapturerInfo = { source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。 capturerFlags: 0 // 音频采集器标志。 }; audio.getAudioManager().getRoutingManager().getPreferredInputDeviceForCapturerInfo(capturerInfo).then((data) => { audioVolumeGroupManager.getMaxAmplitudeForInputDevice(data[0]).then((value) => { console.info(`max amplitude is: ${value}`); }).catch((err: BusinessError) => { console.error(`getMaxAmplitudeForInputDevice error. Code: ${err.code}, message: ${err.message}`); }) }).catch((err: BusinessError) => { console.error(`getPreferredInputDeviceForCapturerInfo error. Code: ${err.code}, message: ${err.message}`); }) ``` ## getMaxAmplitudeForOutputDevice12+ getMaxAmplitudeForOutputDevice(outputDevice: AudioDeviceDescriptor): Promise<number> 获取输出设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------ | --------------------------------------- | ---- | -------------------------------------------------------- | | outputDevice |[AudioDeviceDescriptor](arkts-apis-audio-i.md#audiodevicedescriptor) | 是 | 获取最大电平值的设备信息。 | **返回值:** | 类型 | 说明 | | --------------------- | ---------------------------------- | | Promise<number> | Promise对象,返回对应设备的电平值,大小在[0, 1]之间。 | **错误码:** 以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 | 错误码ID | 错误信息 | | ------- | --------------------------------------------| | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 6800101 | Parameter verification failed. Return by promise. | | 6800301 | System error. Return by promise. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let rendererInfo: audio.AudioRendererInfo = { usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。 rendererFlags: 0 // 音频渲染器标志。 }; audio.getAudioManager().getRoutingManager().getPreferOutputDeviceForRendererInfo(rendererInfo).then((data) => { audioVolumeGroupManager.getMaxAmplitudeForOutputDevice(data[0]).then((value) => { console.info(`max amplitude is: ${value}`); }).catch((err: BusinessError) => { console.error(`getMaxAmplitudeForOutputDevice error. Code: ${err.code}, message: ${err.message}`); }) }).catch((err: BusinessError) => { console.error(`getPreferOutputDeviceForRendererInfo error. Code: ${err.code}, message: ${err.message}`); }) ``` ## setMicrophoneMute(deprecated) setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void 设置麦克风静音状态。使用callback异步回调。 > **说明:** > > 从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。 **需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------- | ---- | --------------------------------------------- | | mute | boolean | 是 | 是否设置麦克风为静音状态。true表示静音,false表示非静音。 | | callback | AsyncCallback<void> | 是 | 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => { if (err) { console.error(`Failed to mute the microphone. ${err}`); return; } console.info('Callback invoked to indicate that the microphone is muted.'); }); ``` ## setMicrophoneMute(deprecated) setMicrophoneMute(mute: boolean): Promise<void> 设置麦克风静音状态。使用Promise异步回调。 > **说明:** > > 从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。 **需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。 **系统能力:** SystemCapability.Multimedia.Audio.Volume **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------ | ------- | ---- | --------------------------------------------- | | mute | boolean | 是 | 是否设置麦克风为静音状态。true表示静音,false表示非静音。 | **返回值:** | 类型 | 说明 | | ------------------- | ------------------------------- | | Promise<void> | Promise对象。无返回结果的Promise对象。 | **示例:** ```ts audioVolumeGroupManager.setMicrophoneMute(true).then(() => { console.info('Promise returned to indicate that the microphone is muted.'); }); ```