W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有時(shí)設(shè)備同時(shí)連接多個(gè)音頻輸入設(shè)備,需要指定音頻輸入設(shè)備進(jìn)行音頻錄制,此時(shí)需要使用AudioRoutingManager接口進(jìn)行輸入設(shè)備的管理,API說明可以參考AudioRoutingManager API文檔。
在使用AudioRoutingManager管理音頻設(shè)備前,需要先導(dǎo)入模塊并創(chuàng)建實(shí)例。
- import audio from '@ohos.multimedia.audio'; // 導(dǎo)入audio模塊
- let audioManager = audio.getAudioManager(); // 需要先創(chuàng)建AudioManager實(shí)例
- let audioRoutingManager = audioManager.getRoutingManager(); // 再調(diào)用AudioManager的方法創(chuàng)建AudioRoutingManager實(shí)例
目前支持的音頻輸入設(shè)備見下表:
名稱 | 值 | 說明 |
---|---|---|
WIRED_HEADSET | 3 | 有線耳機(jī),帶麥克風(fēng)。 |
BLUETOOTH_SCO | 7 | 藍(lán)牙設(shè)備SCO(Synchronous Connection Oriented)連接。 |
MIC | 15 | 麥克風(fēng)。 |
USB_HEADSET | 22 | USB耳機(jī),帶麥克風(fēng)。 |
使用getDevices()方法可以獲取當(dāng)前所有輸入設(shè)備的信息。
- audioRoutingManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG).then((data) => {
- console.info('Promise returned to indicate that the device list is obtained.');
- });
可以設(shè)置監(jiān)聽事件來監(jiān)聽設(shè)備連接狀態(tài)的變化,當(dāng)有設(shè)備連接或斷開時(shí)觸發(fā)回調(diào):
- // 監(jiān)聽音頻設(shè)備狀態(tài)變化
- audioRoutingManager.on('deviceChange', audio.DeviceFlag.INPUT_DEVICES_FLAG, (deviceChanged) => {
- console.info('device change type : ' + deviceChanged.type); // 設(shè)備連接狀態(tài)變化,0為連接,1為斷開連接
- console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
- console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); // 設(shè)備角色
- console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); // 設(shè)備類型
- });
- // 取消監(jiān)聽音頻設(shè)備狀態(tài)變化
- audioRoutingManager.off('deviceChange', (deviceChanged) => {
- console.info('Should be no callback.');
- });
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: