From b6828d12982d891f40e314ed6d60b9a2d18719b2 Mon Sep 17 00:00:00 2001 From: wangtao Date: Wed, 24 Aug 2022 19:21:34 +0800 Subject: [PATCH] add docs for distributed audio getDevice... Signed-off-by: wangtao --- .../reference/apis/js-apis-audio.md | 152 +++++++++++++++++- 1 file changed, 151 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-audio.md b/zh-cn/application-dev/reference/apis/js-apis-audio.md index c3eee8fc7f..284399b2e6 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-audio.md +++ b/zh-cn/application-dev/reference/apis/js-apis-audio.md @@ -300,9 +300,13 @@ const localNetworkId = audio.LOCAL_NETWORK_ID; | 名称 | 默认值 | 描述 | | ------------------- | ------ | ---------- | +| NONE_DEVICES_FLAG9+ | 0 | 无 | | OUTPUT_DEVICES_FLAG | 1 | 输出设备。 | | INPUT_DEVICES_FLAG | 2 | 输入设备。 | | ALL_DEVICES_FLAG | 3 | 所有设备。 | +| DISTRIBUTED_OUTPUT_DEVICES_FLAG9+ | 4 | 分布式输出设备。 | +| DISTRIBUTED_INPUT_DEVICES_FLAG9+ | 8 | 分布式输入设备。 | +| ALL_DISTRIBUTED_DEVICES_FLAG9+ | 12 | 分布式输入和输出设备。 | ## DeviceRole @@ -2052,6 +2056,12 @@ getVolumeGroups(networkId: string\): Promise | ---------- | ------------------------------------------------------------ | ---- | -------------------- | | networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID ,也可以通过getRoutingManager().getDevices()获取全部networkId。 | +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise<[VolumeGroupInfos](#volumegroupinfos9)> | 音量组信息列表。 | + **示例:** ```js @@ -2076,7 +2086,7 @@ getGroupManager(groupId: number, callback: AsyncCallback\): | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------------------------------------------------------------ | ---- | -------------------- | | networkId | string | 是 | 设备的网络id。 | -| callback | AsyncCallback< [AudioGroupManager](#audiogroupmanager9) > | 是 | 回调,返回一个音量组音量组实例。 | +| callback | AsyncCallback< [AudioGroupManager](#audiogroupmanager9) > | 是 | 回调,返回一个音量组实例。 | **示例:** @@ -2113,6 +2123,12 @@ getGroupManager(groupId: number\): Promise | ---------- | ------------------------------------------------------------ | ---- | -------------------- | | networkId | string | 是 | 设备的网络id。 | +**返回值:** + +| 类型 | 说明 | +| ------------------- | ----------------------------- | +| Promise< [AudioGroupManager](#audiogroupmanager9) > | 音量组实例。 | + **示例:** ```js @@ -2859,6 +2875,140 @@ console.info(`isAudioRendererLowLatencySupported success var ${result}`); 音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。 +### getDevices9+ + +getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void + +获取音频设备列表,使用callback方式异步返回结果。 + +**系统能力:** SystemCapability.Multimedia.Audio.Device + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------------------------------------------------------------ | ---- | -------------------- | +| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | +| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调,返回设备列表。 | + +**示例:** + +```js +audioManager.getRoutingManager((err,AudioRoutingManager)=>{ + if (err) { + console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err.message}`); + } + else { + AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => { + if (err) { + console.error(`Failed to obtain the device list. ${err.message}`); + return; + } + console.log(`Callback invoked to indicate that the device list is obtained.`); + }); + } +}) +``` + +### getDevices9+ + +getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> + +获取音频设备列表,使用Promise方式异步返回结果。 + +**系统能力:** SystemCapability.Multimedia.Audio.Device + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ---------- | ------------------------- | ---- | ---------------- | +| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------------------------ | ------------------------- | +| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise回调返回设备列表。 | + +**示例:** + +```js +audioManager.getRoutingManager((err,AudioRoutingManager)=>{ + if (err) { + console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err.message}`); + } + else { + AudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => { + console.log(`Promise returned to indicate that the device list is obtained.`); + }); + } +}); +``` + +### on9+ + +on(type: 'deviceChange', deviceFlag: DeviceFlag,, callback: Callback): void + +设备更改。音频设备连接状态变化。 + +**系统能力:** SystemCapability.Multimedia.Audio.Device + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | +| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | +| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | +| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是 | 获取设备更新详情。 | + +**示例:** + +```js +audioManager.getRoutingManager((err,AudioRoutingManager)=>{ + if (err) { + console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err.message}`); + } + else { + AudioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => { + console.info('device change type : ' + deviceChanged.type); + 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); + }); + } +}); +``` + +### off9+ + +off(type: 'deviceChange', callback?: Callback): void + +取消订阅音频设备连接变化事件。 + +**系统能力:** SystemCapability.Multimedia.Audio.Device + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | +| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | +| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | +| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 获取设备更新详情。 | + +**示例:** + +```js +audioManager.getRoutingManager((err,AudioRoutingManager)=>{ + if (err) { + console.error(`AudioFrameworkTest:Callback:failed to get RoutingManager ${err.message}`); + } + else { + AudioRoutingManager.off('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => { + console.log('Should be no callback.'); + }); + } +}); +``` + ### selectOutputDevice9+ selectOutputDevice(audiodevicedescriptors: AudioDeviceDescriptors, callback: AsyncCallback<void>): void -- GitLab