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<number>): 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<number> | 是 | 回调函数。当获取指定流的音量成功,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<number> 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<number> | 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<number>): 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<number> | 是 | 回调函数。当获取指定流的最小音量成功,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<number> 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<number> | 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<number>): 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<number> | 是 | 回调函数。当获取指定流的最大音量成功,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<number> 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<number> | 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<boolean>): 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<boolean> | 是 | 回调函数。当获取指定音量流静音状态成功,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<boolean> 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<boolean> | 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<AudioRingMode>): void 463 464获取铃声模式。使用callback异步回调。 465 466**系统能力:** SystemCapability.Multimedia.Audio.Volume 467 468**参数:** 469 470| 参数名 | 类型 | 必填 | 说明 | 471| -------- | ---------------------------------------------------- | ---- | ------------------------ | 472| callback | AsyncCallback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 是 | 回调函数。当获取铃声模式成功,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<AudioRingMode> 491 492获取铃声模式。使用Promise异步回调。 493 494**系统能力:** SystemCapability.Multimedia.Audio.Volume 495 496**返回值:** 497 498| 类型 | 说明 | 499| ---------------------------------------------- | ------------------------------- | 500| Promise<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 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<AudioRingMode>): void 577 578取消监听铃声模式变化事件。使用callback异步回调。 579 580**系统能力:** SystemCapability.Multimedia.Audio.Volume 581 582**参数:** 583 584| 参数名 | 类型 | 必填 | 说明 | 585| -------- | -------------------------------------- |----| ------------------------------------------------------------ | 586| type | string | 是 | 事件回调类型,支持的事件为'ringerModeChange',当取消监听铃声模式变化事件时,触发该事件。 | 587| callback |Callback<[AudioRingMode](arkts-apis-audio-e.md#audioringmode)> | 否 | 回调函数,返回变化后的铃音模式。 | 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<boolean>): void 616 617获取麦克风静音状态。使用callback异步回调。 618 619**系统能力:** SystemCapability.Multimedia.Audio.Volume 620 621**参数:** 622 623| 参数名 | 类型 | 必填 | 说明 | 624| -------- | ---------------------------- | ---- | ------------------------------------------------------- | 625| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取麦克风静音状态成功,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<boolean> 644 645获取麦克风静音状态。使用Promise异步回调。 646 647**系统能力:** SystemCapability.Multimedia.Audio.Volume 648 649**返回值:** 650 651| 类型 | 说明 | 652| ---------------------- | ------------------------------------------------------------ | 653| Promise<boolean> | 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<MicStateChangeEvent>): 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<MicStateChangeEvent>): 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<number>): 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<number> | 是 | 回调函数。当获取音量增益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<number> 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<number> | 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<number> 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<number> | 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<number> 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<number> | 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<void>): 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<void> | 是 | 回调函数。当设置麦克风静音状态成功,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<void> 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<void> | 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