logo
积分中心
鸿蒙媒体开发系列12——音频输入设备管理(AudioRoutingManager)
头像 蓝亭书序 2026-10-28 14:55:24    发布
0 浏览 0 点赞 0 收藏

有时设备同时连接多个音频输入设备,需要指定音频输入设备进行音频录制,此时需要使用AudioRoutingManager接口进行输入设备的管理。

AudioRoutingManager核心API类图如下:

图片

👉🏻 支持的音频输入类型如下:

名称值说明
WIRED_HEADSET3有线耳机,带麦克风。
BLUETOOTH_SCO7蓝牙设备SCO(Synchronous Connection Oriented)连接。
MIC15麦克风。
USB_HEADSET22USB耳机,带麦克风。


👉🏻 创建AudioRoutingManager示例

在使用AudioRoutingManager管理音频设备前,需要先导入模块并创建实例。


import audio from '@ohos.multimedia.audio';  // 导入audio模块

let audioManager = audio.getAudioManager();  // 需要先创建AudioManager实例

let audioRoutingManager = audioManager.getRoutingManager();  // 再调用AudioManager的方法创建AudioRoutingManager实例


👉🏻 获取输入设备信息


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


👉🏻 监听设备连接状态变化

可以设置监听事件来监听设备连接状态的变化,当有设备连接或断开时触发回调:


// 监听音频设备状态变化
audioRoutingManager.on('deviceChange', audio.DeviceFlag.INPUT_DEVICES_FLAG, (deviceChanged) => {
  console.info('device change type : ' + deviceChanged.type);  // 设备连接状态变化,0为连接,1为断开连接
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);  // 设备角色
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);  // 设备类型
});

// 取消监听音频设备状态变化
audioRoutingManager.off('deviceChange', (deviceChanged) => {
  console.info('Should be no callback.');
});



©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255