音频管理开发指导

About 2 min

音频管理开发指导

场景介绍

音频管理的主要工作是音量调节与音量查询,以及输入/输出设备查询。

接口说明

表1 audio的相关接口

接口名 描述
getAudioManager(): AudioManager 获得音频管理器。
AudioManager 音频管理器。具体参考表 音频管理相关的interface AudioManager。
AudioDeviceDescriptor 描述音频设备。
AudioVolumeType 表示音频流类型的枚举。
DeviceFlag 表示可获取的设备种类的枚举。
DeviceRole 表示设备角色的枚举。
DeviceType 表示设备类型的枚举。

表2 音频管理相关的interface AudioManager

接口名 描述
setVolume(audioType: AudioVolumeType,volume: number,callback: AsyncCallback<void>): void 改变某个流的音量。
setVolume(audioType: AudioVolumeType,volume: number): Promise<void> 改变某个流的音量。
getVolume(audioType: AudioVolumeType, callback: AsyncCallback<number>): void 获得某个流的音量。
getVolume(audioType: AudioVolumeType): Promise<number> 获得某个流的音量。
getMinVolume(audioType: AudioVolumeType, callback: AsyncCallback<number>): void 获得某个流的最小音量。
getMinVolume(audioType: AudioVolumeType): Promise<number> 获得某个流的最小音量。
getMaxVolume(audioType: AudioVolumeType, callback: AsyncCallback<number>): void 获得某个流的最大音量。
getMaxVolume(audioType: AudioVolumeType): Promise<number> 获得某个流的最大音量。
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void 获得设备列表。
getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> 获得设备列表。

表3 表示音频设备的interface AudioDeviceDescriptor

属性 描述
deviceRole: DeviceRole 设备角色。
deviceType: DeviceType 设备类型。

表4 表示音频流类型的枚举AudioVolumeType

枚举值 描述
MEDIA = 1 媒体声音。
RINGTONE = 2 铃声。

表5 表示可获取的设备种类的枚举DeviceFlag

枚举值 描述
OUTPUT_DEVICES_FLAG = 1 输出设备。
INPUT_DEVICES_FLAG = 2 输入设备。
ALL_DEVICES_FLAG = 3 所有设备。

表6 表示设备角色的枚举DeviceRole

枚举值 描述
INPUT_DEVICE = 1 输入设备。
OUTPUT_DEVICE = 2 输出设备。

表7 表示设备类型的枚举DeviceType

枚举值 描述
INVALID = 0 无效。
SPEAKER = 1 扬声器。
WIRED_HEADSET = 2 有线耳机。
BLUETOOTH_SCO = 3 蓝牙设备。
BLUETOOTH_A2DP = 4 支持A2DP的蓝牙设备。
MIC = 5 麦克风。

开发步骤

  1. 获取音频控制器。

    const audioManager = audio.getAudioManager();
    
    1
  2. 改变媒体流的声音。

    audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
       if (err) {
    	   console.error(`failed to get volume ${err.message}`);
    	   return;
       }
       console.log(`Media getVolume  ${value}`);
    });
    
    1
    2
    3
    4
    5
    6
    7