1# Interface (AudioStreamManager) 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在使用AudioStreamManager的接口之前,需先通过[getStreamManager](arkts-apis-audio-AudioManager.md#getstreammanager9)获取AudioStreamManager实例。 17 18## 导入模块 19 20```ts 21import { audio } from '@kit.AudioKit'; 22``` 23 24## getCurrentAudioRendererInfoArray<sup>9+</sup> 25 26getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void 27 28获取当前音频渲染器的信息。使用callback异步回调。 29 30**系统能力**: SystemCapability.Multimedia.Audio.Renderer 31 32**参数:** 33 34| 参数名 | 类型 | 必填 | 说明 | 35| -------- | ----------------------------------- | -------- | --------------------------- | 36| callback | AsyncCallback<[AudioRendererChangeInfoArray](arkts-apis-audio-t.md#audiorendererchangeinfoarray9)> | 是 | 回调函数。当获取当前音频渲染器的信息成功,err为undefined,data为获取到的当前音频渲染器的信息;否则为错误对象。 | 37 38**示例:** 39 40```ts 41import { BusinessError } from '@kit.BasicServicesKit'; 42 43audioStreamManager.getCurrentAudioRendererInfoArray((err: BusinessError, audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 44 if (err) { 45 console.error(`Failed to get current audio renderer info array. Code: ${err.code}, message: ${err.message}`); 46 } else { 47 console.info(`Succeeded in getting current audio renderer info array, AudioRendererChangeInfoArray: ${JSON.stringify(audioRendererChangeInfoArray)}.`); 48 } 49}); 50``` 51 52## getCurrentAudioRendererInfoArray<sup>9+</sup> 53 54getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray> 55 56获取当前音频渲染器的信息。使用Promise异步回调。 57 58**系统能力:** SystemCapability.Multimedia.Audio.Renderer 59 60**返回值:** 61 62| 类型 | 说明 | 63| ---------------------------------------------------------------------------------| --------------------------------------- | 64| Promise<[AudioRendererChangeInfoArray](arkts-apis-audio-t.md#audiorendererchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | 65 66**示例:** 67 68```ts 69import { BusinessError } from '@kit.BasicServicesKit'; 70 71audioStreamManager.getCurrentAudioRendererInfoArray().then((audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 72 console.info(`Succeeded in getting current audio renderer info array, AudioRendererChangeInfoArray: ${JSON.stringify(audioRendererChangeInfoArray)}.`); 73}).catch((err: BusinessError) => { 74 console.error(`Failed to get current audio renderer info array. Code: ${err.code}, message: ${err.message}`); 75}); 76``` 77## getCurrentAudioRendererInfoArraySync<sup>10+</sup> 78 79getCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray 80 81获取当前音频渲染器的信息。同步返回结果。 82 83**系统能力:** SystemCapability.Multimedia.Audio.Renderer 84 85**返回值:** 86 87| 类型 | 说明 | 88| ---------------------------------------------------------------------------------| --------------------------------------- | 89| [AudioRendererChangeInfoArray](arkts-apis-audio-t.md#audiorendererchangeinfoarray9) | 返回当前音频渲染器信息。 | 90 91**示例:** 92 93```ts 94import { BusinessError } from '@kit.BasicServicesKit'; 95 96try { 97 let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync(); 98 console.info(`Succeeded in getting current audio renderer info array, AudioRendererChangeInfoArray: ${JSON.stringify(audioRendererChangeInfoArray)}.`); 99} catch (err) { 100 let error = err as BusinessError; 101 console.error(`Failed to get current audio renderer info array. Code: ${error.code}, message: ${error.message}`); 102} 103``` 104 105## getCurrentAudioCapturerInfoArray<sup>9+</sup> 106 107getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void 108 109获取当前音频采集器的信息。使用callback异步回调。 110 111**系统能力:** SystemCapability.Multimedia.Audio.Renderer 112 113**参数:** 114 115| 参数名 | 类型 | 必填 | 说明 | 116| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- | 117| callback | AsyncCallback<[AudioCapturerChangeInfoArray](arkts-apis-audio-t.md#audiocapturerchangeinfoarray9)> | 是 | 回调函数。当获取当前音频采集器的信息成功,err为undefined,data为获取到的当前音频采集器的信息;否则为错误对象。 | 118 119**示例:** 120 121```ts 122import { BusinessError } from '@kit.BasicServicesKit'; 123 124audioStreamManager.getCurrentAudioCapturerInfoArray((err: BusinessError, audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 125 if (err) { 126 console.error(`Failed to get current audio capturer info array. Code: ${err.code}, message: ${err.message}`); 127 } else { 128 console.info(`Succeeded in getting current audio capturer info array, AudioCapturerChangeInfoArray: ${JSON.stringify(audioCapturerChangeInfoArray)}.`); 129 } 130}); 131``` 132 133## getCurrentAudioCapturerInfoArray<sup>9+</sup> 134 135getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray> 136 137获取当前音频采集器的信息。使用Promise异步回调。 138 139**系统能力:** SystemCapability.Multimedia.Audio.Renderer 140 141**返回值:** 142 143| 类型 | 说明 | 144| -----------------------------------------------------------------------------| ----------------------------------- | 145| Promise<[AudioCapturerChangeInfoArray](arkts-apis-audio-t.md#audiocapturerchangeinfoarray9)> | Promise对象,返回当前音频采集器信息。 | 146 147**示例:** 148 149```ts 150import { BusinessError } from '@kit.BasicServicesKit'; 151 152audioStreamManager.getCurrentAudioCapturerInfoArray().then((audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 153 console.info(`Succeeded in getting current audio capturer info array, AudioCapturerChangeInfoArray: ${JSON.stringify(audioCapturerChangeInfoArray)}.`); 154}).catch((err: BusinessError) => { 155 console.error(`Failed to get current audio capturer info array. Code: ${err.code}, message: ${err.message}`); 156}); 157``` 158 159## getCurrentAudioCapturerInfoArraySync<sup>10+</sup> 160 161getCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray 162 163获取当前音频采集器的信息。同步返回结果。 164 165**系统能力:** SystemCapability.Multimedia.Audio.Capturer 166 167**返回值:** 168 169| 类型 | 说明 | 170| -----------------------------------------------------------------------------| ----------------------------------- | 171| [AudioCapturerChangeInfoArray](arkts-apis-audio-t.md#audiocapturerchangeinfoarray9) | 返回当前音频采集器信息。 | 172 173**示例:** 174 175```ts 176import { BusinessError } from '@kit.BasicServicesKit'; 177 178try { 179 let audioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync(); 180 console.info(`Succeeded in getting current audio capturer info array, AudioCapturerChangeInfoArray: ${JSON.stringify(audioCapturerChangeInfoArray)}.`); 181} catch (err) { 182 let error = err as BusinessError; 183 console.error(`Failed to get current audio capturer info array. Code: ${error.code}, message: ${error.message}`); 184} 185``` 186 187## on('audioRendererChange')<sup>9+</sup> 188 189on(type: 'audioRendererChange', callback: Callback<AudioRendererChangeInfoArray>): void 190 191监听音频渲染器更改事件(当音频播放流状态变化或设备变化时触发)。使用callback异步回调。 192 193**系统能力:** SystemCapability.Multimedia.Audio.Renderer 194 195**参数:** 196 197| 参数名 | 类型 | 必填 | 说明 | 198| -------- | ---------- | --------- | ------------------------------------------------------------------------ | 199| type | string | 是 | 事件回调类型,支持的事件为'audioRendererChange',当音频播放流状态变化或设备变化时,触发该事件。 | 200| callback | Callback<[AudioRendererChangeInfoArray](arkts-apis-audio-t.md#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器信息。 | 201 202**错误码:** 203 204以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 205 206| 错误码ID | 错误信息 | 207| ------- | --------------------------------------------| 208| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 209| 6800101 | Parameter verification failed. | 210 211**示例:** 212 213```ts 214audioStreamManager.on('audioRendererChange', (audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 215 console.info(`Succeeded in using on function, AudioRendererChangeInfoArray: ${JSON.stringify(audioRendererChangeInfoArray)}.`); 216}); 217``` 218 219## off('audioRendererChange')<sup>9+</sup> 220 221off(type: 'audioRendererChange', callback?: Callback<AudioRendererChangeInfoArray>): void 222 223取消监听音频渲染器更改事件。使用callback异步回调。 224 225**系统能力:** SystemCapability.Multimedia.Audio.Renderer 226 227**参数:** 228 229| 参数名 | 类型 | 必填 | 说明 | 230| -------- | ------- |----| ---------------- | 231| type | string | 是 | 事件回调类型,支持的事件为'audioRendererChange',当取消监听音频渲染器更改事件时,触发该事件。 | 232| callback<sup>18+</sup> | Callback<[AudioRendererChangeInfoArray](arkts-apis-audio-t.md#audiorendererchangeinfoarray9)> | 否 | 回调函数,返回当前音频渲染器信息。 | 233 234**错误码:** 235 236以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 237 238| 错误码ID | 错误信息 | 239| ------- |--------------------------| 240| 6800101 | Parameter verification failed. | 241 242**示例:** 243 244```ts 245// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。 246// 当订阅了多个该事件的监听时,可通过 audioStreamManager.off('audioRendererChange'); 取消该事件的所有监听。 247let audioRendererChangeCallback = (audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 248 console.info(`Succeeded in using on or off function, AudioRendererChangeInfoArray: ${JSON.stringify(audioRendererChangeInfoArray)}.`); 249}; 250 251audioStreamManager.on('audioRendererChange', audioRendererChangeCallback); 252 253audioStreamManager.off('audioRendererChange', audioRendererChangeCallback); 254``` 255 256## on('audioCapturerChange')<sup>9+</sup> 257 258on(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfoArray>): void 259 260监听音频采集器更改事件(当音频录制流状态变化或设备变化时触发)。使用callback异步回调。 261 262**系统能力:** SystemCapability.Multimedia.Audio.Capturer 263 264**参数:** 265 266| 参数名 | 类型 | 必填 | 说明 | 267| -------- | ------- | --------- | ---------------------------------------------------------------------- | 268| type | string | 是 | 事件回调类型,支持的事件为'audioCapturerChange',当音频录制流状态变化或设备变化时,触发该事件。 | 269| callback | Callback<[AudioCapturerChangeInfoArray](arkts-apis-audio-t.md#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器信息。 | 270 271**错误码:** 272 273以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 274 275| 错误码ID | 错误信息 | 276| ------- | --------------------------------------------| 277| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 278| 6800101 | Parameter verification failed. | 279 280**示例:** 281 282```ts 283audioStreamManager.on('audioCapturerChange', (audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 284 console.info(`Succeeded in using on function, AudioCapturerChangeInfoArray: ${JSON.stringify(audioCapturerChangeInfoArray)}.`); 285}); 286``` 287 288## off('audioCapturerChange')<sup>9+</sup> 289 290off(type: 'audioCapturerChange', callback?: Callback<AudioCapturerChangeInfoArray>): void 291 292取消监听音频采集器更改事件。使用callback异步回调。 293 294**系统能力:** SystemCapability.Multimedia.Audio.Capturer 295 296**参数:** 297 298| 参数名 | 类型 | 必填 | 说明 | 299| -------- | -------- | --- | ------------------------------------------------------------- | 300| type | string |是 | 事件回调类型,支持的事件为'audioCapturerChange',当取消监听音频采集器更改事件时,触发该事件。 | 301| callback<sup>18+</sup> | Callback<[AudioCapturerChangeInfoArray](arkts-apis-audio-t.md#audiocapturerchangeinfoarray9)> | 否 | 回调函数,返回当前音频采集器信息。 | 302 303**错误码:** 304 305以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 306 307| 错误码ID | 错误信息 | 308| ------- | --------------------------------------------| 309| 6800101 | Parameter verification failed. | 310 311**示例:** 312 313```ts 314// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听。 315// 当订阅了多个该事件的监听时,可通过 audioStreamManager.off('audioCapturerChange'); 取消该事件的所有监听。 316let audioCapturerChangeCallback = (audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 317 console.info(`Succeeded in using on or off function, AudioCapturerChangeInfoArray: ${JSON.stringify(audioCapturerChangeInfoArray)}.`); 318}; 319 320audioStreamManager.on('audioCapturerChange', audioCapturerChangeCallback); 321 322audioStreamManager.off('audioCapturerChange', audioCapturerChangeCallback); 323``` 324 325## isActive<sup>(deprecated)</sup> 326 327isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 328 329获取指定音频流活跃状态。使用callback异步回调。 330 331> **说明:** 332> 从API version 9开始支持,从API version 20开始废弃,建议使用[isStreamActive](arkts-apis-audio-AudioStreamManager.md#isstreamactive20)替代。 333 334**系统能力:** SystemCapability.Multimedia.Audio.Renderer 335 336**参数:** 337 338| 参数名 | 类型 | 必填 | 说明 | 339| ---------- | ----------------------------------- | ---- | ------------------------------------------------- | 340| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音频流类型。 | 341| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音频流活跃状态成功,err为undefined,data为true表示活跃,false表示不活跃;否则为错误对象。 | 342 343**示例:** 344 345```ts 346import { BusinessError } from '@kit.BasicServicesKit'; 347 348audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 349if (err) { 350 console.error(`Failed to obtain the active status of the stream. ${err}`); 351 return; 352} 353 console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`); 354}); 355``` 356 357## isActive<sup>(deprecated)</sup> 358 359isActive(volumeType: AudioVolumeType): Promise<boolean> 360 361获取指定音频流是否为活跃状态。使用Promise异步回调。 362 363> **说明:** 364> 从API version 9开始支持,从API version 20开始废弃,建议使用[isStreamActive](arkts-apis-audio-AudioStreamManager.md#isstreamactive20)替代。 365 366**系统能力:** SystemCapability.Multimedia.Audio.Renderer 367 368**参数:** 369 370| 参数名 | 类型 | 必填 | 说明 | 371| ---------- | ----------------------------------- | ---- | ------------ | 372| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音频流类型。 | 373 374**返回值:** 375 376| 类型 | 说明 | 377| ---------------------- | -------------------------------------------------------- | 378| Promise<boolean> | Promise对象。返回true表示流状态为活跃;返回false表示流状态不活跃。 | 379 380**示例:** 381 382```ts 383audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 384 console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`); 385}); 386``` 387 388## isActiveSync<sup>(deprecated)</sup> 389 390isActiveSync(volumeType: AudioVolumeType): boolean 391 392获取指定音频流是否为活跃状态。同步返回结果。 393 394> **说明:** 395> 从API version 10开始支持,从API version 20开始废弃,建议使用[isStreamActive](arkts-apis-audio-AudioStreamManager.md#isstreamactive20)替代。 396 397**系统能力:** SystemCapability.Multimedia.Audio.Renderer 398 399**参数:** 400 401| 参数名 | 类型 | 必填 | 说明 | 402| ---------- | ----------------------------------- | ---- | ------------ | 403| volumeType | [AudioVolumeType](arkts-apis-audio-e.md#audiovolumetype) | 是 | 音频流类型。 | 404 405**返回值:** 406 407| 类型 | 说明 | 408| ---------------------- | -------------------------------------------------------- | 409| boolean | 流的活跃状态。返回true表示活跃,返回false表示不活跃。 | 410 411**错误码:** 412 413以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 414 415| 错误码ID | 错误信息 | 416| ------- | --------------------------------------------| 417| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 418| 6800101 | Parameter verification failed. | 419 420**示例:** 421 422```ts 423import { BusinessError } from '@kit.BasicServicesKit'; 424 425try { 426 let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA); 427 console.info(`Indicate that the active status of the stream is obtained ${value}.`); 428} catch (err) { 429 let error = err as BusinessError; 430 console.error(`Failed to obtain the active status of the stream ${error}.`); 431} 432``` 433 434## isStreamActive<sup>20+</sup> 435 436isStreamActive(streamUsage: StreamUsage): boolean 437 438获取指定音频流是否为活跃状态。同步返回结果。 439 440**系统能力:** SystemCapability.Multimedia.Audio.Renderer 441 442**参数:** 443 444| 参数名 | 类型 | 必填 | 说明 | 445| ---------- | ----------------------------------- | ---- | ------------ | 446| streamUsage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | 是 | 音频流使用类型。 | 447 448**返回值:** 449 450| 类型 | 说明 | 451| ---------------------- | -------------------------------------------------------- | 452| boolean | 流是否处于活跃状态。返回true表示活跃,返回false表示不活跃。 | 453 454**错误码:** 455 456以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 457 458| 错误码ID | 错误信息 | 459| ------- | --------------------------------------------| 460| 6800101 | Parameter verification failed. | 461 462**示例:** 463 464```ts 465import { BusinessError } from '@kit.BasicServicesKit'; 466 467try { 468 let isStreamActive = audioStreamManager.isStreamActive(audio.StreamUsage.STREAM_USAGE_MUSIC); 469 console.info(`Succeeded in using isStreamActive function, IsStreamActive: ${isStreamActive}.`); 470} catch (err) { 471 let error = err as BusinessError; 472 console.error(`Failed to use isStreamActive function. code: ${error.code}, message: ${error.message}`); 473} 474``` 475 476## getAudioEffectInfoArray<sup>10+</sup> 477 478getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void 479 480获取当前音效模式的信息。使用callback异步回调。 481 482**系统能力**: SystemCapability.Multimedia.Audio.Renderer 483 484**参数:** 485 486| 参数名 | 类型 | 必填 | 说明 | 487| -------- | ----------------------------------- | -------- | --------------------------- | 488| usage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | 是 | 音频流使用类型。 | 489| callback | AsyncCallback<[AudioEffectInfoArray](arkts-apis-audio-AudioStreamManager.md#getaudioeffectinfoarray10)> | 是 | 回调函数。当获取当前音效模式的信息成功,err为undefined,data为获取到的当前音效模式的信息;否则为错误对象。| 490 491**错误码:** 492 493以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 494 495| 错误码ID | 错误信息 | 496| ------- | --------------------------------------------| 497| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 498| 6800101 | Parameter verification failed. Return by callback.| 499 500**示例:** 501 502```ts 503import { BusinessError } from '@kit.BasicServicesKit'; 504 505audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC, (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => { 506 if (err) { 507 console.error(`Failed to get audio effect info array. Code: ${err.code}, message: ${err.message}`); 508 } else { 509 console.info(`Succeeded in getting effect info array, AudioEffectInfoArray: ${JSON.stringify(audioEffectInfoArray)}.`); 510 } 511}); 512``` 513 514## getAudioEffectInfoArray<sup>10+</sup> 515 516getAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray> 517 518获取当前音效模式的信息。使用Promise异步回调。 519 520**系统能力:** SystemCapability.Multimedia.Audio.Renderer 521 522**参数:** 523 524| 参数名 | 类型 | 必填 | 说明 | 525| -------- | ----------------------------------- | -------- | --------------------------- | 526| usage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | 是 | 音频流使用类型。 | 527 528**返回值:** 529 530| 类型 | 说明 | 531| --------------------------------------------------------------------------| --------------------------------------- | 532| Promise<[AudioEffectInfoArray](arkts-apis-audio-AudioStreamManager.md#getaudioeffectinfoarray10)> | Promise对象,返回当前音效模式的信息。 | 533 534**错误码:** 535 536以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 537 538| 错误码ID | 错误信息 | 539| ------- | --------------------------------------------| 540| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 541| 6800101 | Parameter verification failed. Return by promise. | 542 543**示例:** 544 545```ts 546import { BusinessError } from '@kit.BasicServicesKit'; 547 548audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => { 549 console.info(`Succeeded in getting effect info array, AudioEffectInfoArray: ${JSON.stringify(audioEffectInfoArray)}.`); 550}).catch((err: BusinessError) => { 551 console.error(`Failed to get audio effect info array. Code: ${err.code}, message: ${err.message}`); 552}); 553``` 554 555## getAudioEffectInfoArraySync<sup>10+</sup> 556 557getAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray 558 559获取当前音效模式的信息。同步返回结果。 560 561**系统能力:** SystemCapability.Multimedia.Audio.Renderer 562 563**参数:** 564 565| 参数名 | 类型 | 必填 | 说明 | 566| -------- | ----------------------------------- | -------- | --------------------------- | 567| usage | [StreamUsage](arkts-apis-audio-e.md#streamusage) | 是 | 音频流使用类型。 | 568 569**返回值:** 570 571| 类型 | 说明 | 572| --------------------------------------------------------------------------| --------------------------------------- | 573| [AudioEffectInfoArray](arkts-apis-audio-AudioStreamManager.md#getaudioeffectinfoarray10) | 返回当前音效模式的信息。 | 574 575**错误码:** 576 577以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。 578 579| 错误码ID | 错误信息 | 580| ------- | --------------------------------------------| 581| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 582| 6800101 | Parameter verification failed. | 583 584**示例:** 585 586```ts 587import { BusinessError } from '@kit.BasicServicesKit'; 588 589try { 590 let audioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MUSIC); 591 console.info(`Succeeded in getting effect info array, AudioEffectInfoArray: ${JSON.stringify(audioEffectInfoArray)}.`); 592} catch (err) { 593 let error = err as BusinessError; 594 console.error(`Failed to get audio effect info array. Code: ${error.code}, message: ${error.message}`); 595} 596``` 597 598## isAcousticEchoCancelerSupported<sup>20+</sup> 599 600isAcousticEchoCancelerSupported(sourceType: SourceType): boolean 601 602查询指定的source type是否支持回声消除。 603 604**系统能力:** SystemCapability.Multimedia.Audio.Capturer 605 606**参数:** 607 608| 参数名 | 类型 | 必填 | 说明 | 609| -------- | ----------------------------------- | -------- | --------------------------- | 610| sourceType | [SourceType](arkts-apis-audio-e.md#sourcetype8) | 是 | 音源类型。 | 611 612**返回值:** 613 614| 类型 | 说明 | 615| --------------------------------------------------------------------------| --------------------------------------- | 616| boolean | 是否支持回声消除。true表示支持回声消除,false表示不支持回声消除。 | 617 618**错误码:** 619 620以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 621 622| 错误码ID | 错误信息 | 623| ------- | --------------------------------------------| 624| 6800101 | Parameter verification failed. | 625 626**示例:** 627 628```ts 629import { BusinessError } from '@kit.BasicServicesKit'; 630 631try { 632 let isAcousticEchoCancelerSupported = audioStreamManager.isAcousticEchoCancelerSupported(audio.SourceType.SOURCE_TYPE_LIVE); 633 console.info(`Succeeded in using isAcousticEchoCancelerSupported function, IsAcousticEchoCancelerSupported: ${isAcousticEchoCancelerSupported}.`); 634} catch (err) { 635 let error = err as BusinessError; 636 console.error(`Failed to use isAcousticEchoCancelerSupported function. code: ${error.code}, message: ${error.message}`); 637} 638``` 639 640## isAudioLoopbackSupported<sup>20+</sup> 641 642isAudioLoopbackSupported(mode: AudioLoopbackMode): boolean 643 644查询当前系统是否支持指定的音频返听模式。 645 646**系统能力:** SystemCapability.Multimedia.Audio.Capturer 647 648**参数:** 649 650| 参数名 | 类型 | 必填 | 说明 | 651| -------- | ----------------------------------- | -------- | --------------------------- | 652| mode | [AudioLoopbackMode](arkts-apis-audio-e.md#audioloopbackmode20) | 是 | 音频返听模式。 | 653 654**返回值:** 655 656| 类型 | 说明 | 657| --------------------------------------------------------------------------| --------------------------------------- | 658| boolean | 是否支持指定的音频返听模式。true表示支持,false表示不支持。 | 659 660**错误码:** 661 662以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 663 664| 错误码ID | 错误信息 | 665| ------- | --------------------------------------------| 666| 6800101 | Parameter verification failed. | 667 668**示例:** 669 670```ts 671import { BusinessError } from '@kit.BasicServicesKit'; 672 673try { 674 let isAudioLoopbackSupported = audioStreamManager.isAudioLoopbackSupported(audio.AudioLoopbackMode.HARDWARE); 675 console.info(`Succeeded in using isAudioLoopbackSupported function, IsAudioLoopbackSupported: ${isAudioLoopbackSupported}.`); 676} catch (err) { 677 let error = err as BusinessError; 678 console.error(`Failed to use isAudioLoopbackSupported function. code: ${error.code}, message: ${error.message}`); 679} 680``` 681 682## isRecordingAvailable<sup>20+</sup> 683 684isRecordingAvailable(capturerInfo: AudioCapturerInfo): boolean 685 686检查传入的音频采集器信息中音源类型的录制是否可以启动成功。 687 688**系统能力:** SystemCapability.Multimedia.Audio.Capturer 689 690**参数:** 691 692| 参数名 | 类型 | 必填 | 说明 | 693| -------- | ----------------------------------- | -------- | --------------------------- | 694| capturerInfo | [AudioCapturerInfo](arkts-apis-audio-i.md#audiocapturerinfo8) | 是 | 音频采集器信息。 | 695 696**返回值:** 697 698| 类型 | 说明 | 699| ------------ | --------------------------------------- | 700| boolean | 代表录制是否可以启动成功。true表示成功,false表示失败。<br>仅检测是否可以获取音频采集器信息中音源类型的焦点。通常在音频录制启动前调用,否则已存在的录制流可能会拒绝其启动。 | 701 702**错误码:** 703 704以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 705 706| 错误码ID | 错误信息 | 707| ------- | --------------------------------------------| 708| 6800101 | Parameter verification failed. | 709 710**示例:** 711```ts 712import { BusinessError } from '@kit.BasicServicesKit'; 713 714let audioStreamInfo: audio.AudioStreamInfo = { 715 samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, 716 channels: audio.AudioChannel.CHANNEL_2, 717 sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 718 encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 719}; 720 721let audioCapturerInfo: audio.AudioCapturerInfo = { 722 source: audio.SourceType.SOURCE_TYPE_MIC, 723 capturerFlags: 0 724}; 725 726let audioCapturerOptions: audio.AudioCapturerOptions = { 727 streamInfo: audioStreamInfo, 728 capturerInfo: audioCapturerInfo 729}; 730 731audio.createAudioCapturer(audioCapturerOptions, (err: BusinessError, audioCapturer: audio.AudioCapturer) => { 732 if (err) { 733 console.error(`Failed to create AudioCapturer. Code: ${err.code}, message: ${err.message}`); 734 } else { 735 console.info('Succeeded in creating AudioCapturer.'); 736 try { 737 let isRecordingAvailable = audioStreamManager.isRecordingAvailable(audioCapturerInfo); 738 console.info(`Succeeded in using isRecordingAvailable function, IsRecordingAvailable: ${isRecordingAvailable}.`); 739 } catch (err) { 740 let error = err as BusinessError; 741 console.error(`Failed to use isRecordingAvailable function. code: ${error.code}, message: ${error.message}`); 742 } 743 } 744}); 745``` 746