音频管理开发指导
场景介绍
音频管理的主要工作是音量调节与音量查询,以及输入/输出设备查询。
接口说明
表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 | 麦克风。 |
开发步骤
获取音频控制器。
const audioManager = audio.getAudioManager();
改变媒体流的声音。
audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {if (err) {console.error(`failed to get volume ${err.message}`);return;}console.log(`Media getVolume ${value}`);});
