audio-management.md 3.7 KB
Newer Older
Z
zengyawen 已提交
1
# 音频管理开发指导
M
mamingshuai 已提交
2

Z
zengyawen 已提交
3
## 场景介绍
M
mamingshuai 已提交
4 5 6 7

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


Z
zengyawen 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
## 接口说明

**表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();
   ```

2. 改变媒体流的声音。
   ```
   audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
      if (err) {
   	   console.error(`failed to get volume ${err.message}`);
   	   return;
      }
      console.log(`Media getVolume  ${value}`);
   });
   ```