音频管理开发指导
场景介绍
音频管理的主要工作是音量调节与音量查询,以及输入/输出设备查询。
接口说明
表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}`);
});