• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (AudioVolumeGroupManager)
2<!--Kit: Audio Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @songshenke-->
5<!--Designer: @caixuejiang; @hao-liangfei; @zhanganxiang-->
6<!--Tester: @Filger-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12> - 本Interface首批接口从API version 9开始支持。
13
14管理音频组音量。
15
16在使用AudioVolumeGroupManager的接口之前,需先通过[getVolumeGroupManager](arkts-apis-audio-AudioVolumeManager.md#getvolumegroupmanager9)获取AudioVolumeGroupManager实例。
17
18## 导入模块
19
20```ts
21import { audio } from '@kit.AudioKit';
22```
23
24## getVolume<sup>(deprecated)</sup>
25
26getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
27
28获取指定流的音量。使用callback异步回调。
29
30> **说明:**
31> 从API version 9开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。
32
33**系统能力:** SystemCapability.Multimedia.Audio.Volume
34
35**参数:**
36
37| 参数名     | 类型                                | 必填 | 说明               |
38| ---------- | ----------------------------------- | ---- | ------------------ |
39| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。       |
40| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 |
41
42**示例:**
43
44```ts
45import { BusinessError } from '@kit.BasicServicesKit';
46
47audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
48  if (err) {
49    console.error(`Failed to obtain the volume. ${err}`);
50    return;
51  }
52  console.info('Callback invoked to indicate that the volume is obtained.');
53});
54```
55
56## getVolume<sup>(deprecated)</sup>
57
58getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
59
60获取指定流的音量。使用Promise异步回调。
61
62> **说明:**
63> 从API version 9开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。
64
65**系统能力:** SystemCapability.Multimedia.Audio.Volume
66
67**参数:**
68
69| 参数名     | 类型                                | 必填 | 说明         |
70| ---------- | ----------------------------------- | ---- | ------------ |
71| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
72
73**返回值:**
74
75| 类型                  | 说明                      |
76| --------------------- | ------------------------- |
77| Promise&lt;number&gt; | Promise对象,返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 |
78
79**示例:**
80
81```ts
82audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
83  console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
84});
85```
86
87## getVolumeSync<sup>(deprecated)</sup>
88
89getVolumeSync(volumeType: AudioVolumeType): number
90
91获取指定流的音量。同步返回结果。
92
93> **说明:**
94> 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumebystream20)替代。
95
96**系统能力:** SystemCapability.Multimedia.Audio.Volume
97
98**参数:**
99
100| 参数名     | 类型                                | 必填 | 说明         |
101| ---------- | ----------------------------------- | ---- | ------------ |
102| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
103
104**返回值:**
105
106| 类型                  | 说明                      |
107| --------------------- | ------------------------- |
108| number | 返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 |
109
110**错误码:**
111
112以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
113
114| 错误码ID | 错误信息 |
115| ------- | --------------------------------------------|
116| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
117| 6800101 | Parameter verification failed. |
118
119**示例:**
120
121```ts
122import { BusinessError } from '@kit.BasicServicesKit';
123
124try {
125  let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA);
126  console.info(`Indicate that the volume is obtained ${value}.`);
127} catch (err) {
128  let error = err as BusinessError;
129  console.error(`Failed to obtain the volume, error ${error}.`);
130}
131```
132
133## getMinVolume<sup>(deprecated)</sup>
134
135getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
136
137获取指定流的最小音量。使用callback异步回调。
138
139> **说明:**
140> 从API version 9开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。
141
142**系统能力:** SystemCapability.Multimedia.Audio.Volume
143
144**参数:**
145
146| 参数名     | 类型                                | 必填 | 说明               |
147| ---------- | ----------------------------------- | ---- | ------------------ |
148| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。       |
149| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。 |
150
151**示例:**
152
153```ts
154import { BusinessError } from '@kit.BasicServicesKit';
155
156audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
157  if (err) {
158    console.error(`Failed to obtain the minimum volume. ${err}`);
159    return;
160  }
161  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
162});
163```
164
165## getMinVolume<sup>(deprecated)</sup>
166
167getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
168
169获取指定流的最小音量。使用Promise异步回调。
170
171> **说明:**
172> 从API version 9开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。
173
174**系统能力:** SystemCapability.Multimedia.Audio.Volume
175
176**参数:**
177
178| 参数名     | 类型                                | 必填 | 说明         |
179| ---------- | ----------------------------------- | ---- | ------------ |
180| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
181
182**返回值:**
183
184| 类型                  | 说明                      |
185| --------------------- | ------------------------- |
186| Promise&lt;number&gt; | Promise对象,返回最小音量。 |
187
188**示例:**
189
190```ts
191audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
192  console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
193});
194```
195
196## getMinVolumeSync<sup>(deprecated)</sup>
197
198getMinVolumeSync(volumeType: AudioVolumeType): number
199
200获取指定流的最小音量。同步返回结果。
201
202> **说明:**
203> 从API version 10开始支持,从API version 20开始废弃,建议使用[getMinVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getminvolumebystream20)替代。
204
205**系统能力:** SystemCapability.Multimedia.Audio.Volume
206
207**参数:**
208
209| 参数名     | 类型                                | 必填 | 说明         |
210| ---------- | ----------------------------------- | ---- | ------------ |
211| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
212
213**返回值:**
214
215| 类型                  | 说明                      |
216| --------------------- | ------------------------- |
217| number | 返回最小音量。 |
218
219**错误码:**
220
221以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
222
223| 错误码ID | 错误信息 |
224| ------- | --------------------------------------------|
225| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
226| 6800101 | Parameter verification failed. |
227
228**示例:**
229
230```ts
231import { BusinessError } from '@kit.BasicServicesKit';
232
233try {
234  let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA);
235  console.info(`Indicate that the minimum volume is obtained ${value}.`);
236} catch (err) {
237  let error = err as BusinessError;
238  console.error(`Failed to obtain the minimum volume, error ${error}.`);
239}
240```
241
242## getMaxVolume<sup>(deprecated)</sup>
243
244getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
245
246获取指定流的最大音量。使用callback异步回调。
247
248> **说明:**
249> 从API version 9开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。
250
251**系统能力:** SystemCapability.Multimedia.Audio.Volume
252
253**参数:**
254
255| 参数名     | 类型                                | 必填 | 说明                   |
256| ---------- | ----------------------------------- | ---- | ---------------------- |
257| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。           |
258| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。 |
259
260**示例:**
261
262```ts
263import { BusinessError } from '@kit.BasicServicesKit';
264
265audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
266  if (err) {
267    console.error(`Failed to obtain the maximum volume. ${err}`);
268    return;
269  }
270  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
271});
272```
273
274## getMaxVolume<sup>(deprecated)</sup>
275
276getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
277
278获取指定流的最大音量。使用Promise异步回调。
279
280> **说明:**
281> 从API version 9开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。
282
283**系统能力:** SystemCapability.Multimedia.Audio.Volume
284
285**参数:**
286
287| 参数名     | 类型                                | 必填 | 说明         |
288| ---------- | ----------------------------------- | ---- | ------------ |
289| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
290
291**返回值:**
292
293| 类型                  | 说明                          |
294| --------------------- | ----------------------------- |
295| Promise&lt;number&gt; | Promise对象,返回最大音量大小。 |
296
297**示例:**
298
299```ts
300audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => {
301  console.info('Promised returned to indicate that the maximum volume is obtained.');
302});
303```
304
305## getMaxVolumeSync<sup>(deprecated)</sup>
306
307getMaxVolumeSync(volumeType: AudioVolumeType): number
308
309获取指定流的最大音量。同步返回结果。
310
311> **说明:**
312> 从API version 10开始支持,从API version 20开始废弃,建议使用[getMaxVolumeByStream](arkts-apis-audio-AudioVolumeManager.md#getmaxvolumebystream20)替代。
313
314**系统能力:** SystemCapability.Multimedia.Audio.Volume
315
316**参数:**
317
318| 参数名     | 类型                                | 必填 | 说明         |
319| ---------- | ----------------------------------- | ---- | ------------ |
320| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
321
322**返回值:**
323
324| 类型                  | 说明                          |
325| --------------------- | ----------------------------- |
326| number | 返回最大音量大小。 |
327
328**错误码:**
329
330以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
331
332| 错误码ID | 错误信息 |
333| ------- | --------------------------------------------|
334| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
335| 6800101 | Parameter verification failed. |
336
337**示例:**
338
339```ts
340import { BusinessError } from '@kit.BasicServicesKit';
341
342try {
343  let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA);
344  console.info(`Indicate that the maximum volume is obtained. ${value}`);
345} catch (err) {
346  let error = err as BusinessError;
347  console.error(`Failed to obtain the maximum volume, error ${error}.`);
348}
349```
350
351## isMute<sup>(deprecated)</sup>
352
353isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
354
355获取指定音量流静音状态。使用callback异步回调。
356
357> **说明:**
358> 从API version 9开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。
359
360**系统能力:** SystemCapability.Multimedia.Audio.Volume
361
362**参数:**
363
364| 参数名     | 类型                                | 必填 | 说明                                            |
365| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
366| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。                                    |
367| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调函数。当获取指定音量流静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。 |
368
369**示例:**
370
371```ts
372import { BusinessError } from '@kit.BasicServicesKit';
373
374audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
375  if (err) {
376    console.error(`Failed to obtain the mute status. ${err}`);
377    return;
378  }
379  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
380});
381```
382
383## isMute<sup>(deprecated)</sup>
384
385isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
386
387获取指定音量流是否被静音。使用Promise异步回调。
388
389> **说明:**
390> 从API version 9开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。
391
392**系统能力:** SystemCapability.Multimedia.Audio.Volume
393
394**参数:**
395
396| 参数名     | 类型                                | 必填 | 说明         |
397| ---------- | ----------------------------------- | ---- | ------------ |
398| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
399
400**返回值:**
401
402| 类型                   | 说明                                                   |
403| ---------------------- | ------------------------------------------------------ |
404| Promise&lt;boolean&gt; | Promise对象。返回true表示静音;返回false表示非静音。 |
405
406**示例:**
407
408```ts
409audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
410  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
411});
412```
413
414## isMuteSync<sup>(deprecated)</sup>
415
416isMuteSync(volumeType: AudioVolumeType): boolean
417
418获取指定音量流是否被静音。同步返回结果。
419
420> **说明:**
421> 从API version 10开始支持,从API version 20开始废弃,建议使用[isSystemMutedForStream](arkts-apis-audio-AudioVolumeManager.md#issystemmutedforstream20)替代。
422
423**系统能力:** SystemCapability.Multimedia.Audio.Volume
424
425**参数:**
426
427| 参数名     | 类型                                | 必填 | 说明         |
428| ---------- | ----------------------------------- | ---- | ------------ |
429| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。 |
430
431**返回值:**
432
433| 类型                   | 说明                                                   |
434| ---------------------- | ------------------------------------------------------ |
435| boolean | 流静音状态。返回true表示静音,返回false表示非静音。 |
436
437**错误码:**
438
439以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
440
441| 错误码ID | 错误信息 |
442| ------- | --------------------------------------------|
443| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
444| 6800101 | Parameter verification failed. |
445
446**示例:**
447
448```ts
449import { BusinessError } from '@kit.BasicServicesKit';
450
451try {
452  let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA);
453  console.info(`Indicate that the mute status of the stream is obtained ${value}.`);
454} catch (err) {
455  let error = err as BusinessError;
456  console.error(`Failed to obtain the mute status of the stream, error ${error}.`);
457}
458```
459
460## getRingerMode<sup>9+</sup>
461
462getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
463
464获取铃声模式。使用callback异步回调。
465
466**系统能力:** SystemCapability.Multimedia.Audio.Volume
467
468**参数:**
469
470| 参数名   | 类型                                                 | 必填 | 说明                     |
471| -------- | ---------------------------------------------------- | ---- | ------------------------ |
472| callback | AsyncCallback&lt;[AudioRingMode](arkts-apis-audio-e.md#audioringmode)&gt; | 是   | 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。 |
473
474**示例:**
475
476```ts
477import { BusinessError } from '@kit.BasicServicesKit';
478
479audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
480  if (err) {
481    console.error(`Failed to obtain the ringer mode. ${err}`);
482    return;
483  }
484  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
485});
486```
487
488## getRingerMode<sup>9+</sup>
489
490getRingerMode(): Promise&lt;AudioRingMode&gt;
491
492获取铃声模式。使用Promise异步回调。
493
494**系统能力:** SystemCapability.Multimedia.Audio.Volume
495
496**返回值:**
497
498| 类型                                           | 说明                            |
499| ---------------------------------------------- | ------------------------------- |
500| Promise&lt;[AudioRingMode](arkts-apis-audio-e.md#audioringmode)&gt; | Promise对象,返回系统的铃声模式。 |
501
502**示例:**
503
504```ts
505import { BusinessError } from '@kit.BasicServicesKit';
506
507audioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => {
508  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
509}).catch((err: BusinessError) => {
510  console.error(`Failed to getRingerMode. Code: ${err.code}, message: ${err.message}`);
511});
512```
513
514## getRingerModeSync<sup>10+</sup>
515
516getRingerModeSync(): AudioRingMode
517
518获取铃声模式。同步返回结果。
519
520**系统能力:** SystemCapability.Multimedia.Audio.Volume
521
522**返回值:**
523
524| 类型                                           | 说明                            |
525| ---------------------------------------------- | ------------------------------- |
526| [AudioRingMode](arkts-apis-audio-e.md#audioringmode) | 返回系统的铃声模式。 |
527
528**示例:**
529
530```ts
531import { BusinessError } from '@kit.BasicServicesKit';
532
533try {
534  let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync();
535  console.info(`Indicate that the ringer mode is obtained ${value}.`);
536} catch (err) {
537  let error = err as BusinessError;
538  console.error(`Failed to obtain the ringer mode, error ${error}.`);
539}
540```
541
542## on('ringerModeChange')<sup>9+</sup>
543
544on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
545
546监听铃声模式变化事件(当[铃声模式](arkts-apis-audio-e.md#audioringmode)发生变化时触发)。使用callback异步回调。
547
548**系统能力:** SystemCapability.Multimedia.Audio.Volume
549
550**参数:**
551
552| 参数名   | 类型                                      | 必填 | 说明                                                         |
553| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
554| type     | string                                    | 是   | 事件回调类型,支持的事件为'ringerModeChange',当铃声模式发生变化时,触发该事件。 |
555| callback | Callback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 是   | 回调函数,返回变化后的铃音模式。 |
556
557**错误码:**
558
559以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
560
561| 错误码ID | 错误信息 |
562| ------- | --------------------------------------------|
563| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
564| 6800101 | Parameter verification failed. |
565
566**示例:**
567
568```ts
569audioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => {
570  console.info(`Updated ringermode: ${ringerMode}`);
571});
572```
573
574## off('ringerModeChange')<sup>18+</sup>
575
576off(type: 'ringerModeChange', callback?: Callback&lt;AudioRingMode&gt;): void
577
578取消监听铃声模式变化事件。使用callback异步回调。
579
580**系统能力:** SystemCapability.Multimedia.Audio.Volume
581
582**参数:**
583
584| 参数名   | 类型                                   | 必填 | 说明                                                         |
585| -------- | -------------------------------------- |----| ------------------------------------------------------------ |
586| type     | string                                 | 是  | 事件回调类型,支持的事件为'ringerModeChange',当取消监听铃声模式变化事件时,触发该事件。 |
587| callback |Callback&lt;[AudioRingMode](arkts-apis-audio-e.md#audioringmode)&gt; | 否  | 回调函数,返回变化后的铃音模式。 |
588
589**错误码:**
590
591以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。
592
593| 错误码ID | 错误信息 |
594| ------- | --------------------------------------------|
595| 6800101 | Parameter verification failed. |
596
597**示例:**
598
599```ts
600// 取消该事件的所有监听。
601audioVolumeGroupManager.off('ringerModeChange');
602
603// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
604let ringerModeChangeCallback = (ringerMode: audio.AudioRingMode) => {
605  console.info(`Updated ringermode: ${ringerMode}`);
606};
607
608audioVolumeGroupManager.on('ringerModeChange', ringerModeChangeCallback);
609
610audioVolumeGroupManager.off('ringerModeChange', ringerModeChangeCallback);
611```
612
613## isMicrophoneMute<sup>9+</sup>
614
615isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
616
617获取麦克风静音状态。使用callback异步回调。
618
619**系统能力:** SystemCapability.Multimedia.Audio.Volume
620
621**参数:**
622
623| 参数名   | 类型                         | 必填 | 说明                                                    |
624| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
625| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。当获取麦克风静音状态成功,err为undefined,data为true表示静音,false表示非静音;否则为错误对象。 |
626
627**示例:**
628
629```ts
630import { BusinessError } from '@kit.BasicServicesKit';
631
632audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
633  if (err) {
634    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
635    return;
636  }
637  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
638});
639```
640
641## isMicrophoneMute<sup>9+</sup>
642
643isMicrophoneMute(): Promise&lt;boolean&gt;
644
645获取麦克风静音状态。使用Promise异步回调。
646
647**系统能力:** SystemCapability.Multimedia.Audio.Volume
648
649**返回值:**
650
651| 类型                   | 说明                                                         |
652| ---------------------- | ------------------------------------------------------------ |
653| Promise&lt;boolean&gt; | Promise对象。返回true表示麦克风被静音;返回false表示麦克风未被静音。 |
654
655**示例:**
656
657```ts
658import { BusinessError } from '@kit.BasicServicesKit';
659
660audioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => {
661  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
662}).catch((err: BusinessError) => {
663  console.error(`Failed to isMicrophoneMute. Code: ${err.code}, message: ${err.message}`);
664});
665```
666
667## isMicrophoneMuteSync<sup>10+</sup>
668
669isMicrophoneMuteSync(): boolean
670
671获取麦克风静音状态。同步返回结果。
672
673**系统能力:** SystemCapability.Multimedia.Audio.Volume
674
675**返回值:**
676
677| 类型                   | 说明                                                         |
678| ---------------------- | ------------------------------------------------------------ |
679| boolean | 系统麦克风静音状态。返回true表示静音,返回false表示非静音。 |
680
681**示例:**
682
683```ts
684import { BusinessError } from '@kit.BasicServicesKit';
685
686try {
687  let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync();
688  console.info(`Indicate that the mute status of the microphone is obtained ${value}.`);
689} catch (err) {
690  let error = err as BusinessError;
691  console.error(`Failed to obtain the mute status of the microphone, error ${error}.`);
692}
693```
694
695## on('micStateChange')<sup>9+</sup>
696
697on(type: 'micStateChange', callback: Callback&lt;MicStateChangeEvent&gt;): void
698
699监听系统麦克风状态更改事件(当检测到系统麦克风状态发生改变时触发)。使用callback异步回调。
700
701目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅。因此,推荐使用单一AudioManager实例进行开发。
702
703**系统能力:** SystemCapability.Multimedia.Audio.Volume
704
705**参数:**
706
707| 参数名   | 类型                                   | 必填 | 说明                                                         |
708| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
709| type     | string                                 | 是   | 事件回调类型,支持的事件为'micStateChange',当检测到系统麦克风状态发生改变时,触发该事件。 |
710| callback | Callback<[MicStateChangeEvent](arkts-apis-audio-i.md#micstatechangeevent9)> | 是   | 回调函数,返回变更后的麦克风状态。 |
711
712**错误码:**
713
714以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
715
716| 错误码ID | 错误信息 |
717| ------- | --------------------------------------------|
718| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
719| 6800101 | Parameter verification failed. |
720
721**示例:**
722
723```ts
724audioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => {
725  console.info(`Current microphone status is: ${micStateChange.mute} `);
726});
727```
728
729## off('micStateChange')<sup>12+</sup>
730
731off(type: 'micStateChange', callback?: Callback&lt;MicStateChangeEvent&gt;): void
732
733取消监听系统麦克风状态更改事件。使用callback异步回调。
734
735**系统能力:** SystemCapability.Multimedia.Audio.Volume
736
737**参数:**
738
739| 参数名   | 类型                                   | 必填 | 说明                                                         |
740| -------- | -------------------------------------- |----| ------------------------------------------------------------ |
741| type     | string                                 | 是  | 事件回调类型,支持的事件为'micStateChange',当取消监听系统麦克风状态更改事件时,触发该事件。 |
742| callback | Callback<[MicStateChangeEvent](arkts-apis-audio-i.md#micstatechangeevent9)> | 否  | 回调函数,返回变更后的麦克风状态。 |
743
744**错误码:**
745
746以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
747
748| 错误码ID | 错误信息 |
749| ------- | --------------------------------------------|
750| 401 | Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types. |
751| 6800101 | Parameter verification failed. |
752
753**示例:**
754
755```ts
756// 取消该事件的所有监听。
757audioVolumeGroupManager.off('micStateChange');
758
759// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。
760let micStateChangeCallback = (micStateChange: audio.MicStateChangeEvent) => {
761  console.info(`Current microphone status is: ${micStateChange.mute} `);
762};
763
764audioVolumeGroupManager.on('micStateChange', micStateChangeCallback);
765
766audioVolumeGroupManager.off('micStateChange', micStateChangeCallback);
767```
768
769## isVolumeUnadjustable<sup>10+</sup>
770
771isVolumeUnadjustable(): boolean
772
773获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节。同步返回结果。
774
775**系统能力:** SystemCapability.Multimedia.Audio.Volume
776
777**返回值:**
778
779| 类型                   | 说明                                                   |
780| ---------------------- | ------------------------------------------------------ |
781| boolean            | 固定音量模式开关状态。返回true表示固定音量模式,返回false表示非固定音量模式。 |
782
783**示例:**
784
785```ts
786let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable();
787console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`);
788```
789
790## getSystemVolumeInDb<sup>(deprecated)</sup>
791
792getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback&lt;number&gt;): void
793
794获取音量增益dB值。使用callback异步回调。
795
796> **说明:**
797> 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。
798
799**系统能力:** SystemCapability.Multimedia.Audio.Volume
800
801**参数:**
802
803| 参数名     | 类型                                | 必填 | 说明                                                     |
804| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
805| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。                                             |
806| volumeLevel | number                         | 是   | 音量等级。                                               |
807| device     | [DeviceType](arkts-apis-audio-e.md#devicetype)           | 是   | 设备类型。                                               |
808| callback   | AsyncCallback&lt;number&gt;           | 是   | 回调函数。当获取音量增益dB值成功,err为undefined,data为获取到的音量增益dB值;否则为错误对象。 |
809
810**错误码:**
811
812以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
813
814| 错误码ID | 错误信息 |
815| ------- | --------------------------------------------|
816| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
817| 6800101 | Parameter verification failed. Return by callback.                     |
818| 6800301 | System error. Return by callback.                                |
819
820**示例:**
821
822```ts
823import { BusinessError } from '@kit.BasicServicesKit';
824
825audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => {
826  if (err) {
827    console.error(`Failed to get the volume DB. ${err}`);
828  } else {
829    console.info(`Success to get the volume DB. ${dB}`);
830  }
831});
832```
833
834## getSystemVolumeInDb<sup>(deprecated)</sup>
835
836getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise&lt;number&gt;
837
838获取音量增益dB值。使用Promise异步回调。
839
840> **说明:**
841> 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。
842
843**系统能力:** SystemCapability.Multimedia.Audio.Volume
844
845**参数:**
846
847| 参数名     | 类型                                | 必填 | 说明                                                     |
848| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
849| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。                                             |
850| volumeLevel | number                              | 是   | 音量等级。                                             |
851| device     | [DeviceType](arkts-apis-audio-e.md#devicetype)           | 是   | 设备类型。                                               |
852
853**返回值:**
854
855| 类型                  | 说明                               |
856| --------------------- | ---------------------------------- |
857| Promise&lt;number&gt; | Promise对象,返回对应的音量增益dB值。 |
858
859**错误码:**
860
861以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
862
863| 错误码ID | 错误信息 |
864| ------- | --------------------------------------------|
865| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
866| 6800101 | Parameter verification failed. Return by promise.                     |
867| 6800301 | System error. Return by promise.                                |
868
869**示例:**
870
871```ts
872import { BusinessError } from '@kit.BasicServicesKit';
873
874audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => {
875  console.info(`Success to get the volume DB. ${value}`);
876}).catch((error: BusinessError) => {
877  console.error(`Fail to adjust the system volume by step. ${error}`);
878});
879```
880
881## getSystemVolumeInDbSync<sup>(deprecated)</sup>
882
883getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number
884
885获取音量增益dB值。同步返回结果。
886
887> **说明:**
888> 从API version 10开始支持,从API version 20开始废弃,建议使用[getVolumeInUnitOfDbByStream](arkts-apis-audio-AudioVolumeManager.md#getvolumeinunitofdbbystream20)替代。
889
890**系统能力:** SystemCapability.Multimedia.Audio.Volume
891
892**参数:**
893
894| 参数名     | 类型                                | 必填 | 说明                                                     |
895| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
896| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是   | 音量流类型。                                             |
897| volumeLevel | number                              | 是   | 音量等级。                                             |
898| device     | [DeviceType](arkts-apis-audio-e.md#devicetype)           | 是   | 设备类型。                                               |
899
900**返回值:**
901
902| 类型                  | 说明                               |
903| --------------------- | ---------------------------------- |
904| number | 返回对应的音量增益dB值。 |
905
906**错误码:**
907
908以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
909
910| 错误码ID | 错误信息 |
911| ------- | --------------------------------------------|
912| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
913| 6800101 | Parameter verification failed. |
914
915**示例:**
916
917```ts
918import { BusinessError } from '@kit.BasicServicesKit';
919
920try {
921  let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER);
922  console.info(`Success to get the volume DB. ${value}`);
923} catch (err) {
924  let error = err as BusinessError;
925  console.error(`Fail to adjust the system volume by step. ${error}`);
926}
927```
928
929## getMaxAmplitudeForInputDevice<sup>12+</sup>
930
931getMaxAmplitudeForInputDevice(inputDevice: AudioDeviceDescriptor): Promise&lt;number&gt;
932
933获取输入设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。
934
935**系统能力:** SystemCapability.Multimedia.Audio.Volume
936
937**参数:**
938
939| 参数名     | 类型                                | 必填 | 说明                                                     |
940| ----------- | ------------------------------------- | ---- | --------------------------------------------------- |
941| inputDevice |[AudioDeviceDescriptor](arkts-apis-audio-i.md#audiodevicedescriptor) | 是   | 获取最大电平值的设备信息。                                 |
942
943**返回值:**
944
945| 类型                  | 说明                               |
946| --------------------- | ---------------------------------- |
947| Promise&lt;number&gt; | Promise对象,返回对应设备的电平值,大小在[0, 1]之间。 |
948
949**错误码:**
950
951以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
952
953| 错误码ID | 错误信息 |
954| ------- | --------------------------------------------|
955| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
956| 6800101 | Parameter verification failed. Return by promise. |
957| 6800301 | System error. Return by promise. |
958
959**示例:**
960
961```ts
962import { BusinessError } from '@kit.BasicServicesKit';
963
964let capturerInfo: audio.AudioCapturerInfo = {
965  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
966  capturerFlags: 0 // 音频采集器标志。
967};
968
969audio.getAudioManager().getRoutingManager().getPreferredInputDeviceForCapturerInfo(capturerInfo).then((data) => {
970  audioVolumeGroupManager.getMaxAmplitudeForInputDevice(data[0]).then((value) => {
971    console.info(`max amplitude is: ${value}`);
972  }).catch((err: BusinessError) => {
973    console.error(`getMaxAmplitudeForInputDevice error. Code: ${err.code}, message: ${err.message}`);
974  })
975}).catch((err: BusinessError) => {
976  console.error(`getPreferredInputDeviceForCapturerInfo error. Code: ${err.code}, message: ${err.message}`);
977})
978```
979
980## getMaxAmplitudeForOutputDevice<sup>12+</sup>
981
982getMaxAmplitudeForOutputDevice(outputDevice: AudioDeviceDescriptor): Promise&lt;number&gt;
983
984获取输出设备音频流的最大电平值,取值范围为[0, 1]。使用Promise异步回调。
985
986**系统能力:** SystemCapability.Multimedia.Audio.Volume
987
988**参数:**
989
990| 参数名     | 类型                                | 必填 | 说明                                                     |
991| ------------ | --------------------------------------- | ---- | -------------------------------------------------------- |
992| outputDevice |[AudioDeviceDescriptor](arkts-apis-audio-i.md#audiodevicedescriptor) | 是   | 获取最大电平值的设备信息。                                             |
993
994**返回值:**
995
996| 类型                  | 说明                               |
997| --------------------- | ---------------------------------- |
998| Promise&lt;number&gt; | Promise对象,返回对应设备的电平值,大小在[0, 1]之间。 |
999
1000**错误码:**
1001
1002以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
1003
1004| 错误码ID | 错误信息 |
1005| ------- | --------------------------------------------|
1006| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
1007| 6800101 | Parameter verification failed. Return by promise. |
1008| 6800301 | System error. Return by promise. |
1009
1010**示例:**
1011
1012```ts
1013import { BusinessError } from '@kit.BasicServicesKit';
1014
1015let rendererInfo: audio.AudioRendererInfo = {
1016  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
1017  rendererFlags: 0 // 音频渲染器标志。
1018};
1019
1020audio.getAudioManager().getRoutingManager().getPreferOutputDeviceForRendererInfo(rendererInfo).then((data) => {
1021  audioVolumeGroupManager.getMaxAmplitudeForOutputDevice(data[0]).then((value) => {
1022    console.info(`max amplitude is: ${value}`);
1023  }).catch((err: BusinessError) => {
1024    console.error(`getMaxAmplitudeForOutputDevice error. Code: ${err.code}, message: ${err.message}`);
1025  })
1026}).catch((err: BusinessError) => {
1027  console.error(`getPreferOutputDeviceForRendererInfo error. Code: ${err.code}, message: ${err.message}`);
1028})
1029```
1030## setMicrophoneMute<sup>(deprecated)</sup>
1031
1032setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1033
1034设置麦克风静音状态。使用callback异步回调。
1035
1036> **说明:**
1037>
1038> 从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。
1039
1040**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。
1041
1042**系统能力:** SystemCapability.Multimedia.Audio.Volume
1043
1044**参数:**
1045
1046| 参数名   | 类型                      | 必填 | 说明                                          |
1047| -------- | ------------------------- | ---- | --------------------------------------------- |
1048| mute     | boolean                   | 是   | 是否设置麦克风为静音状态。true表示静音,false表示非静音。 |
1049| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。 |
1050
1051**示例:**
1052
1053```ts
1054import { BusinessError } from '@kit.BasicServicesKit';
1055
1056audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => {
1057  if (err) {
1058    console.error(`Failed to mute the microphone. ${err}`);
1059    return;
1060  }
1061  console.info('Callback invoked to indicate that the microphone is muted.');
1062});
1063```
1064
1065## setMicrophoneMute<sup>(deprecated)</sup>
1066
1067setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
1068
1069设置麦克风静音状态。使用Promise异步回调。
1070
1071> **说明:**
1072>
1073> 从API version 9开始支持,从API version 11开始废弃,替代接口仅面向系统应用开放。
1074
1075**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。
1076
1077**系统能力:** SystemCapability.Multimedia.Audio.Volume
1078
1079**参数:**
1080
1081| 参数名 | 类型    | 必填 | 说明                                          |
1082| ------ | ------- | ---- | --------------------------------------------- |
1083| mute   | boolean | 是   | 是否设置麦克风为静音状态。true表示静音,false表示非静音。 |
1084
1085**返回值:**
1086
1087| 类型                | 说明                            |
1088| ------------------- | ------------------------------- |
1089| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
1090
1091**示例:**
1092
1093```ts
1094audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
1095  console.info('Promise returned to indicate that the microphone is muted.');
1096});
1097```
1098