音頻輸出設備管理

2024-02-16 13:54 更新

有時設備同時連接多個音頻輸出設備,需要指定音頻輸出設備進行音頻播放,此時需要使用AudioRoutingManager接口進行輸出設備的管理,API說明可以參考AudioRoutingManager API文檔。

創(chuàng)建AudioRoutingManager實例

在使用AudioRoutingManager管理音頻設備前,需要先導入模塊并創(chuàng)建實例。

  1. import audio from '@ohos.multimedia.audio'; // 導入audio模塊
  2. let audioManager = audio.getAudioManager(); // 需要先創(chuàng)建AudioManager實例
  3. let audioRoutingManager = audioManager.getRoutingManager(); // 再調用AudioManager的方法創(chuàng)建AudioRoutingManager實例

支持的音頻輸出設備類型

目前支持的音頻輸出設備見下表:

名稱

說明

EARPIECE

1

聽筒。

SPEAKER

2

揚聲器。

WIRED_HEADSET

3

有線耳機,帶麥克風。

WIRED_HEADPHONES

4

有線耳機,無麥克風。

BLUETOOTH_SCO

7

藍牙設備SCO(Synchronous Connection Oriented)連接。

BLUETOOTH_A2DP

8

藍牙設備A2DP(Advanced Audio Distribution Profile)連接。

USB_HEADSET

22

USB耳機,帶麥克風。

獲取輸出設備信息

使用getDevices()方法可以獲取當前所有輸出設備的信息。

  1. audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
  2. console.info('Promise returned to indicate that the device list is obtained.');
  3. });

監(jiān)聽設備連接狀態(tài)變化

可以設置監(jiān)聽事件來監(jiān)聽設備連接狀態(tài)的變化,當有設備連接或斷開時觸發(fā)回調:

  1. // 監(jiān)聽音頻設備狀態(tài)變化
  2. audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
  3. console.info('device change type : ' + deviceChanged.type); // 設備連接狀態(tài)變化,0為連接,1為斷開連接
  4. console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  5. console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); // 設備角色
  6. console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); // 設備類型
  7. });
  8. // 取消監(jiān)聽音頻設備狀態(tài)變化
  9. audioRoutingManager.off('deviceChange', (deviceChanged) => {
  10. console.info('Should be no callback.');
  11. });
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號