From 12ea7cdd6a5aa27a17e16492239d7d55ef6f9b82 Mon Sep 17 00:00:00 2001 From: jiao_yanlin Date: Fri, 4 Nov 2022 15:38:45 +0800 Subject: [PATCH] Supplement and optimization of development guide Signed-off-by: jiao_yanlin --- .../media/audio-routing-manager.md | 112 ++++++++++++++++++ .../zh-ch_image_audio_routing_manager.png | Bin 0 -> 48521 bytes 2 files changed, 112 insertions(+) create mode 100644 zh-cn/application-dev/media/audio-routing-manager.md create mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_audio_routing_manager.png diff --git a/zh-cn/application-dev/media/audio-routing-manager.md b/zh-cn/application-dev/media/audio-routing-manager.md new file mode 100644 index 0000000000..4d36ce7df0 --- /dev/null +++ b/zh-cn/application-dev/media/audio-routing-manager.md @@ -0,0 +1,112 @@ +# 路由、设备管理开发指导 + +## 简介 + +AudioRoutingManager提供了音频路由、设备管理的方法。开发者可以通过本指导了解应用如何通过AudioRoutingManager获取当前工作的输入、输出音频设备,监听音频设备的连接状态变化,激活通信设备等。 + +## 运作机制 + +该模块提供了路由、设备管理模块常用接口 + +**图1** 音量管理常用接口 + +![zh-ch_image_audio_routing_manager](figures/zh-ch_image_audio_routing_manager.png) + +**说明:**AudioRoutingManager主要接口有:获取设备列表信息、监听与取消监听设备连接状态、激活通信设备、查询通信设备激活状态。更多介绍请参考[API参考文档](../reference/apis/js-apis-audio.md)。 + + +## 开发指导 + +详细API含义可参考:[音频路由、设备管理API文档AudioRoutingManager](../reference/apis/js-apis-audio.md#audioroutingmanager9) + +1. 创建AudioRoutingManager实例。 + + 在使用AudioRoutingManager的API前,需要使用getRoutingManager创建一个AudioRoutingManager实例。 + + ```js + import audio from '@ohos.multimedia.audio'; + async loadAudioRoutingManager() { + var audioRoutingManager = await audio.getAudioManager().getRoutingManager(); + console.info('audioRoutingManager------create-------success.'); + } + + ``` + +2. (可选)获取设备列表信息、监听设备链接状态变化。 + + 如果开发者需要获取设备列表信息(输入、输出、分布式输入、分布式输出等),或者监听音频设备的链接状态变化时,可参考并调用以下接口。 + + ```js + import audio from '@ohos.multimedia.audio'; + //创建AudioRoutingManager实例 + async loadAudioRoutingManager() { + var audioRoutingManager = await audio.getAudioManager().getRoutingManager(); + console.info('audioRoutingManager------create-------success.'); + } + //获取全部音频设备信息(开发者可以根据自身需要填入适当的DeviceFlag) + async getDevices() { + await loadAudioRoutingManager(); + await audioRoutingManager.getDevices(audio.DeviceFlag.ALL_DEVICES_FLAG).then((data) => { + console.info(`getDevices success and data is: ${JSON.stringify(data)}.`); + }); + } + //监听音频设备状态变化 + async onDeviceChange() { + await loadAudioRoutingManager(); + await audioRoutingManager.on('deviceChange', audio.DeviceFlag.ALL_DEVICES_FLAG, (deviceChanged) => { + console.info('on device change type : ' + deviceChanged.type); + console.info('on device descriptor size : ' + deviceChanged.deviceDescriptors.length); + console.info('on device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); + console.info('on device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); + }); + } + //取消监听音频设备状态变化 + async offDeviceChange() { + await loadAudioRoutingManager(); + await audioRoutingManager.off('deviceChange', (deviceChanged) => { + console.info('off device change type : ' + deviceChanged.type); + console.info('off device descriptor size : ' + deviceChanged.deviceDescriptors.length); + console.info('off device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); + console.info('off device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); + }); + } + //综合调用:先查询所有设备,设置监听,然后开发者手动变更设备连接(例如有线耳机),再次查询所有设备,最后取消设备状态变化的监听。 + async test(){ + await getDevices(); + await onDeviceChange()(); + //开发者手动断开/连接设备 + await getDevices(); + await offDeviceChange(); + } + ``` + +3. (可选)设置通信设备激活并查询激活状态。 + + ```js + import audio from '@ohos.multimedia.audio'; + //创建AudioRoutingManager实例 + async loadAudioRoutingManager() { + var audioRoutingManager = await audio.getAudioManager().getRoutingManager(); + console.info('audioRoutingManager------create-------success.'); + } + //设置通信设备激活状态 + async setCommunicationDevice() { + await loadAudioRoutingManager(); + await audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => { + console.info('setCommunicationDevice true is success.'); + }); + } + //查询通信设备激活状态 + async isCommunicationDeviceActive() { + await loadAudioRoutingManager(); + await audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => { + console.info(`CommunicationDevice state is: ${value}.`); + }); + } + //综合调用:先设置设备激活,然后查询设备状态。 + async test(){ + await setCommunicationDevice(); + await isCommunicationDeviceActive(); + } + ``` + diff --git a/zh-cn/application-dev/media/figures/zh-ch_image_audio_routing_manager.png b/zh-cn/application-dev/media/figures/zh-ch_image_audio_routing_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..710679f6cac0c30d06dffa97b0e80b3cebe80f79 GIT binary patch literal 48521 zcmeFZbyQr-vp+fn*Wey(26vYL!QBQJT!QOBa0`&&?m9?XL@#3?dt04Pp_`(-oKZAe+J;IC@3ockdOcXq{kQF z_bNd4vGhMX{t)s%lkmv>`xAfw11S^f5E+R9@Pq&fnE>f`KY->@$tTGFCLHkZ2L>h@ zIuyr2Y04g#P3OXw0W1XHnK?VR&P|?tzAY&j=7-TJB5|iucXD$+wkd`eF z5DAI+__nmolhHHs0+~fUTOawU|KR#V{(ngSgZ~LK8WK9j<5eXB021;OBvf1!baa$| zqe4b{f&xG#KqDm4O(h~Gr3Y*4SR|()X1}t@N5bn>7`j{S6SDHGOfX?)e)q@%ULsE4AKNO5evn z6%~;g3_z!IZeFGNwo8{~%QJ3I(i_k#ogVKmI7zf5CvOF-s=wO;jxkI{m zCsEBW_j5dfD6JeJV155ok3Bi@o~vgKB7U1=haUftvyl6}tV7Ey-_@%XhI7ZXeK0j1k^K{1kq!Rj1R{7_!k=qHjlo&RUAD4J~p(tZIg&0vb6m*AqGOFp> zpYC2u++aif%yvf}Bcv-7&&GyIxpkJ)K-hm7*&7P>KFuK5G2oMYd1uf<{f_60WznkL zTUa@mXI!sxK+au6&MH}l_}+jEPhM`#X;53yU0^Zx(^~tc{GzDuPcn9sm?$q@U3a#Z zZSG|xn*Xv_k;HSTg0HCu^i%f8(0fnQsG@JvGrHzln&;UeV74@wciyc!ko3Br-@k@e z2bM&cAr?0R&(5IBg?po3#Eh`4o@5uIGZB9SHLv#6sKYWpj8UrQ^3s

H6wBtTr_2 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 X