音频管理开发指导

About 10 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