• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&lt;AudioRendererChangeInfoArray&gt;): 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&lt;AudioRendererChangeInfoArray&gt;
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&lt;AudioCapturerChangeInfoArray&gt;): 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&lt;AudioCapturerChangeInfoArray&gt;
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&lt;AudioRendererChangeInfoArray&gt;): 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&lt;AudioRendererChangeInfoArray&gt;): 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&lt;AudioCapturerChangeInfoArray&gt;): 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&lt;AudioCapturerChangeInfoArray&gt;): 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&lt;boolean&gt;): 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&lt;boolean&gt;        | 是   | 回调函数。当获取指定音频流活跃状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;AudioEffectInfoArray&gt;): 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&lt;AudioEffectInfoArray&gt;
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