• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimedia.audio (音频管理)
2
3音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。
4
5该模块提供以下音频相关的常用功能:
6
7- [AudioManager](#audiomanager):音频管理。
8- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
9- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。
10- [TonePlayer](#toneplayer9):用于管理和播放DTMF(Dual Tone Multi Frequency,双音多频)音调,如拨号音、通话回铃音等。
11
12> **说明:**
13> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14
15## 导入模块
16
17```js
18import audio from '@ohos.multimedia.audio';
19```
20
21## 常量
22
23| 名称                                    | 类型      | 可读  | 可写 | 说明               |
24| --------------------------------------- | ----------| ---- | ---- | ------------------ |
25| LOCAL_NETWORK_ID<sup>9+</sup>           | string    | 是   | 否   | 本地设备网络id。<br/>此接口为系统接口。<br> **系统能力:** SystemCapability.Multimedia.Audio.Device  |
26| DEFAULT_VOLUME_GROUP_ID<sup>9+</sup>    | number    | 是   | 否   | 默认音量组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Volume       |
27| DEFAULT_INTERRUPT_GROUP_ID<sup>9+</sup> | number    | 是   | 否   | 默认音频中断组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Interrupt       |
28
29**示例:**
30
31```js
32import audio from '@ohos.multimedia.audio';
33
34const localNetworkId = audio.LOCAL_NETWORK_ID;
35const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
36const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;
37```
38
39## audio.getAudioManager
40
41getAudioManager(): AudioManager
42
43获取音频管理器。
44
45**系统能力:** SystemCapability.Multimedia.Audio.Core
46
47**返回值:**
48
49| 类型                          | 说明         |
50| ----------------------------- | ------------ |
51| [AudioManager](#audiomanager) | 音频管理类。 |
52
53**示例:**
54```js
55let audioManager = audio.getAudioManager();
56```
57
58## audio.createAudioRenderer<sup>8+</sup>
59
60createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void
61
62获取音频渲染器。使用callback方式异步返回结果。
63
64**系统能力:** SystemCapability.Multimedia.Audio.Renderer
65
66**参数:**
67
68| 参数名   | 类型                                            | 必填 | 说明             |
69| -------- | ----------------------------------------------- | ---- | ---------------- |
70| options  | [AudioRendererOptions](#audiorendereroptions8)  | 是   | 配置渲染器。     |
71| callback | AsyncCallback<[AudioRenderer](#audiorenderer8)> | 是   | 音频渲染器对象。 |
72
73**示例:**
74
75```js
76import featureAbility from '@ohos.ability.featureAbility';
77import fs from '@ohos.file.fs';
78import audio from '@ohos.multimedia.audio';
79
80let audioStreamInfo = {
81  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
82  channels: audio.AudioChannel.CHANNEL_1,
83  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
84  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
85}
86
87let audioRendererInfo = {
88  content: audio.ContentType.CONTENT_TYPE_SPEECH,
89  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
90  rendererFlags: 0
91}
92
93let audioRendererOptions = {
94  streamInfo: audioStreamInfo,
95  rendererInfo: audioRendererInfo
96}
97
98audio.createAudioRenderer(audioRendererOptions,(err, data) => {
99  if (err) {
100    console.error(`AudioRenderer Created: Error: ${err}`);
101  } else {
102    console.info('AudioRenderer Created: Success: SUCCESS');
103    let audioRenderer = data;
104  }
105});
106```
107
108## audio.createAudioRenderer<sup>8+</sup>
109
110createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\>
111
112获取音频渲染器。使用Promise方式异步返回结果。
113
114**系统能力:** SystemCapability.Multimedia.Audio.Renderer
115
116**参数:**
117
118| 参数名  | 类型                                           | 必填 | 说明         |
119| :------ | :--------------------------------------------- | :--- | :----------- |
120| options | [AudioRendererOptions](#audiorendereroptions8) | 是   | 配置渲染器。 |
121
122**返回值:**
123
124| 类型                                      | 说明             |
125| ----------------------------------------- | ---------------- |
126| Promise<[AudioRenderer](#audiorenderer8)> | 音频渲染器对象。 |
127
128**示例:**
129
130```js
131import featureAbility from '@ohos.ability.featureAbility';
132import fs from '@ohos.file.fs';
133import audio from '@ohos.multimedia.audio';
134
135let audioStreamInfo = {
136  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
137  channels: audio.AudioChannel.CHANNEL_1,
138  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
139  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
140}
141
142let audioRendererInfo = {
143  content: audio.ContentType.CONTENT_TYPE_SPEECH,
144  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
145  rendererFlags: 0
146}
147
148let audioRendererOptions = {
149  streamInfo: audioStreamInfo,
150  rendererInfo: audioRendererInfo
151}
152
153let audioRenderer;
154audio.createAudioRenderer(audioRendererOptions).then((data) => {
155  audioRenderer = data;
156  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
157}).catch((err) => {
158  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
159});
160```
161
162## audio.createAudioCapturer<sup>8+</sup>
163
164createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void
165
166获取音频采集器。使用callback方式异步返回结果。
167
168**系统能力:** SystemCapability.Multimedia.Audio.Capturer
169
170**需要权限:** ohos.permission.MICROPHONE
171
172**参数:**
173
174| 参数名   | 类型                                            | 必填 | 说明             |
175| :------- | :---------------------------------------------- | :--- | :--------------- |
176| options  | [AudioCapturerOptions](#audiocaptureroptions8)  | 是   | 配置音频采集器。 |
177| callback | AsyncCallback<[AudioCapturer](#audiocapturer8)> | 是   | 音频采集器对象。 |
178
179**示例:**
180
181```js
182import audio from '@ohos.multimedia.audio';
183let audioStreamInfo = {
184  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
185  channels: audio.AudioChannel.CHANNEL_2,
186  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
187  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
188}
189
190let audioCapturerInfo = {
191  source: audio.SourceType.SOURCE_TYPE_MIC,
192  capturerFlags: 0
193}
194
195let audioCapturerOptions = {
196  streamInfo: audioStreamInfo,
197  capturerInfo: audioCapturerInfo
198}
199
200audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
201  if (err) {
202    console.error(`AudioCapturer Created : Error: ${err}`);
203  } else {
204    console.info('AudioCapturer Created : Success : SUCCESS');
205    let audioCapturer = data;
206  }
207});
208```
209
210## audio.createAudioCapturer<sup>8+</sup>
211
212createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\>
213
214获取音频采集器。使用promise 方式异步返回结果。
215
216**系统能力:** SystemCapability.Multimedia.Audio.Capturer
217
218**需要权限:** ohos.permission.MICROPHONE
219
220**参数:**
221
222| 参数名  | 类型                                           | 必填 | 说明             |
223| :------ | :--------------------------------------------- | :--- | :--------------- |
224| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是   | 配置音频采集器。 |
225
226**返回值:**
227
228| 类型                                      | 说明           |
229| ----------------------------------------- | -------------- |
230| Promise<[AudioCapturer](#audiocapturer8)> | 音频采集器对象 |
231
232**示例:**
233
234```js
235import audio from '@ohos.multimedia.audio';
236
237let audioStreamInfo = {
238  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
239  channels: audio.AudioChannel.CHANNEL_2,
240  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
241  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
242}
243
244let audioCapturerInfo = {
245  source: audio.SourceType.SOURCE_TYPE_MIC,
246  capturerFlags: 0
247}
248
249let audioCapturerOptions = {
250  streamInfo: audioStreamInfo,
251  capturerInfo: audioCapturerInfo
252}
253
254let audioCapturer;
255audio.createAudioCapturer(audioCapturerOptions).then((data) => {
256  audioCapturer = data;
257  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
258}).catch((err) => {
259  console.error(`AudioCapturer Created : ERROR : ${err}`);
260});
261```
262
263## audio.createTonePlayer<sup>9+</sup>
264
265createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback&lt;TonePlayer&gt;): void
266
267创建DTMF播放器。使用callback方式异步返回结果。
268
269**系统能力:** SystemCapability.Multimedia.Audio.Tone
270
271**系统接口:** 该接口为系统接口
272
273**参数:**
274
275| 参数名   | 类型                                             | 必填 | 说明            |
276| -------- | ----------------------------------------------- | ---- | -------------- |
277| options  | [AudioRendererInfo](#audiorendererinfo8)        | 是   | 配置音频渲染器信息。|
278| callback | AsyncCallback<[TonePlayer](#toneplayer9)>       | 是   | 回调函数,回调返回音频渲染器对象。|
279
280**示例:**
281
282```js
283import audio from '@ohos.multimedia.audio';
284
285let audioRendererInfo = {
286  content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
287  usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
288  rendererFlags : 0
289}
290let tonePlayer;
291
292audio.createTonePlayer(audioRendererInfo, (err, data) => {
293  console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`);
294  if (err) {
295    console.error(`callback call createTonePlayer return error: ${err.message}`);
296  } else {
297    console.info(`callback call createTonePlayer return data: ${data}`);
298    tonePlayer = data;
299  }
300});
301```
302
303## audio.createTonePlayer<sup>9+</sup>
304
305createTonePlayer(options: AudioRendererInfo): Promise&lt;TonePlayer&gt;
306
307创建DTMF播放器。使用Promise方式异步返回结果。
308
309**系统能力:** SystemCapability.Multimedia.Audio.Tone
310
311**系统接口:** 该接口为系统接口
312
313**参数:**
314
315| 参数名  | 类型                                           | 必填 | 说明         |
316| :------ | :---------------------------------------------| :--- | :----------- |
317| options | [AudioRendererInfo](#audiorendererinfo8)      | 是   | 配置音频渲染器信息。 |
318
319**返回值:**
320
321| 类型                                      | 说明                             |
322| ----------------------------------------- | -------------------------------- |
323| Promise<[TonePlayer](#toneplayer9)>       | Promise对象,返回音频渲染器对象。   |
324
325**示例:**
326
327```js
328import audio from '@ohos.multimedia.audio';
329let tonePlayer;
330async function createTonePlayerBefore(){
331  let audioRendererInfo = {
332    content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
333    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
334    rendererFlags : 0
335  }
336  tonePlayer = await audio.createTonePlayer(audioRendererInfo);
337}
338```
339
340## AudioVolumeType
341
342枚举,音频流类型。
343
344**系统能力:** SystemCapability.Multimedia.Audio.Volume
345
346| 名称                         | 值      | 说明       |
347| ---------------------------- | ------ | ---------- |
348| VOICE_CALL<sup>8+</sup>      | 0      | 语音电话。 |
349| RINGTONE                     | 2      | 铃声。     |
350| MEDIA                        | 3      | 媒体。     |
351| VOICE_ASSISTANT<sup>8+</sup> | 9      | 语音助手。 |
352| ALL<sup>9+</sup>             | 100    | 所有公共音频流。<br/>此接口为系统接口。|
353
354## InterruptRequestResultType<sup>9+</sup>
355
356枚举,音频中断请求结果类型。
357
358**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
359
360**系统接口:** 该接口为系统接口
361
362| 名称                         | 值      | 说明       |
363| ---------------------------- | ------ | ---------- |
364| INTERRUPT_REQUEST_GRANT      | 0      | 请求音频中断成功。 |
365| INTERRUPT_REQUEST_REJECT     | 1      | 请求音频中断失败,可能具有较高优先级类型。 |
366
367## InterruptMode<sup>9+</sup>
368
369枚举,焦点模型。
370
371**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
372
373| 名称                         | 值      | 说明       |
374| ---------------------------- | ------ | ---------- |
375| SHARE_MODE                   | 0      | 共享焦点模式。 |
376| INDEPENDENT_MODE             | 1      | 独立焦点模式。 |
377
378## DeviceFlag
379
380枚举,可获取的设备种类。
381
382**系统能力:** SystemCapability.Multimedia.Audio.Device
383
384| 名称                            |  值     | 说明                                              |
385| ------------------------------- | ------ | ------------------------------------------------- |
386| NONE_DEVICES_FLAG<sup>9+</sup>  | 0      | 无 <br/>此接口为系统接口。        |
387| OUTPUT_DEVICES_FLAG             | 1      | 输出设备。 |
388| INPUT_DEVICES_FLAG              | 2      | 输入设备。 |
389| ALL_DEVICES_FLAG                | 3      | 所有设备。 |
390| DISTRIBUTED_OUTPUT_DEVICES_FLAG<sup>9+</sup> | 4   | 分布式输出设备。<br/>此接口为系统接口。  |
391| DISTRIBUTED_INPUT_DEVICES_FLAG<sup>9+</sup>  | 8   | 分布式输入设备。<br/>此接口为系统接口。  |
392| ALL_DISTRIBUTED_DEVICES_FLAG<sup>9+</sup>    | 12  | 分布式输入和输出设备。<br/>此接口为系统接口。  |
393
394## DeviceRole
395
396枚举,设备角色。
397
398**系统能力:** SystemCapability.Multimedia.Audio.Device
399
400| 名称          |  值    | 说明           |
401| ------------- | ------ | -------------- |
402| INPUT_DEVICE  | 1      | 输入设备角色。 |
403| OUTPUT_DEVICE | 2      | 输出设备角色。 |
404
405## DeviceType
406
407枚举,设备类型。
408
409**系统能力:** SystemCapability.Multimedia.Audio.Device
410
411| 名称                 | 值     | 说明                                                      |
412| ---------------------| ------ | --------------------------------------------------------- |
413| INVALID              | 0      | 无效设备。                                                |
414| EARPIECE             | 1      | 听筒。                                                    |
415| SPEAKER              | 2      | 扬声器。                                                  |
416| WIRED_HEADSET        | 3      | 有线耳机,带麦克风。                                      |
417| WIRED_HEADPHONES     | 4      | 有线耳机,无麦克风。                                      |
418| BLUETOOTH_SCO        | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。      |
419| BLUETOOTH_A2DP       | 8      | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
420| MIC                  | 15     | 麦克风。                                                  |
421| USB_HEADSET          | 22     | USB耳机,带麦克风。                                       |
422| DEFAULT<sup>9+</sup> | 1000   | 默认设备类型。                                            |
423
424## CommunicationDeviceType<sup>9+</sup>
425
426枚举,用于通信的可用设备类型。
427
428**系统能力:** SystemCapability.Multimedia.Audio.Communication
429
430| 名称          | 值     | 说明          |
431| ------------- | ------ | -------------|
432| SPEAKER       | 2      | 扬声器。      |
433
434## AudioRingMode
435
436枚举,铃声模式。
437
438**系统能力:** SystemCapability.Multimedia.Audio.Communication
439
440| 名称                |  值    | 说明       |
441| ------------------- | ------ | ---------- |
442| RINGER_MODE_SILENT  | 0      | 静音模式。 |
443| RINGER_MODE_VIBRATE | 1      | 震动模式。 |
444| RINGER_MODE_NORMAL  | 2      | 响铃模式。 |
445
446## AudioSampleFormat<sup>8+</sup>
447
448枚举,音频采样格式。
449
450**系统能力:** SystemCapability.Multimedia.Audio.Core
451
452| 名称                                |  值    | 说明                       |
453| ---------------------------------- | ------ | -------------------------- |
454| SAMPLE_FORMAT_INVALID              | -1     | 无效格式。                 |
455| SAMPLE_FORMAT_U8                   | 0      | 无符号8位整数。            |
456| SAMPLE_FORMAT_S16LE                | 1      | 带符号的16位整数,小尾数。 |
457| SAMPLE_FORMAT_S24LE                | 2      | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
458| SAMPLE_FORMAT_S32LE                | 3      | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
459| SAMPLE_FORMAT_F32LE<sup>9+</sup>   | 4      | 带符号的32位浮点数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
460
461## AudioErrors<sup>9+</sup>
462
463枚举,音频错误码。
464
465**系统能力:** SystemCapability.Multimedia.Audio.Core
466
467| 名称                 | 值      | 说明         |
468| ---------------------| --------| ----------------- |
469| ERROR_INVALID_PARAM  | 6800101 | 无效入参。         |
470| ERROR_NO_MEMORY      | 6800102 | 分配内存失败。     |
471| ERROR_ILLEGAL_STATE  | 6800103 | 状态不支持。       |
472| ERROR_UNSUPPORTED    | 6800104 | 参数选项不支持。    |
473| ERROR_TIMEOUT        | 6800105 | 处理超时。         |
474| ERROR_STREAM_LIMIT   | 6800201 | 音频流数量达到限制。|
475| ERROR_SYSTEM         | 6800301 | 系统处理异常。     |
476
477## AudioChannel<sup>8+</sup>
478
479枚举, 音频声道。
480
481**系统能力:** SystemCapability.Multimedia.Audio.Core
482
483| 名称      |  值       | 说明     |
484| --------- | -------- | -------- |
485| CHANNEL_1 | 0x1 << 0 | 第一声道。 |
486| CHANNEL_2 | 0x1 << 1 | 第二声道。 |
487
488## AudioSamplingRate<sup>8+</sup>
489
490枚举,音频采样率,具体设备支持的采样率规格会存在差异。
491
492**系统能力:** SystemCapability.Multimedia.Audio.Core
493
494| 名称              |  值    | 说明            |
495| ----------------- | ------ | --------------- |
496| SAMPLE_RATE_8000  | 8000   | 采样率为8000。  |
497| SAMPLE_RATE_11025 | 11025  | 采样率为11025。 |
498| SAMPLE_RATE_12000 | 12000  | 采样率为12000。 |
499| SAMPLE_RATE_16000 | 16000  | 采样率为16000。 |
500| SAMPLE_RATE_22050 | 22050  | 采样率为22050。 |
501| SAMPLE_RATE_24000 | 24000  | 采样率为24000。 |
502| SAMPLE_RATE_32000 | 32000  | 采样率为32000。 |
503| SAMPLE_RATE_44100 | 44100  | 采样率为44100。 |
504| SAMPLE_RATE_48000 | 48000  | 采样率为48000。 |
505| SAMPLE_RATE_64000 | 64000  | 采样率为64000。 |
506| SAMPLE_RATE_96000 | 96000  | 采样率为96000。 |
507
508## AudioEncodingType<sup>8+</sup>
509
510枚举,音频编码类型。
511
512**系统能力:** SystemCapability.Multimedia.Audio.Core
513
514| 名称                  |  值    | 说明      |
515| --------------------- | ------ | --------- |
516| ENCODING_TYPE_INVALID | -1     | 无效。    |
517| ENCODING_TYPE_RAW     | 0      | PCM编码。 |
518
519## ContentType
520
521枚举,音频内容类型。
522
523**系统能力:** SystemCapability.Multimedia.Audio.Core
524
525| 名称                               |  值    | 说明       |
526| ---------------------------------- | ------ | ---------- |
527| CONTENT_TYPE_UNKNOWN               | 0      | 未知类型。 |
528| CONTENT_TYPE_SPEECH                | 1      | 语音。     |
529| CONTENT_TYPE_MUSIC                 | 2      | 音乐。     |
530| CONTENT_TYPE_MOVIE                 | 3      | 电影。     |
531| CONTENT_TYPE_SONIFICATION          | 4      | 通知音。   |
532| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5      | 铃声。     |
533
534## StreamUsage
535
536枚举,音频流使用类型。
537
538**系统能力:** SystemCapability.Multimedia.Audio.Core
539
540| 名称                                      |  值    | 说明       |
541| ------------------------------------------| ------ | ---------- |
542| STREAM_USAGE_UNKNOWN                      | 0      | 未知类型。 |
543| STREAM_USAGE_MEDIA                        | 1      | 音频。     |
544| STREAM_USAGE_VOICE_COMMUNICATION          | 2      | 语音通信。 |
545| STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3      | 语音播报。 |
546| STREAM_USAGE_NOTIFICATION_RINGTONE        | 6      | 通知铃声。 |
547
548## InterruptRequestType<sup>9+</sup>
549
550枚举,音频中断请求类型。
551
552**系统接口:** 该接口为系统接口
553
554**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
555
556| 名称                               |  值     | 说明                       |
557| ---------------------------------- | ------ | ------------------------- |
558| INTERRUPT_REQUEST_TYPE_DEFAULT     | 0      |  默认类型,可中断音频请求。  |
559
560## AudioState<sup>8+</sup>
561
562枚举,音频状态。
563
564**系统能力:** SystemCapability.Multimedia.Audio.Core
565
566| 名称           | 值     | 说明             |
567| -------------- | ------ | ---------------- |
568| STATE_INVALID  | -1     | 无效状态。       |
569| STATE_NEW      | 0      | 创建新实例状态。 |
570| STATE_PREPARED | 1      | 准备状态。       |
571| STATE_RUNNING  | 2      | 可运行状态。     |
572| STATE_STOPPED  | 3      | 停止状态。       |
573| STATE_RELEASED | 4      | 释放状态。       |
574| STATE_PAUSED   | 5      | 暂停状态。       |
575
576## AudioRendererRate<sup>8+</sup>
577
578枚举,音频渲染速度。
579
580**系统能力:** SystemCapability.Multimedia.Audio.Renderer
581
582| 名称               | 值     | 说明       |
583| ------------------ | ------ | ---------- |
584| RENDER_RATE_NORMAL | 0      | 正常速度。 |
585| RENDER_RATE_DOUBLE | 1      | 2倍速。    |
586| RENDER_RATE_HALF   | 2      | 0.5倍数。  |
587
588## InterruptType
589
590枚举,中断类型。
591
592**系统能力:** SystemCapability.Multimedia.Audio.Renderer
593
594| 名称                 |  值     | 说明                   |
595| -------------------- | ------ | ---------------------- |
596| INTERRUPT_TYPE_BEGIN | 1      | 音频播放中断事件开始。 |
597| INTERRUPT_TYPE_END   | 2      | 音频播放中断事件结束。 |
598
599## InterruptForceType<sup>9+</sup>
600
601枚举,强制打断类型。
602
603**系统能力:** SystemCapability.Multimedia.Audio.Renderer
604
605| 名称            |  值    | 说明                                 |
606| --------------- | ------ | ------------------------------------ |
607| INTERRUPT_FORCE | 0      | 由系统进行操作,强制打断音频播放。   |
608| INTERRUPT_SHARE | 1      | 由应用进行操作,可以选择打断或忽略。 |
609
610## InterruptHint
611
612枚举,中断提示。
613
614**系统能力:** SystemCapability.Multimedia.Audio.Renderer
615
616| 名称                               |  值     | 说明                                         |
617| ---------------------------------- | ------ | -------------------------------------------- |
618| INTERRUPT_HINT_NONE<sup>8+</sup>   | 0      | 无提示。                                     |
619| INTERRUPT_HINT_RESUME              | 1      | 提示音频恢复。                               |
620| INTERRUPT_HINT_PAUSE               | 2      | 提示音频暂停。                               |
621| INTERRUPT_HINT_STOP                | 3      | 提示音频停止。                               |
622| INTERRUPT_HINT_DUCK                | 4      | 提示音频躲避。(躲避:音量减弱,而不会停止) |
623| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5      | 提示音量恢复。                               |
624
625## AudioStreamInfo<sup>8+</sup>
626
627音频流信息。
628
629**系统能力:** SystemCapability.Multimedia.Audio.Core
630
631| 名称         | 类型                                               | 必填 | 说明               |
632| ------------ | ------------------------------------------------- | ---- | ------------------ |
633| samplingRate | [AudioSamplingRate](#audiosamplingrate8)          | 是   | 音频文件的采样率。 |
634| channels     | [AudioChannel](#audiochannel8)                    | 是   | 音频文件的通道数。 |
635| sampleFormat | [AudioSampleFormat](#audiosampleformat8)          | 是   | 音频采样格式。     |
636| encodingType | [AudioEncodingType](#audioencodingtype8)          | 是   | 音频编码格式。     |
637
638## AudioRendererInfo<sup>8+</sup>
639
640音频渲染器信息。
641
642**系统能力:** SystemCapability.Multimedia.Audio.Core
643
644| 名称          | 类型                        | 必填  | 说明             |
645| ------------- | --------------------------- | ---- | ---------------- |
646| content       | [ContentType](#contenttype) | 是   | 媒体类型。       |
647| usage         | [StreamUsage](#streamusage) | 是   | 音频流使用类型。 |
648| rendererFlags | number                      | 是   | 音频渲染器标志。 |
649
650## InterruptResult<sup>9+</sup>
651
652音频中断结果。
653
654**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
655
656**系统接口:** 该接口为系统接口
657
658| 名称          | 类型                                                            | 必填 | 说明             |
659| --------------| -------------------------------------------------------------- | ---- | ---------------- |
660| requestResult | [InterruptRequestResultType](#interruptrequestresulttype9)     | 是   | 表示音频请求中断类型。 |
661| interruptNode | number                                                         | 是   | 音频请求中断的节点。 |
662
663## AudioRendererOptions<sup>8+</sup>
664
665音频渲染器选项信息。
666
667**系统能力:** SystemCapability.Multimedia.Audio.Renderer
668
669| 名称         | 类型                                     | 必填  | 说明             |
670| ------------ | ---------------------------------------- | ---- | ---------------- |
671| streamInfo   | [AudioStreamInfo](#audiostreaminfo8)     | 是   | 表示音频流信息。 |
672| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是   | 表示渲染器信息。 |
673
674## InterruptEvent<sup>9+</sup>
675
676播放中断时,应用接收的中断事件。
677
678**系统能力:** SystemCapability.Multimedia.Audio.Renderer
679
680| 名称      | 类型                                       |必填   | 说明                                 |
681| --------- | ------------------------------------------ | ---- | ------------------------------------ |
682| eventType | [InterruptType](#interrupttype)            | 是   | 中断事件类型,开始或是结束。         |
683| forceType | [InterruptForceType](#interruptforcetype9) | 是   | 操作是由系统执行或是由应用程序执行。 |
684| hintType  | [InterruptHint](#interrupthint)            | 是   | 中断提示。                           |
685
686## VolumeEvent<sup>9+</sup>
687
688音量改变时,应用接收的事件。
689
690**系统能力:** SystemCapability.Multimedia.Audio.Volume
691
692| 名称       | 类型                                | 必填   | 说明                                                     |
693| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
694| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
695| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
696| updateUi   | boolean                             | 是   | 在UI中显示音量变化。                                     |
697| volumeGroupId| number                            | 是   | 音量组id。可用于getGroupManager入参。<br/>此接口为系统接口。  |
698| networkId    | string                            | 是   | 网络id。<br/>此接口为系统接口。                           |
699
700## MicStateChangeEvent<sup>9+</sup>
701
702麦克风状态变化时,应用接收的事件。
703
704**系统能力:** SystemCapability.Multimedia.Audio.Device
705
706| 名称       | 类型                                | 必填 | 说明                                                     |
707| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- |
708| mute | boolean | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。          |
709
710## ConnectType<sup>9+</sup>
711
712枚举,设备连接类型。
713
714**系统接口:** 该接口为系统接口
715
716**系统能力:** SystemCapability.Multimedia.Audio.Volume
717
718| 名称                            |  值     | 说明                   |
719| :------------------------------ | :----- | :--------------------- |
720| CONNECT_TYPE_LOCAL              | 1      | 本地设备。         |
721| CONNECT_TYPE_DISTRIBUTED        | 2      | 分布式设备。            |
722
723## VolumeGroupInfos<sup>9+</sup>
724
725音量组信息,数组类型,为[VolumeGroupInfo](#volumegroupinfo9)的数组,只读。
726
727**系统接口:** 该接口为系统接口
728
729**系统能力:** SystemCapability.Multimedia.Audio.Volume
730
731## VolumeGroupInfo<sup>9+</sup>
732
733音量组信息。
734
735**系统接口:** 该接口为系统接口
736
737**系统能力:** SystemCapability.Multimedia.Audio.Volume
738
739| 名称                        | 类型                       | 可读 | 可写 | 说明       |
740| -------------------------- | -------------------------- | ---- | ---- | ---------- |
741| networkId<sup>9+</sup>     | string                     | 是   | 否   | 组网络id。  |
742| groupId<sup>9+</sup>       | number                     | 是   | 否   | 组设备组id。 |
743| mappingId<sup>9+</sup>     | number                     | 是   | 否   | 组映射id。 |
744| groupName<sup>9+</sup>     | string                     | 是   | 否   | 组名。 |
745| type<sup>9+</sup>          | [ConnectType](#connecttype9)| 是   | 否   | 连接设备类型。 |
746
747## DeviceChangeAction
748
749描述设备连接状态变化和设备信息。
750
751**系统能力:** SystemCapability.Multimedia.Audio.Device
752
753| 名称              | 类型                                              | 必填 | 说明               |
754| :---------------- | :------------------------------------------------ | :--- | :----------------- |
755| type              | [DeviceChangeType](#devicechangetype)             | 是   | 设备连接状态变化。 |
756| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是   | 设备信息。         |
757
758## DeviceChangeType
759
760枚举,设备连接状态变化。
761
762**系统能力:** SystemCapability.Multimedia.Audio.Device
763
764| 名称       |  值     | 说明           |
765| :--------- | :----- | :------------- |
766| CONNECT    | 0      | 设备连接。     |
767| DISCONNECT | 1      | 断开设备连接。 |
768
769## AudioCapturerOptions<sup>8+</sup>
770
771音频采集器选项信息。
772
773**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.Audio.Capturer
774
775| 名称         | 类型                                    | 必填 | 说明             |
776| ------------ | --------------------------------------- | ---- | ---------------- |
777| streamInfo   | [AudioStreamInfo](#audiostreaminfo8)    | 是   | 表示音频流信息。 |
778| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo) | 是   | 表示采集器信息。 |
779
780## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a>
781
782描述音频采集器信息。
783
784**系统能力:** SystemCapability.Multimedia.Audio.Core
785
786| 名称          | 类型                      | 必填 | 说明             |
787| :------------ | :------------------------ | :--- | :--------------- |
788| source        | [SourceType](#sourcetype) | 是   | 音源类型。       |
789| capturerFlags | number                    | 是   | 音频采集器标志。 |
790
791## SourceType<sup>8+</sup><a name="sourcetype"></a>
792
793枚举,音源类型。
794
795**系统能力:** SystemCapability.Multimedia.Audio.Core
796
797| 名称                                         |  值     | 说明                   |
798| :------------------------------------------- | :----- | :--------------------- |
799| SOURCE_TYPE_INVALID                          | -1     | 无效的音频源。         |
800| SOURCE_TYPE_MIC                              | 0      | Mic音频源。            |
801| SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup>   | 1      | 语音识别源。        |
802| SOURCE_TYPE_VOICE_COMMUNICATION              | 7      | 语音通话场景的音频源。 |
803
804## AudioScene<sup>8+</sup><a name="audioscene"></a>
805
806枚举,音频场景。
807
808**系统能力:** SystemCapability.Multimedia.Audio.Communication
809
810| 名称                   |  值     | 说明                                          |
811| :--------------------- | :----- | :-------------------------------------------- |
812| AUDIO_SCENE_DEFAULT    | 0      | 默认音频场景。                                |
813| AUDIO_SCENE_RINGING    | 1      | 响铃模式。<br/>此接口为系统接口。 |
814| AUDIO_SCENE_PHONE_CALL | 2      | 电话模式。<br/>此接口为系统接口。 |
815| AUDIO_SCENE_VOICE_CHAT | 3      | 语音聊天模式。                                |
816
817## AudioManager
818
819管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。
820
821### setAudioParameter
822
823setAudioParameter(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void
824
825音频参数设置,使用callback方式异步返回结果。
826
827本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
828
829**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
830
831**系统能力:** SystemCapability.Multimedia.Audio.Core
832
833**参数:**
834
835| 参数名   | 类型                      | 必填 | 说明                     |
836| -------- | ------------------------- | ---- | ------------------------ |
837| key      | string                    | 是   | 被设置的音频参数的键。   |
838| value    | string                    | 是   | 被设置的音频参数的值。   |
839| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。 |
840
841**示例:**
842
843```js
844audioManager.setAudioParameter('key_example', 'value_example', (err) => {
845  if (err) {
846    console.error(`Failed to set the audio parameter. ${err}`);
847    return;
848  }
849  console.info('Callback invoked to indicate a successful setting of the audio parameter.');
850});
851```
852
853### setAudioParameter
854
855setAudioParameter(key: string, value: string): Promise&lt;void&gt;
856
857音频参数设置,使用Promise方式异步返回结果。
858
859本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
860
861**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
862
863**系统能力:** SystemCapability.Multimedia.Audio.Core
864
865**参数:**
866
867| 参数名 | 类型   | 必填 | 说明                   |
868| ------ | ------ | ---- | ---------------------- |
869| key    | string | 是   | 被设置的音频参数的键。 |
870| value  | string | 是   | 被设置的音频参数的值。 |
871
872**返回值:**
873
874| 类型                | 说明                            |
875| ------------------- | ------------------------------- |
876| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
877
878**示例:**
879
880```js
881audioManager.setAudioParameter('key_example', 'value_example').then(() => {
882  console.info('Promise returned to indicate a successful setting of the audio parameter.');
883});
884```
885
886### getAudioParameter
887
888getAudioParameter(key: string, callback: AsyncCallback&lt;string&gt;): void
889
890获取指定音频参数值,使用callback方式异步返回结果。
891
892本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
893
894**系统能力:** SystemCapability.Multimedia.Audio.Core
895
896**参数:**
897
898| 参数名   | 类型                        | 必填 | 说明                         |
899| -------- | --------------------------- | ---- | ---------------------------- |
900| key      | string                      | 是   | 待获取的音频参数的键。       |
901| callback | AsyncCallback&lt;string&gt; | 是   | 回调返回获取的音频参数的值。 |
902
903**示例:**
904
905```js
906audioManager.getAudioParameter('key_example', (err, value) => {
907  if (err) {
908    console.error(`Failed to obtain the value of the audio parameter. ${err}`);
909    return;
910  }
911  console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
912});
913```
914
915### getAudioParameter
916
917getAudioParameter(key: string): Promise&lt;string&gt;
918
919获取指定音频参数值,使用Promise方式异步返回结果。
920
921本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
922
923**系统能力:** SystemCapability.Multimedia.Audio.Core
924
925**参数:**
926
927| 参数名 | 类型   | 必填 | 说明                   |
928| ------ | ------ | ---- | ---------------------- |
929| key    | string | 是   | 待获取的音频参数的键。 |
930
931**返回值:**
932
933| 类型                  | 说明                                |
934| --------------------- | ----------------------------------- |
935| Promise&lt;string&gt; | Promise回调返回获取的音频参数的值。 |
936
937**示例:**
938
939```js
940audioManager.getAudioParameter('key_example').then((value) => {
941  console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
942});
943```
944
945### setAudioScene<sup>8+</sup>
946
947setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void
948
949设置音频场景模式,使用callback方式异步返回结果。
950
951**系统接口:** 该接口为系统接口
952
953**系统能力:** SystemCapability.Multimedia.Audio.Communication
954
955**参数:**
956
957| 参数名   | 类型                                 | 必填 | 说明                 |
958| :------- | :----------------------------------- | :--- | :------------------- |
959| scene    | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。       |
960| callback | AsyncCallback<void\>                 | 是   | 用于返回结果的回调。 |
961
962**示例:**
963
964```js
965audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
966  if (err) {
967    console.error(`Failed to set the audio scene mode.​ ${err}`);
968    return;
969  }
970  console.info('Callback invoked to indicate a successful setting of the audio scene mode.');
971});
972```
973
974### setAudioScene<sup>8+</sup>
975
976setAudioScene\(scene: AudioScene\): Promise<void\>
977
978设置音频场景模式,使用Promise方式返回异步结果。
979
980**系统接口:** 该接口为系统接口
981
982**系统能力:** SystemCapability.Multimedia.Audio.Communication
983
984**参数:**
985
986| 参数名 | 类型                                 | 必填 | 说明           |
987| :----- | :----------------------------------- | :--- | :------------- |
988| scene  | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。 |
989
990**返回值:**
991
992| 类型           | 说明                 |
993| :------------- | :------------------- |
994| Promise<void\> | 用于返回结果的回调。 |
995
996**示例:**
997
998```js
999audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
1000  console.info('Promise returned to indicate a successful setting of the audio scene mode.');
1001}).catch ((err) => {
1002  console.error(`Failed to set the audio scene mode ${err}`);
1003});
1004```
1005
1006### getAudioScene<sup>8+</sup>
1007
1008getAudioScene\(callback: AsyncCallback<AudioScene\>\): void
1009
1010获取音频场景模式,使用callback方式返回异步结果。
1011
1012**系统能力:** SystemCapability.Multimedia.Audio.Communication
1013
1014**参数:**
1015
1016| 参数名   | 类型                                                | 必填 | 说明                         |
1017| :------- | :-------------------------------------------------- | :--- | :--------------------------- |
1018| callback | AsyncCallback<<a href="#audioscene">AudioScene</a>> | 是   | 用于返回音频场景模式的回调。 |
1019
1020**示例:**
1021
1022```js
1023audioManager.getAudioScene((err, value) => {
1024  if (err) {
1025    console.error(`Failed to obtain the audio scene mode.​ ${err}`);
1026    return;
1027  }
1028  console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
1029});
1030```
1031
1032### getAudioScene<sup>8+</sup>
1033
1034getAudioScene\(\): Promise<AudioScene\>
1035
1036获取音频场景模式,使用Promise方式返回异步结果。
1037
1038**系统能力:** SystemCapability.Multimedia.Audio.Communication
1039
1040**返回值:**
1041
1042| 类型                                          | 说明                         |
1043| :-------------------------------------------- | :--------------------------- |
1044| Promise<<a href="#audioscene">AudioScene</a>> | 用于返回音频场景模式的回调。 |
1045
1046**示例:**
1047
1048```js
1049audioManager.getAudioScene().then((value) => {
1050  console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
1051}).catch ((err) => {
1052  console.error(`Failed to obtain the audio scene mode ${err}`);
1053});
1054```
1055
1056### getVolumeManager<sup>9+</sup>
1057
1058getVolumeManager(): AudioVolumeManager
1059
1060获取音频音量管理器。
1061
1062**系统能力:** SystemCapability.Multimedia.Audio.Volume
1063
1064**示例:**
1065
1066```js
1067let audioVolumeManager = audioManager.getVolumeManager();
1068```
1069
1070### getStreamManager<sup>9+</sup>
1071
1072getStreamManager(): AudioStreamManager
1073
1074获取音频流管理器。
1075
1076**系统能力:** SystemCapability.Multimedia.Audio.Core
1077
1078**示例:**
1079
1080```js
1081let audioStreamManager = audioManager.getStreamManager();
1082```
1083
1084### getRoutingManager<sup>9+</sup>
1085
1086getRoutingManager(): AudioRoutingManager
1087
1088获取音频路由设备管理器。
1089
1090**系统能力:** SystemCapability.Multimedia.Audio.Device
1091
1092**示例:**
1093
1094```js
1095let audioRoutingManager = audioManager.getRoutingManager();
1096```
1097
1098### setVolume<sup>(deprecated)</sup>
1099
1100setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
1101
1102设置指定流的音量,使用callback方式异步返回结果。
1103
1104> **说明:**
1105> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1106
1107**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1108
1109仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
1110
1111**系统能力:** SystemCapability.Multimedia.Audio.Volume
1112
1113**参数:**
1114
1115| 参数名     | 类型                                | 必填 | 说明                                                     |
1116| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
1117| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
1118| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
1119| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
1120
1121**示例:**
1122
1123```js
1124audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
1125  if (err) {
1126    console.error(`Failed to set the volume. ${err}`);
1127    return;
1128  }
1129  console.info('Callback invoked to indicate a successful volume setting.');
1130});
1131```
1132
1133### setVolume<sup>(deprecated)</sup>
1134
1135setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
1136
1137设置指定流的音量,使用Promise方式异步返回结果。
1138
1139> **说明:**
1140> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1141
1142**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1143
1144仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
1145
1146**系统能力:** SystemCapability.Multimedia.Audio.Volume
1147
1148**参数:**
1149
1150| 参数名     | 类型                                | 必填 | 说明                                                     |
1151| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
1152| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
1153| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
1154
1155**返回值:**
1156
1157| 类型                | 说明                          |
1158| ------------------- | ----------------------------- |
1159| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1160
1161**示例:**
1162
1163```js
1164audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
1165  console.info('Promise returned to indicate a successful volume setting.');
1166});
1167```
1168
1169### getVolume<sup>(deprecated)</sup>
1170
1171getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1172
1173获取指定流的音量,使用callback方式异步返回结果。
1174
1175> **说明:**
1176> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
1177
1178**系统能力:** SystemCapability.Multimedia.Audio.Volume
1179
1180**参数:**
1181
1182| 参数名     | 类型                                | 必填 | 说明               |
1183| ---------- | ----------------------------------- | ---- | ------------------ |
1184| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
1185| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
1186
1187**示例:**
1188
1189```js
1190audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
1191  if (err) {
1192    console.error(`Failed to obtain the volume. ${err}`);
1193    return;
1194  }
1195  console.info('Callback invoked to indicate that the volume is obtained.');
1196});
1197```
1198
1199### getVolume<sup>(deprecated)</sup>
1200
1201getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1202
1203获取指定流的音量,使用Promise方式异步返回结果。
1204
1205> **说明:**
1206> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
1207
1208**系统能力:** SystemCapability.Multimedia.Audio.Volume
1209
1210**参数:**
1211
1212| 参数名     | 类型                                | 必填 | 说明         |
1213| ---------- | ----------------------------------- | ---- | ------------ |
1214| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1215
1216**返回值:**
1217
1218| 类型                  | 说明                      |
1219| --------------------- | ------------------------- |
1220| Promise&lt;number&gt; | Promise回调返回音量大小。 |
1221
1222**示例:**
1223
1224```js
1225audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
1226  console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
1227});
1228```
1229
1230### getMinVolume<sup>(deprecated)</sup>
1231
1232getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1233
1234获取指定流的最小音量,使用callback方式异步返回结果。
1235
1236> **说明:**
1237> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
1238
1239**系统能力:** SystemCapability.Multimedia.Audio.Volume
1240
1241**参数:**
1242
1243| 参数名     | 类型                                | 必填 | 说明               |
1244| ---------- | ----------------------------------- | ---- | ------------------ |
1245| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
1246| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
1247
1248**示例:**
1249
1250```js
1251audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
1252  if (err) {
1253    console.error(`Failed to obtain the minimum volume. ${err}`);
1254    return;
1255  }
1256  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
1257});
1258```
1259
1260### getMinVolume<sup>(deprecated)</sup>
1261
1262getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1263
1264获取指定流的最小音量,使用Promise方式异步返回结果。
1265
1266> **说明:**
1267> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
1268
1269**系统能力:** SystemCapability.Multimedia.Audio.Volume
1270
1271**参数:**
1272
1273| 参数名     | 类型                                | 必填 | 说明         |
1274| ---------- | ----------------------------------- | ---- | ------------ |
1275| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1276
1277**返回值:**
1278
1279| 类型                  | 说明                      |
1280| --------------------- | ------------------------- |
1281| Promise&lt;number&gt; | Promise回调返回最小音量。 |
1282
1283**示例:**
1284
1285```js
1286audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
1287  console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
1288});
1289```
1290
1291### getMaxVolume<sup>(deprecated)</sup>
1292
1293getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1294
1295获取指定流的最大音量,使用callback方式异步返回结果。
1296
1297> **说明:**
1298> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
1299
1300**系统能力:** SystemCapability.Multimedia.Audio.Volume
1301
1302**参数:**
1303
1304| 参数名     | 类型                                | 必填 | 说明                   |
1305| ---------- | ----------------------------------- | ---- | ---------------------- |
1306| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
1307| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
1308
1309**示例:**
1310
1311```js
1312audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
1313  if (err) {
1314    console.error(`Failed to obtain the maximum volume. ${err}`);
1315    return;
1316  }
1317  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
1318});
1319```
1320
1321### getMaxVolume<sup>(deprecated)</sup>
1322
1323getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1324
1325获取指定流的最大音量,使用Promise方式异步返回结果。
1326
1327> **说明:**
1328> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
1329
1330**系统能力:** SystemCapability.Multimedia.Audio.Volume
1331
1332**参数:**
1333
1334| 参数名     | 类型                                | 必填 | 说明         |
1335| ---------- | ----------------------------------- | ---- | ------------ |
1336| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1337
1338**返回值:**
1339
1340| 类型                  | 说明                          |
1341| --------------------- | ----------------------------- |
1342| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
1343
1344**示例:**
1345
1346```js
1347audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
1348  console.info('Promised returned to indicate that the maximum volume is obtained.');
1349});
1350```
1351
1352### mute<sup>(deprecated)</sup>
1353
1354mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1355
1356设置指定音量流静音,使用callback方式异步返回结果。
1357
1358> **说明:**
1359> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1360
1361**系统能力:** SystemCapability.Multimedia.Audio.Volume
1362
1363**参数:**
1364
1365| 参数名     | 类型                                | 必填 | 说明                                  |
1366| ---------- | ----------------------------------- | ---- | ------------------------------------- |
1367| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
1368| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
1369| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
1370
1371**示例:**
1372
1373```js
1374audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
1375  if (err) {
1376    console.error(`Failed to mute the stream. ${err}`);
1377    return;
1378  }
1379  console.info('Callback invoked to indicate that the stream is muted.');
1380});
1381```
1382
1383### mute<sup>(deprecated)</sup>
1384
1385mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
1386
1387设置指定音量流静音,使用Promise方式异步返回结果。
1388
1389> **说明:**
1390> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1391
1392**系统能力:** SystemCapability.Multimedia.Audio.Volume
1393
1394**参数:**
1395
1396| 参数名     | 类型                                | 必填 | 说明                                  |
1397| ---------- | ----------------------------------- | ---- | ------------------------------------- |
1398| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
1399| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
1400
1401**返回值:**
1402
1403| 类型                | 说明                          |
1404| ------------------- | ----------------------------- |
1405| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1406
1407**示例:**
1408
1409
1410```js
1411audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
1412  console.info('Promise returned to indicate that the stream is muted.');
1413});
1414```
1415
1416### isMute<sup>(deprecated)</sup>
1417
1418isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
1419
1420获取指定音量流是否被静音,使用callback方式异步返回结果。
1421
1422> **说明:**
1423> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
1424
1425**系统能力:** SystemCapability.Multimedia.Audio.Volume
1426
1427**参数:**
1428
1429| 参数名     | 类型                                | 必填 | 说明                                            |
1430| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
1431| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
1432| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
1433
1434**示例:**
1435
1436```js
1437audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
1438  if (err) {
1439    console.error(`Failed to obtain the mute status. ${err}`);
1440    return;
1441  }
1442  console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
1443});
1444```
1445
1446### isMute<sup>(deprecated)</sup>
1447
1448isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
1449
1450获取指定音量流是否被静音,使用Promise方式异步返回结果。
1451
1452> **说明:**
1453> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
1454
1455**系统能力:** SystemCapability.Multimedia.Audio.Volume
1456
1457**参数:**
1458
1459| 参数名     | 类型                                | 必填 | 说明         |
1460| ---------- | ----------------------------------- | ---- | ------------ |
1461| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1462
1463**返回值:**
1464
1465| 类型                   | 说明                                                   |
1466| ---------------------- | ------------------------------------------------------ |
1467| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
1468
1469**示例:**
1470
1471```js
1472audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
1473  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
1474});
1475```
1476
1477### isActive<sup>(deprecated)</sup>
1478
1479isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
1480
1481获取指定音量流是否为活跃状态,使用callback方式异步返回结果。
1482
1483> **说明:**
1484> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
1485
1486**系统能力:** SystemCapability.Multimedia.Audio.Volume
1487
1488**参数:**
1489
1490| 参数名     | 类型                                | 必填 | 说明                                              |
1491| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
1492| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                      |
1493| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
1494
1495**示例:**
1496
1497```js
1498audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
1499  if (err) {
1500    console.error(`Failed to obtain the active status of the stream. ${err}`);
1501    return;
1502  }
1503  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
1504});
1505```
1506
1507### isActive<sup>(deprecated)</sup>
1508
1509isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
1510
1511获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。
1512
1513> **说明:**
1514> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
1515
1516**系统能力:** SystemCapability.Multimedia.Audio.Volume
1517
1518**参数:**
1519
1520| 参数名     | 类型                                | 必填 | 说明         |
1521| ---------- | ----------------------------------- | ---- | ------------ |
1522| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1523
1524**返回值:**
1525
1526| 类型                   | 说明                                                     |
1527| ---------------------- | -------------------------------------------------------- |
1528| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
1529
1530**示例:**
1531
1532```js
1533audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
1534  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
1535});
1536```
1537
1538### setRingerMode<sup>(deprecated)</sup>
1539
1540setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
1541
1542设置铃声模式,使用callback方式异步返回结果。
1543
1544> **说明:**
1545> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。
1546
1547**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1548
1549仅在静音和非静音状态切换时需要该权限。
1550
1551**系统能力:** SystemCapability.Multimedia.Audio.Communication
1552
1553**参数:**
1554
1555| 参数名   | 类型                            | 必填 | 说明                     |
1556| -------- | ------------------------------- | ---- | ------------------------ |
1557| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
1558| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
1559
1560**示例:**
1561
1562```js
1563audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
1564  if (err) {
1565    console.error(`Failed to set the ringer mode.​ ${err}`);
1566    return;
1567  }
1568  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
1569});
1570```
1571
1572### setRingerMode<sup>(deprecated)</sup>
1573
1574setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
1575
1576设置铃声模式,使用Promise方式异步返回结果。
1577
1578> **说明:**
1579> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。
1580
1581**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1582
1583仅在静音和非静音状态切换时需要该权限。
1584
1585**系统能力:** SystemCapability.Multimedia.Audio.Communication
1586
1587**参数:**
1588
1589| 参数名 | 类型                            | 必填 | 说明           |
1590| ------ | ------------------------------- | ---- | -------------- |
1591| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
1592
1593**返回值:**
1594
1595| 类型                | 说明                            |
1596| ------------------- | ------------------------------- |
1597| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1598
1599**示例:**
1600
1601```js
1602audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
1603  console.info('Promise returned to indicate a successful setting of the ringer mode.');
1604});
1605```
1606
1607### getRingerMode<sup>(deprecated)</sup>
1608
1609getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
1610
1611获取铃声模式,使用callback方式异步返回结果。
1612
1613> **说明:**
1614> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
1615
1616**系统能力:** SystemCapability.Multimedia.Audio.Communication
1617
1618**参数:**
1619
1620| 参数名   | 类型                                                 | 必填 | 说明                     |
1621| -------- | ---------------------------------------------------- | ---- | ------------------------ |
1622| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
1623
1624**示例:**
1625
1626```js
1627audioManager.getRingerMode((err, value) => {
1628  if (err) {
1629    console.error(`Failed to obtain the ringer mode.​ ${err}`);
1630    return;
1631  }
1632  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
1633});
1634```
1635
1636### getRingerMode<sup>(deprecated)</sup>
1637
1638getRingerMode(): Promise&lt;AudioRingMode&gt;
1639
1640获取铃声模式,使用Promise方式异步返回结果。
1641
1642> **说明:**
1643> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
1644
1645**系统能力:** SystemCapability.Multimedia.Audio.Communication
1646
1647**返回值:**
1648
1649| 类型                                           | 说明                            |
1650| ---------------------------------------------- | ------------------------------- |
1651| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
1652
1653**示例:**
1654
1655```js
1656audioManager.getRingerMode().then((value) => {
1657  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
1658});
1659```
1660
1661### getDevices<sup>(deprecated)</sup>
1662
1663getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
1664
1665获取音频设备列表,使用callback方式异步返回结果。
1666
1667> **说明:**
1668> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
1669
1670**系统能力:** SystemCapability.Multimedia.Audio.Device
1671
1672**参数:**
1673
1674| 参数名     | 类型                                                         | 必填 | 说明                 |
1675| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
1676| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
1677| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
1678
1679**示例:**
1680```js
1681audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
1682  if (err) {
1683    console.error(`Failed to obtain the device list. ${err}`);
1684    return;
1685  }
1686  console.info('Callback invoked to indicate that the device list is obtained.');
1687});
1688```
1689
1690### getDevices<sup>(deprecated)</sup>
1691
1692getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
1693
1694获取音频设备列表,使用Promise方式异步返回结果。
1695
1696> **说明:**
1697> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
1698
1699**系统能力:** SystemCapability.Multimedia.Audio.Device
1700
1701**参数:**
1702
1703| 参数名     | 类型                      | 必填 | 说明             |
1704| ---------- | ------------------------- | ---- | ---------------- |
1705| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
1706
1707**返回值:**
1708
1709| 类型                                                         | 说明                      |
1710| ------------------------------------------------------------ | ------------------------- |
1711| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
1712
1713**示例:**
1714
1715```js
1716audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
1717  console.info('Promise returned to indicate that the device list is obtained.');
1718});
1719```
1720
1721### setDeviceActive<sup>(deprecated)</sup>
1722
1723setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
1724
1725设置设备激活状态,使用callback方式异步返回结果。
1726
1727> **说明:**
1728> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
1729
1730**系统能力:** SystemCapability.Multimedia.Audio.Device
1731
1732**参数:**
1733
1734| 参数名     | 类型                                  | 必填 | 说明                     |
1735| ---------- | ------------------------------------- | ---- | ------------------------ |
1736| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
1737| active     | boolean                               | 是   | 设备激活状态。           |
1738| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
1739
1740**示例:**
1741
1742```js
1743audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
1744  if (err) {
1745    console.error(`Failed to set the active status of the device. ${err}`);
1746    return;
1747  }
1748  console.info('Callback invoked to indicate that the device is set to the active status.');
1749});
1750```
1751
1752### setDeviceActive<sup>(deprecated)</sup>
1753
1754setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise&lt;void&gt;
1755
1756设置设备激活状态,使用Promise方式异步返回结果。
1757
1758> **说明:**
1759> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
1760
1761**系统能力:** SystemCapability.Multimedia.Audio.Device
1762
1763**参数:**
1764
1765| 参数名     | 类型                                  | 必填 | 说明               |
1766| ---------- | ------------------------------------- | ---- | ------------------ |
1767| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
1768| active     | boolean                               | 是   | 设备激活状态。     |
1769
1770**返回值:**
1771
1772| 类型                | 说明                            |
1773| ------------------- | ------------------------------- |
1774| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1775
1776**示例:**
1777
1778
1779```js
1780audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
1781  console.info('Promise returned to indicate that the device is set to the active status.');
1782});
1783```
1784
1785### isDeviceActive<sup>(deprecated)</sup>
1786
1787isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
1788
1789获取指定设备的激活状态,使用callback方式异步返回结果。
1790
1791> **说明:**
1792> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
1793
1794**系统能力:** SystemCapability.Multimedia.Audio.Device
1795
1796**参数:**
1797
1798| 参数名     | 类型                                  | 必填 | 说明                     |
1799| ---------- | ------------------------------------- | ---- | ------------------------ |
1800| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
1801| callback   | AsyncCallback&lt;boolean&gt;          | 是   | 回调返回设备的激活状态。 |
1802
1803**示例:**
1804
1805```js
1806audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
1807  if (err) {
1808    console.error(`Failed to obtain the active status of the device. ${err}`);
1809    return;
1810  }
1811  console.info('Callback invoked to indicate that the active status of the device is obtained.');
1812});
1813```
1814
1815### isDeviceActive<sup>(deprecated)</sup>
1816
1817isDeviceActive(deviceType: ActiveDeviceType): Promise&lt;boolean&gt;
1818
1819获取指定设备的激活状态,使用Promise方式异步返回结果。
1820
1821> **说明:**
1822> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
1823
1824**系统能力:** SystemCapability.Multimedia.Audio.Device
1825
1826**参数:**
1827
1828| 参数名     | 类型                                  | 必填 | 说明               |
1829| ---------- | ------------------------------------- | ---- | ------------------ |
1830| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
1831
1832**返回值:**
1833
1834| Type                   | Description                     |
1835| ---------------------- | ------------------------------- |
1836| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
1837
1838**示例:**
1839
1840```js
1841audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
1842  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
1843});
1844```
1845
1846### setMicrophoneMute<sup>(deprecated)</sup>
1847
1848setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1849
1850设置麦克风静音状态,使用callback方式异步返回结果。
1851
1852> **说明:**
1853> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
1854
1855**需要权限:** ohos.permission.MICROPHONE
1856
1857**系统能力:** SystemCapability.Multimedia.Audio.Device
1858
1859**参数:**
1860
1861| 参数名   | 类型                      | 必填 | 说明                                          |
1862| -------- | ------------------------- | ---- | --------------------------------------------- |
1863| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
1864| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
1865
1866**示例:**
1867
1868```js
1869audioManager.setMicrophoneMute(true, (err) => {
1870  if (err) {
1871    console.error(`Failed to mute the microphone. ${err}`);
1872    return;
1873  }
1874  console.info('Callback invoked to indicate that the microphone is muted.');
1875});
1876```
1877
1878### setMicrophoneMute<sup>(deprecated)</sup>
1879
1880setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
1881
1882设置麦克风静音状态,使用Promise方式异步返回结果。
1883
1884> **说明:**
1885> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
1886
1887**需要权限:** ohos.permission.MICROPHONE
1888
1889**系统能力:** SystemCapability.Multimedia.Audio.Device
1890
1891**参数:**
1892
1893| 参数名 | 类型    | 必填 | 说明                                          |
1894| ------ | ------- | ---- | --------------------------------------------- |
1895| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |
1896
1897**返回值:**
1898
1899| 类型                | 说明                            |
1900| ------------------- | ------------------------------- |
1901| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1902
1903**示例:**
1904
1905```js
1906audioManager.setMicrophoneMute(true).then(() => {
1907  console.info('Promise returned to indicate that the microphone is muted.');
1908});
1909```
1910
1911### isMicrophoneMute<sup>(deprecated)</sup>
1912
1913isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
1914
1915获取麦克风静音状态,使用callback方式异步返回结果。
1916
1917> **说明:**
1918> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
1919
1920**需要权限:** ohos.permission.MICROPHONE
1921
1922**系统能力:** SystemCapability.Multimedia.Audio.Device
1923
1924**参数:**
1925
1926| 参数名   | 类型                         | 必填 | 说明                                                    |
1927| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
1928| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
1929
1930**示例:**
1931
1932```js
1933audioManager.isMicrophoneMute((err, value) => {
1934  if (err) {
1935    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
1936    return;
1937  }
1938  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
1939});
1940```
1941
1942### isMicrophoneMute<sup>(deprecated)</sup>
1943
1944isMicrophoneMute(): Promise&lt;boolean&gt;
1945
1946获取麦克风静音状态,使用Promise方式异步返回结果。
1947
1948> **说明:**
1949> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
1950
1951**需要权限:** ohos.permission.MICROPHONE
1952
1953**系统能力:** SystemCapability.Multimedia.Audio.Device
1954
1955**返回值:**
1956
1957| 类型                   | 说明                                                         |
1958| ---------------------- | ------------------------------------------------------------ |
1959| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
1960
1961**示例:**
1962
1963```js
1964audioManager.isMicrophoneMute().then((value) => {
1965  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
1966});
1967```
1968
1969### on('volumeChange')<sup>9+</sup>
1970
1971on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
1972
1973> **说明:**
1974> 建议使用AudioVolumeManager中的[on](#on9)替代。
1975
1976监听系统音量变化事件。
1977
1978**系统接口:** 该接口为系统接口
1979
1980目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
1981
1982**系统能力:** SystemCapability.Multimedia.Audio.Volume
1983
1984**参数:**
1985
1986| 参数名   | 类型                                   | 必填 | 说明                                                         |
1987| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
1988| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'(系统音量变化事件,检测到系统音量改变时,触发该事件)。 |
1989| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
1990
1991**示例:**
1992
1993```js
1994audioManager.on('volumeChange', (volumeEvent) => {
1995  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
1996  console.info(`Volume level: ${volumeEvent.volume} `);
1997  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
1998});
1999```
2000
2001### on('ringerModeChange')<sup>(deprecated)</sup>
2002
2003on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
2004
2005监听铃声模式变化事件。
2006
2007> **说明:**
2008> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[on('ringerModeChange')](#onringermodechange9)替代。
2009
2010**系统接口:** 该接口为系统接口
2011
2012**系统能力:** SystemCapability.Multimedia.Audio.Communication
2013
2014**参数:**
2015
2016| 参数名   | 类型                                      | 必填 | 说明                                                         |
2017| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
2018| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
2019| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |
2020
2021**示例:**
2022
2023```js
2024audioManager.on('ringerModeChange', (ringerMode) => {
2025  console.info(`Updated ringermode: ${ringerMode}`);
2026});
2027```
2028
2029### on('deviceChange')<sup>(deprecated)</sup>
2030
2031on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void
2032
2033设备更改。音频设备连接状态变化。
2034
2035> **说明:**
2036> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[on](#on9)替代。
2037
2038**系统能力:** SystemCapability.Multimedia.Audio.Device
2039
2040**参数:**
2041
2042| 参数名   | 类型                                                 | 必填 | 说明                                       |
2043| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
2044| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
2045| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
2046
2047**示例:**
2048
2049```js
2050audioManager.on('deviceChange', (deviceChanged) => {
2051  console.info(`device change type : ${deviceChanged.type} `);
2052  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
2053  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
2054  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
2055});
2056```
2057
2058### off('deviceChange')<sup>(deprecated)</sup>
2059
2060off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
2061
2062取消订阅音频设备连接变化事件。
2063
2064> **说明:**
2065> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[off](#off9)替代。
2066
2067**系统能力:** SystemCapability.Multimedia.Audio.Device
2068
2069**参数:**
2070
2071| 参数名   | 类型                                                | 必填 | 说明                                       |
2072| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
2073| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
2074| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
2075
2076**示例:**
2077
2078```js
2079audioManager.off('deviceChange', (deviceChanged) => {
2080  console.info('Should be no callback.');
2081});
2082```
2083
2084### on('interrupt')
2085
2086on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void
2087
2088请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。
2089
2090与[on('audioInterrupt')](#onaudiointerrupt9)作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。
2091
2092**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2093
2094**参数:**
2095
2096| 参数名    | 类型                                          | 必填 | 说明                                                         |
2097| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
2098| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
2099| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
2100| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 是   | 音频打断事件回调方法。                                       |
2101
2102**示例:**
2103
2104```js
2105let interAudioInterrupt = {
2106  streamUsage:2,
2107  contentType:0,
2108  pauseWhenDucked:true
2109};
2110audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
2111  if (InterruptAction.actionType === 0) {
2112    console.info('An event to gain the audio focus starts.');
2113    console.info(`Focus gain event: ${InterruptAction} `);
2114  }
2115  if (InterruptAction.actionType === 1) {
2116    console.info('An audio interruption event starts.');
2117    console.info(`Audio interruption event: ${InterruptAction} `);
2118  }
2119});
2120```
2121
2122### off('interrupt')
2123
2124off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<InterruptAction>): void
2125
2126取消监听音频打断事件(删除监听事件,取消打断)。
2127
2128**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2129
2130**参数:**
2131
2132| 参数名    | 类型                                          | 必填 | 说明                                                         |
2133| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
2134| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
2135| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
2136| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 否   | 音频打断事件回调方法。                                       |
2137
2138**示例:**
2139
2140```js
2141let interAudioInterrupt = {
2142  streamUsage:2,
2143  contentType:0,
2144  pauseWhenDucked:true
2145};
2146audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
2147  if (InterruptAction.actionType === 0) {
2148      console.info('An event to release the audio focus starts.');
2149      console.info(`Focus release event: ${InterruptAction} `);
2150  }
2151});
2152```
2153
2154## AudioVolumeManager<sup>9+</sup>
2155
2156音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getvolumemanager9)获取AudioVolumeManager实例。
2157
2158### getVolumeGroupInfos<sup>9+</sup>
2159
2160getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos\>\): void
2161
2162获取音量组信息列表,使用callback方式异步返回结果。
2163
2164**系统接口:** 该接口为系统接口
2165
2166**系统能力:** SystemCapability.Multimedia.Audio.Volume
2167
2168**参数:**
2169
2170| 参数名     | 类型                                                         | 必填 | 说明                 |
2171| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
2172| networkId | string                                    | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。    |
2173| callback  | AsyncCallback&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 是   | 回调,返回音量组信息列表。 |
2174
2175**示例:**
2176```js
2177audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err, value) => {
2178  if (err) {
2179    console.error(`Failed to obtain the volume group infos list. ${err}`);
2180    return;
2181  }
2182  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2183});
2184```
2185
2186### getVolumeGroupInfos<sup>9+</sup>
2187
2188getVolumeGroupInfos(networkId: string\): Promise<VolumeGroupInfos\>
2189
2190获取音量组信息列表,使用promise方式异步返回结果。
2191
2192**系统接口:** 该接口为系统接口
2193
2194**系统能力:** SystemCapability.Multimedia.Audio.Volume
2195
2196**参数:**
2197
2198| 参数名     | 类型               | 必填 | 说明                 |
2199| ---------- | ------------------| ---- | -------------------- |
2200| networkId | string             | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。   |
2201
2202**返回值:**
2203
2204| 类型                | 说明                          |
2205| ------------------- | ----------------------------- |
2206| Promise&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 音量组信息列表。 |
2207
2208**示例:**
2209
2210```js
2211async function getVolumeGroupInfos(){
2212  let volumegroupinfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
2213  console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
2214}
2215```
2216
2217### getVolumeGroupManager<sup>9+</sup>
2218
2219getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void
2220
2221获取音频组管理器,使用callback方式异步返回结果。
2222
2223**系统能力:** SystemCapability.Multimedia.Audio.Volume
2224
2225**参数:**
2226
2227| 参数名     | 类型                                                         | 必填 | 说明                 |
2228| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
2229| groupId    | number                                    | 是   | 音量组id。     |
2230| callback   | AsyncCallback&lt;[AudioVolumeGroupManager](#audiovolumegroupmanager9)&gt; | 是   | 回调,返回一个音量组实例。 |
2231
2232**示例:**
2233
2234```js
2235let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
2236audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
2237  if (err) {
2238    console.error(`Failed to obtain the volume group infos list. ${err}`);
2239    return;
2240  }
2241  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2242});
2243
2244```
2245
2246### getVolumeGroupManager<sup>9+</sup>
2247
2248getVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\>
2249
2250获取音频组管理器,使用promise方式异步返回结果。
2251
2252**系统能力:** SystemCapability.Multimedia.Audio.Volume
2253
2254**参数:**
2255
2256| 参数名     | 类型                                      | 必填 | 说明              |
2257| ---------- | ---------------------------------------- | ---- | ---------------- |
2258| groupId    | number                                   | 是   | 音量组id。     |
2259
2260**返回值:**
2261
2262| 类型                | 说明                          |
2263| ------------------- | ----------------------------- |
2264| Promise&lt; [AudioVolumeGroupManager](#audiovolumegroupmanager9) &gt; | 音量组实例。 |
2265
2266**示例:**
2267
2268```js
2269let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
2270let audioVolumeGroupManager;
2271getVolumeGroupManager();
2272async function getVolumeGroupManager(){
2273  audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
2274  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2275}
2276
2277```
2278
2279### on('volumeChange')<sup>9+</sup>
2280
2281on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
2282
2283监听系统音量变化事件,使用callback方式异步返回结果。
2284
2285**系统能力:** SystemCapability.Multimedia.Audio.Volume
2286
2287**参数:**
2288
2289| 参数名   | 类型                                   | 必填 | 说明                                                         |
2290| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
2291| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'。 |
2292| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
2293
2294**错误码:**
2295
2296以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2297
2298| 错误码ID | 错误信息 |
2299| ------- | --------------------------------------------|
2300| 6800101 | if input parameter value error              |
2301
2302**示例:**
2303
2304```js
2305audioVolumeManager.on('volumeChange', (volumeEvent) => {
2306  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
2307  console.info(`Volume level: ${volumeEvent.volume} `);
2308  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
2309});
2310```
2311
2312## AudioVolumeGroupManager<sup>9+</sup>
2313
2314管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。
2315
2316### setVolume<sup>9+</sup>
2317
2318setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
2319
2320设置指定流的音量,使用callback方式异步返回结果。
2321
2322**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2323
2324仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2325
2326**系统接口:** 该接口为系统接口
2327
2328**系统能力:** SystemCapability.Multimedia.Audio.Volume
2329
2330**参数:**
2331
2332| 参数名     | 类型                                | 必填 | 说明                                                     |
2333| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
2334| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
2335| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
2336| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
2337
2338**示例:**
2339
2340```js
2341audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
2342  if (err) {
2343    console.error(`Failed to set the volume. ${err}`);
2344    return;
2345  }
2346  console.info('Callback invoked to indicate a successful volume setting.');
2347});
2348```
2349
2350### setVolume<sup>9+</sup>
2351
2352setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
2353
2354设置指定流的音量,使用Promise方式异步返回结果。
2355
2356**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2357
2358仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2359
2360**系统接口:** 该接口为系统接口
2361
2362**系统能力:** SystemCapability.Multimedia.Audio.Volume
2363
2364**参数:**
2365
2366| 参数名     | 类型                                | 必填 | 说明                                                     |
2367| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
2368| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
2369| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
2370
2371**返回值:**
2372
2373| 类型                | 说明                          |
2374| ------------------- | ----------------------------- |
2375| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
2376
2377**示例:**
2378
2379```js
2380audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
2381  console.info('Promise returned to indicate a successful volume setting.');
2382});
2383```
2384
2385### getVolume<sup>9+</sup>
2386
2387getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2388
2389获取指定流的音量,使用callback方式异步返回结果。
2390
2391**系统能力:** SystemCapability.Multimedia.Audio.Volume
2392
2393**参数:**
2394
2395| 参数名     | 类型                                | 必填 | 说明               |
2396| ---------- | ----------------------------------- | ---- | ------------------ |
2397| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
2398| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
2399
2400**示例:**
2401
2402```js
2403audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
2404  if (err) {
2405    console.error(`Failed to obtain the volume. ${err}`);
2406    return;
2407  }
2408  console.info('Callback invoked to indicate that the volume is obtained.');
2409});
2410```
2411
2412### getVolume<sup>9+</sup>
2413
2414getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2415
2416获取指定流的音量,使用Promise方式异步返回结果。
2417
2418**系统能力:** SystemCapability.Multimedia.Audio.Volume
2419
2420**参数:**
2421
2422| 参数名     | 类型                                | 必填 | 说明         |
2423| ---------- | ----------------------------------- | ---- | ------------ |
2424| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2425
2426**返回值:**
2427
2428| 类型                  | 说明                      |
2429| --------------------- | ------------------------- |
2430| Promise&lt;number&gt; | Promise回调返回音量大小。 |
2431
2432**示例:**
2433
2434```js
2435audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
2436  console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
2437});
2438```
2439
2440### getMinVolume<sup>9+</sup>
2441
2442getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2443
2444获取指定流的最小音量,使用callback方式异步返回结果。
2445
2446**系统能力:** SystemCapability.Multimedia.Audio.Volume
2447
2448**参数:**
2449
2450| 参数名     | 类型                                | 必填 | 说明               |
2451| ---------- | ----------------------------------- | ---- | ------------------ |
2452| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
2453| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
2454
2455**示例:**
2456
2457```js
2458audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
2459  if (err) {
2460    console.error(`Failed to obtain the minimum volume. ${err}`);
2461    return;
2462  }
2463  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
2464});
2465```
2466
2467### getMinVolume<sup>9+</sup>
2468
2469getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2470
2471获取指定流的最小音量,使用Promise方式异步返回结果。
2472
2473**系统能力:** SystemCapability.Multimedia.Audio.Volume
2474
2475**参数:**
2476
2477| 参数名     | 类型                                | 必填 | 说明         |
2478| ---------- | ----------------------------------- | ---- | ------------ |
2479| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2480
2481**返回值:**
2482
2483| 类型                  | 说明                      |
2484| --------------------- | ------------------------- |
2485| Promise&lt;number&gt; | Promise回调返回最小音量。 |
2486
2487**示例:**
2488
2489```js
2490audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
2491  console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
2492});
2493```
2494
2495### getMaxVolume<sup>9+</sup>
2496
2497getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2498
2499获取指定流的最大音量,使用callback方式异步返回结果。
2500
2501**系统能力:** SystemCapability.Multimedia.Audio.Volume
2502
2503**参数:**
2504
2505| 参数名     | 类型                                | 必填 | 说明                   |
2506| ---------- | ----------------------------------- | ---- | ---------------------- |
2507| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
2508| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
2509
2510**示例:**
2511
2512```js
2513audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
2514  if (err) {
2515    console.error(`Failed to obtain the maximum volume. ${err}`);
2516    return;
2517  }
2518  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
2519});
2520```
2521
2522### getMaxVolume<sup>9+</sup>
2523
2524getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2525
2526获取指定流的最大音量,使用Promise方式异步返回结果。
2527
2528**系统能力:** SystemCapability.Multimedia.Audio.Volume
2529
2530**参数:**
2531
2532| 参数名     | 类型                                | 必填 | 说明         |
2533| ---------- | ----------------------------------- | ---- | ------------ |
2534| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2535
2536**返回值:**
2537
2538| 类型                  | 说明                          |
2539| --------------------- | ----------------------------- |
2540| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
2541
2542**示例:**
2543
2544```js
2545audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
2546  console.info('Promised returned to indicate that the maximum volume is obtained.');
2547});
2548```
2549
2550### mute<sup>9+</sup>
2551
2552mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
2553
2554设置指定音量流静音,使用callback方式异步返回结果。
2555
2556**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2557
2558仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2559
2560**系统接口:** 该接口为系统接口
2561
2562**系统能力:** SystemCapability.Multimedia.Audio.Volume
2563
2564**参数:**
2565
2566| 参数名     | 类型                                | 必填 | 说明                                  |
2567| ---------- | ----------------------------------- | ---- | ------------------------------------- |
2568| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
2569| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
2570| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
2571
2572**示例:**
2573
2574```js
2575audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
2576  if (err) {
2577    console.error(`Failed to mute the stream. ${err}`);
2578    return;
2579  }
2580  console.info('Callback invoked to indicate that the stream is muted.');
2581});
2582```
2583
2584### mute<sup>9+</sup>
2585
2586mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
2587
2588设置指定音量流静音,使用Promise方式异步返回结果。
2589
2590**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2591
2592仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2593
2594**系统接口:** 该接口为系统接口
2595
2596**系统能力:** SystemCapability.Multimedia.Audio.Volume
2597
2598**参数:**
2599
2600| 参数名     | 类型                                | 必填 | 说明                                  |
2601| ---------- | ----------------------------------- | ---- | ------------------------------------- |
2602| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
2603| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
2604
2605**返回值:**
2606
2607| 类型                | 说明                          |
2608| ------------------- | ----------------------------- |
2609| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
2610
2611**示例:**
2612
2613```js
2614audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
2615  console.info('Promise returned to indicate that the stream is muted.');
2616});
2617```
2618
2619### isMute<sup>9+</sup>
2620
2621isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
2622
2623获取指定音量流是否被静音,使用callback方式异步返回结果。
2624
2625**系统能力:** SystemCapability.Multimedia.Audio.Volume
2626
2627**参数:**
2628
2629| 参数名     | 类型                                | 必填 | 说明                                            |
2630| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
2631| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
2632| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
2633
2634**示例:**
2635
2636```js
2637audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
2638  if (err) {
2639    console.error(`Failed to obtain the mute status. ${err}`);
2640    return;
2641  }
2642  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
2643});
2644```
2645
2646### isMute<sup>9+</sup>
2647
2648isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
2649
2650获取指定音量流是否被静音,使用Promise方式异步返回结果。
2651
2652**系统能力:** SystemCapability.Multimedia.Audio.Volume
2653
2654**参数:**
2655
2656| 参数名     | 类型                                | 必填 | 说明         |
2657| ---------- | ----------------------------------- | ---- | ------------ |
2658| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2659
2660**返回值:**
2661
2662| 类型                   | 说明                                                   |
2663| ---------------------- | ------------------------------------------------------ |
2664| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
2665
2666**示例:**
2667
2668```js
2669audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
2670  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
2671});
2672```
2673
2674### setRingerMode<sup>9+</sup>
2675
2676setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
2677
2678设置铃声模式,使用callback方式异步返回结果。
2679
2680**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2681
2682仅在静音和非静音状态切换时需要该权限。
2683
2684**系统接口:** 该接口为系统接口
2685
2686**系统能力:** SystemCapability.Multimedia.Audio.Volume
2687
2688**参数:**
2689
2690| 参数名   | 类型                            | 必填 | 说明                     |
2691| -------- | ------------------------------- | ---- | ------------------------ |
2692| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
2693| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
2694
2695**示例:**
2696
2697```js
2698audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
2699  if (err) {
2700    console.error(`Failed to set the ringer mode.​ ${err}`);
2701    return;
2702  }
2703  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
2704});
2705```
2706
2707### setRingerMode<sup>9+</sup>
2708
2709setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
2710
2711设置铃声模式,使用Promise方式异步返回结果。
2712
2713**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2714
2715仅在静音和非静音状态切换时需要该权限。
2716
2717**系统接口:** 该接口为系统接口
2718
2719**系统能力:** SystemCapability.Multimedia.Audio.Volume
2720
2721**参数:**
2722
2723| 参数名 | 类型                            | 必填 | 说明           |
2724| ------ | ------------------------------- | ---- | -------------- |
2725| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
2726
2727**返回值:**
2728
2729| 类型                | 说明                            |
2730| ------------------- | ------------------------------- |
2731| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
2732
2733**示例:**
2734
2735```js
2736audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
2737  console.info('Promise returned to indicate a successful setting of the ringer mode.');
2738});
2739```
2740
2741### getRingerMode<sup>9+</sup>
2742
2743getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
2744
2745获取铃声模式,使用callback方式异步返回结果。
2746
2747**系统能力:** SystemCapability.Multimedia.Audio.Volume
2748
2749**参数:**
2750
2751| 参数名   | 类型                                                 | 必填 | 说明                     |
2752| -------- | ---------------------------------------------------- | ---- | ------------------------ |
2753| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
2754
2755**示例:**
2756
2757```js
2758audioVolumeGroupManager.getRingerMode((err, value) => {
2759  if (err) {
2760    console.error(`Failed to obtain the ringer mode.​ ${err}`);
2761    return;
2762  }
2763  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
2764});
2765```
2766
2767### getRingerMode<sup>9+</sup>
2768
2769getRingerMode(): Promise&lt;AudioRingMode&gt;
2770
2771获取铃声模式,使用Promise方式异步返回结果。
2772
2773**系统能力:** SystemCapability.Multimedia.Audio.Volume
2774
2775**返回值:**
2776
2777| 类型                                           | 说明                            |
2778| ---------------------------------------------- | ------------------------------- |
2779| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
2780
2781**示例:**
2782
2783```js
2784audioVolumeGroupManager.getRingerMode().then((value) => {
2785  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
2786});
2787```
2788
2789### on('ringerModeChange')<sup>9+</sup>
2790
2791on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
2792
2793监听铃声模式变化事件。
2794
2795**系统能力:** SystemCapability.Multimedia.Audio.Volume
2796
2797**参数:**
2798
2799| 参数名   | 类型                                      | 必填 | 说明                                                         |
2800| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
2801| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
2802| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |
2803
2804**错误码:**
2805
2806以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2807
2808| 错误码ID | 错误信息 |
2809| ------- | --------------------------------------------|
2810| 6800101 | if input parameter value error              |
2811
2812**示例:**
2813
2814```js
2815audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
2816  console.info(`Updated ringermode: ${ringerMode}`);
2817});
2818```
2819### setMicrophoneMute<sup>9+</sup>
2820
2821setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
2822
2823设置麦克风静音状态,使用callback方式异步返回结果。
2824
2825**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
2826
2827**系统能力:** SystemCapability.Multimedia.Audio.Volume
2828
2829**参数:**
2830
2831| 参数名   | 类型                      | 必填 | 说明                                          |
2832| -------- | ------------------------- | ---- | --------------------------------------------- |
2833| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
2834| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
2835
2836**示例:**
2837
2838```js
2839audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
2840  if (err) {
2841    console.error(`Failed to mute the microphone. ${err}`);
2842    return;
2843  }
2844  console.info('Callback invoked to indicate that the microphone is muted.');
2845});
2846```
2847
2848### setMicrophoneMute<sup>9+</sup>
2849
2850setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
2851
2852设置麦克风静音状态,使用Promise方式异步返回结果。
2853
2854**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
2855
2856**系统能力:** SystemCapability.Multimedia.Audio.Volume
2857
2858**参数:**
2859
2860| 参数名 | 类型    | 必填 | 说明                                          |
2861| ------ | ------- | ---- | --------------------------------------------- |
2862| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |
2863
2864**返回值:**
2865
2866| 类型                | 说明                            |
2867| ------------------- | ------------------------------- |
2868| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
2869
2870**示例:**
2871
2872```js
2873audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
2874  console.info('Promise returned to indicate that the microphone is muted.');
2875});
2876```
2877
2878### isMicrophoneMute<sup>9+</sup>
2879
2880isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
2881
2882获取麦克风静音状态,使用callback方式异步返回结果。
2883
2884**系统能力:** SystemCapability.Multimedia.Audio.Volume
2885
2886**参数:**
2887
2888| 参数名   | 类型                         | 必填 | 说明                                                    |
2889| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
2890| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2891
2892**示例:**
2893
2894```js
2895audioVolumeGroupManager.isMicrophoneMute((err, value) => {
2896  if (err) {
2897    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
2898    return;
2899  }
2900  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
2901});
2902```
2903
2904### isMicrophoneMute<sup>9+</sup>
2905
2906isMicrophoneMute(): Promise&lt;boolean&gt;
2907
2908获取麦克风静音状态,使用Promise方式异步返回结果。
2909
2910**系统能力:** SystemCapability.Multimedia.Audio.Volume
2911
2912**返回值:**
2913
2914| 类型                   | 说明                                                         |
2915| ---------------------- | ------------------------------------------------------------ |
2916| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2917
2918**示例:**
2919
2920```js
2921audioVolumeGroupManager.isMicrophoneMute().then((value) => {
2922  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
2923});
2924```
2925
2926### on('micStateChange')<sup>9+</sup>
2927
2928on(type: 'micStateChange', callback: Callback&lt;MicStateChangeEvent&gt;): void
2929
2930监听系统麦克风状态更改事件。
2931
2932目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
2933
2934**系统能力:** SystemCapability.Multimedia.Audio.Volume
2935
2936**参数:**
2937
2938| 参数名   | 类型                                   | 必填 | 说明                                                         |
2939| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
2940| type     | string                                 | 是   | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
2941| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是   | 回调方法,返回变更后的麦克风状态。                                                   |
2942
2943**错误码:**
2944
2945以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2946
2947| 错误码ID | 错误信息 |
2948| ------- | --------------------------------------------|
2949| 6800101 | if input parameter value error              |
2950
2951**示例:**
2952
2953```js
2954audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
2955  console.info(`Current microphone status is: ${micStateChange.mute} `);
2956});
2957```
2958
2959## AudioStreamManager<sup>9+</sup>
2960
2961管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。
2962
2963### getCurrentAudioRendererInfoArray<sup>9+</sup>
2964
2965getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeInfoArray&gt;): void
2966
2967获取当前音频渲染器的信息。使用callback异步回调。
2968
2969**系统能力**: SystemCapability.Multimedia.Audio.Renderer
2970
2971**参数:**
2972
2973| 参数名     | 类型                                 | 必填     | 说明                         |
2974| -------- | ----------------------------------- | -------- | --------------------------- |
2975| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是     |  回调函数,返回当前音频渲染器的信息。 |
2976
2977**示例:**
2978
2979```js
2980audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
2981  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
2982  if (err) {
2983    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
2984  } else {
2985    if (AudioRendererChangeInfoArray != null) {
2986      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
2987        let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
2988        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
2989        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
2990        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
2991        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
2992        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
2993        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
2994        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
2995          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
2996          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
2997          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
2998          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
2999          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3000          console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3001          console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3002          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
3003        }
3004      }
3005    }
3006  }
3007});
3008```
3009
3010### getCurrentAudioRendererInfoArray<sup>9+</sup>
3011
3012getCurrentAudioRendererInfoArray(): Promise&lt;AudioRendererChangeInfoArray&gt;
3013
3014获取当前音频渲染器的信息。使用Promise异步回调。
3015
3016**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3017
3018**返回值:**
3019
3020| 类型                                                                              | 说明                                    |
3021| ---------------------------------------------------------------------------------| --------------------------------------- |
3022| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)>          | Promise对象,返回当前音频渲染器信息。      |
3023
3024**示例:**
3025
3026```js
3027async function getCurrentAudioRendererInfoArray(){
3028  await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
3029    console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
3030    if (AudioRendererChangeInfoArray != null) {
3031      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
3032        let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
3033        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
3034        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
3035        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
3036        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
3037        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
3038        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
3039        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
3040          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
3041          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
3042          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
3043          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
3044          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3045          console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3046          console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3047          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
3048        }
3049      }
3050    }
3051  }).catch((err) => {
3052    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
3053  });
3054}
3055```
3056
3057### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3058
3059getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeInfoArray&gt;): void
3060
3061获取当前音频采集器的信息。使用callback异步回调。
3062
3063**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3064
3065**参数:**
3066
3067| 参数名        | 类型                                 | 必填      | 说明                                                      |
3068| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
3069| callback   | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是    | 回调函数,返回当前音频采集器的信息。 |
3070
3071**示例:**
3072
3073```js
3074audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
3075  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
3076  if (err) {
3077    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
3078  } else {
3079    if (AudioCapturerChangeInfoArray != null) {
3080      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3081        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3082        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3083        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3084        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3085        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3086        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3087          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3088          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3089          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3090          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3091          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3092          console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3093          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3094          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
3095        }
3096      }
3097    }
3098  }
3099});
3100```
3101
3102### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3103
3104getCurrentAudioCapturerInfoArray(): Promise&lt;AudioCapturerChangeInfoArray&gt;
3105
3106获取当前音频采集器的信息。使用Promise异步回调。
3107
3108**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3109
3110**返回值:**
3111
3112| 类型                                                                         | 说明                                 |
3113| -----------------------------------------------------------------------------| ----------------------------------- |
3114| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)>      | Promise对象,返回当前音频渲染器信息。  |
3115
3116**示例:**
3117
3118```js
3119async function getCurrentAudioCapturerInfoArray(){
3120  await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
3121    console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
3122    if (AudioCapturerChangeInfoArray != null) {
3123      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3124        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3125        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3126        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3127        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3128        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3129        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3130          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3131          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3132          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3133          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3134          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3135          console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3136          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3137          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
3138        }
3139      }
3140    }
3141  }).catch((err) => {
3142    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
3143  });
3144}
3145```
3146
3147### on('audioRendererChange')<sup>9+</sup>
3148
3149on(type: "audioRendererChange", callback: Callback&lt;AudioRendererChangeInfoArray&gt;): void
3150
3151监听音频渲染器更改事件。
3152
3153**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3154
3155**参数:**
3156
3157| 参数名      | 类型        | 必填      | 说明                                                                     |
3158| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
3159| type     | string     | 是        | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。     |
3160| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是  |  回调函数。        |
3161
3162**错误码:**
3163
3164以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3165
3166| 错误码ID | 错误信息 |
3167| ------- | --------------------------------------------|
3168| 6800101 | if input parameter value error              |
3169
3170**示例:**
3171
3172```js
3173audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
3174  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
3175    let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
3176    console.info(`## RendererChange on is called for ${i} ##`);
3177    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
3178    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
3179    console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
3180    console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
3181    console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
3182    console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
3183    for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
3184      console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
3185      console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
3186      console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
3187      console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
3188      console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3189      console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3190      console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3191      console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
3192    }
3193  }
3194});
3195```
3196
3197### off('audioRendererChange')<sup>9+</sup>
3198
3199off(type: "audioRendererChange"): void
3200
3201取消监听音频渲染器更改事件。
3202
3203**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3204
3205**参数:**
3206
3207| 参数名     | 类型     | 必填 | 说明              |
3208| -------- | ------- | ---- | ---------------- |
3209| type     | string  | 是   | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |
3210
3211**错误码:**
3212
3213以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3214
3215| 错误码ID | 错误信息 |
3216| ------- | --------------------------------------------|
3217| 6800101 | if input parameter value error              |
3218
3219**示例:**
3220
3221```js
3222audioStreamManager.off('audioRendererChange');
3223console.info('######### RendererChange Off is called #########');
3224```
3225
3226### on('audioCapturerChange')<sup>9+</sup>
3227
3228on(type: "audioCapturerChange", callback: Callback&lt;AudioCapturerChangeInfoArray&gt;): void
3229
3230监听音频采集器更改事件。
3231
3232**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3233
3234**参数:**
3235
3236| 参数名     | 类型     | 必填      | 说明                                                                                           |
3237| -------- | ------- | --------- | ----------------------------------------------------------------------- |
3238| type     | string  | 是        | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。     |
3239| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是     | 回调函数。   |
3240
3241**错误码:**
3242
3243以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3244
3245| 错误码ID | 错误信息 |
3246| ------- | --------------------------------------------|
3247| 6800101 | if input parameter value error              |
3248
3249**示例:**
3250
3251```js
3252audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
3253  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3254    console.info(`## CapChange on is called for element ${i} ##`);
3255    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3256    console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3257    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3258    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3259    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3260    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
3261    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3262      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3263      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3264      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3265      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3266      console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3267      console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3268      console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3269      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
3270    }
3271  }
3272});
3273```
3274
3275### off('audioCapturerChange')<sup>9+</sup>
3276
3277off(type: "audioCapturerChange"): void;
3278
3279取消监听音频采集器更改事件。
3280
3281**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3282
3283**参数:**
3284
3285| 参数名       | 类型     | 必填 | 说明                                                          |
3286| -------- | -------- | --- | ------------------------------------------------------------- |
3287| type     | string   |是   | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
3288
3289**错误码:**
3290
3291以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3292
3293| 错误码ID | 错误信息 |
3294| ------- | --------------------------------------------|
3295| 6800101 | if input parameter value error              |
3296
3297**示例:**
3298
3299```js
3300audioStreamManager.off('audioCapturerChange');
3301console.info('######### CapturerChange Off is called #########');
3302
3303```
3304
3305### isActive<sup>9+</sup>
3306
3307isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
3308
3309获取指定音频流是否为活跃状态,使用callback方式异步返回结果。
3310
3311**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3312
3313**参数:**
3314
3315| 参数名     | 类型                                | 必填 | 说明                                              |
3316| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
3317| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。                                      |
3318| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
3319
3320**示例:**
3321
3322```js
3323audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
3324  if (err) {
3325    console.error(`Failed to obtain the active status of the stream. ${err}`);
3326    return;
3327  }
3328  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
3329});
3330```
3331
3332### isActive<sup>9+</sup>
3333
3334isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
3335
3336获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。
3337
3338**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3339
3340**参数:**
3341
3342| 参数名     | 类型                                | 必填 | 说明         |
3343| ---------- | ----------------------------------- | ---- | ------------ |
3344| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。 |
3345
3346**返回值:**
3347
3348| 类型                   | 说明                                                     |
3349| ---------------------- | -------------------------------------------------------- |
3350| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
3351
3352**示例:**
3353
3354```js
3355audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
3356  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
3357});
3358```
3359
3360## AudioRoutingManager<sup>9+</sup>
3361
3362音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。
3363
3364### getDevices<sup>9+</sup>
3365
3366getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
3367
3368获取音频设备列表,使用callback方式异步返回结果。
3369
3370**系统能力:** SystemCapability.Multimedia.Audio.Device
3371
3372**参数:**
3373
3374| 参数名     | 类型                                                         | 必填 | 说明                 |
3375| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
3376| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
3377| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
3378
3379**示例:**
3380
3381```js
3382audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
3383  if (err) {
3384    console.error(`Failed to obtain the device list. ${err}`);
3385    return;
3386  }
3387  console.info('Callback invoked to indicate that the device list is obtained.');
3388});
3389```
3390
3391### getDevices<sup>9+</sup>
3392
3393getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
3394
3395获取音频设备列表,使用Promise方式异步返回结果。
3396
3397**系统能力:** SystemCapability.Multimedia.Audio.Device
3398
3399**参数:**
3400
3401| 参数名     | 类型                      | 必填 | 说明             |
3402| ---------- | ------------------------- | ---- | ---------------- |
3403| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
3404
3405**返回值:**
3406
3407| 类型                                                         | 说明                      |
3408| ------------------------------------------------------------ | ------------------------- |
3409| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
3410
3411**示例:**
3412
3413```js
3414audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
3415  console.info('Promise returned to indicate that the device list is obtained.');
3416});
3417```
3418
3419### on<sup>9+</sup>
3420
3421on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction\>): void
3422
3423设备更改。音频设备连接状态变化。
3424
3425**系统能力:** SystemCapability.Multimedia.Audio.Device
3426
3427**参数:**
3428
3429| 参数名   | 类型                                                 | 必填 | 说明                                       |
3430| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
3431| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
3432| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
3433| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
3434
3435**错误码:**
3436
3437以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3438
3439| 错误码ID | 错误信息 |
3440| ------- | --------------------------------------------|
3441| 6800101 | if input parameter value error              |
3442
3443**示例:**
3444
3445```js
3446audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
3447  console.info('device change type : ' + deviceChanged.type);
3448  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
3449  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
3450  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
3451});
3452```
3453
3454### off<sup>9+</sup>
3455
3456off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
3457
3458取消订阅音频设备连接变化事件。
3459
3460**系统能力:** SystemCapability.Multimedia.Audio.Device
3461
3462**参数:**
3463
3464| 参数名   | 类型                                                | 必填 | 说明                                       |
3465| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
3466| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
3467| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
3468
3469**错误码:**
3470
3471以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3472
3473| 错误码ID | 错误信息 |
3474| ------- | --------------------------------------------|
3475| 6800101 | if input parameter value error              |
3476
3477**示例:**
3478
3479```js
3480audioRoutingManager.off('deviceChange', (deviceChanged) => {
3481  console.info('Should be no callback.');
3482});
3483```
3484
3485### selectInputDevice<sup>9+</sup>
3486
3487selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
3488
3489选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。
3490
3491**系统接口:** 该接口为系统接口
3492
3493**系统能力:** SystemCapability.Multimedia.Audio.Device
3494
3495**参数:**
3496
3497| 参数名                       | 类型                                                         | 必填 | 说明                      |
3498| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
3499| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |
3500| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回选择输入设备结果。 |
3501
3502**示例:**
3503```js
3504let inputAudioDeviceDescriptor = [{
3505    deviceRole : audio.DeviceRole.INPUT_DEVICE,
3506    deviceType : audio.DeviceType.EARPIECE,
3507    id : 1,
3508    name : "",
3509    address : "",
3510    sampleRates : [44100],
3511    channelCounts : [2],
3512    channelMasks : [0],
3513    networkId : audio.LOCAL_NETWORK_ID,
3514    interruptGroupId : 1,
3515    volumeGroupId : 1,
3516}];
3517
3518async function selectInputDevice(){
3519  audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
3520    if (err) {
3521      console.error(`Result ERROR: ${err}`);
3522    } else {
3523      console.info('Select input devices result callback: SUCCESS'); }
3524  });
3525}
3526```
3527
3528### selectInputDevice<sup>9+</sup>
3529
3530selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
3531
3532**系统接口:** 该接口为系统接口
3533
3534选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。
3535
3536**系统能力:** SystemCapability.Multimedia.Audio.Device
3537
3538**参数:**
3539
3540| 参数名                       | 类型                                                         | 必填 | 说明                      |
3541| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
3542| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |
3543
3544**返回值:**
3545
3546| 类型                  | 说明                         |
3547| --------------------- | --------------------------- |
3548| Promise&lt;void&gt;   | Promise返回选择输入设备结果。 |
3549
3550**示例:**
3551
3552```js
3553let inputAudioDeviceDescriptor = [{
3554    deviceRole : audio.DeviceRole.INPUT_DEVICE,
3555    deviceType : audio.DeviceType.EARPIECE,
3556    id : 1,
3557    name : "",
3558    address : "",
3559    sampleRates : [44100],
3560    channelCounts : [2],
3561    channelMasks : [0],
3562    networkId : audio.LOCAL_NETWORK_ID,
3563    interruptGroupId : 1,
3564    volumeGroupId : 1,
3565}];
3566
3567async function getRoutingManager(){
3568    audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
3569      console.info('Select input devices result promise: SUCCESS');
3570    }).catch((err) => {
3571      console.error(`Result ERROR: ${err}`);
3572    });
3573}
3574```
3575
3576### setCommunicationDevice<sup>9+</sup>
3577
3578setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
3579
3580设置通信设备激活状态,使用callback方式异步返回结果。
3581
3582**系统能力:** SystemCapability.Multimedia.Audio.Communication
3583
3584**参数:**
3585
3586| 参数名     | 类型                                  | 必填 | 说明                     |
3587| ---------- | ------------------------------------- | ---- | ------------------------ |
3588| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 音频设备类型。       |
3589| active     | boolean                               | 是   | 设备激活状态。           |
3590| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
3591
3592**示例:**
3593
3594```js
3595audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
3596  if (err) {
3597    console.error(`Failed to set the active status of the device. ${err}`);
3598    return;
3599  }
3600  console.info('Callback invoked to indicate that the device is set to the active status.');
3601});
3602```
3603
3604### setCommunicationDevice<sup>9+</sup>
3605
3606setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise&lt;void&gt;
3607
3608设置通信设备激活状态,使用Promise方式异步返回结果。
3609
3610**系统能力:** SystemCapability.Multimedia.Audio.Communication
3611
3612**参数:**
3613
3614| 参数名     | 类型                                                   | 必填 | 说明               |
3615| ---------- | ----------------------------------------------------- | ---- | ------------------ |
3616| deviceType | [CommunicationDeviceType](#communicationdevicetype9)  | 是   | 活跃音频设备类型。 |
3617| active     | boolean                                               | 是   | 设备激活状态。     |
3618
3619**返回值:**
3620
3621| 类型                | 说明                            |
3622| ------------------- | ------------------------------- |
3623| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
3624
3625**示例:**
3626
3627```js
3628audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
3629  console.info('Promise returned to indicate that the device is set to the active status.');
3630});
3631```
3632
3633### isCommunicationDeviceActive<sup>9+</sup>
3634
3635isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
3636
3637获取指定通信设备的激活状态,使用callback方式异步返回结果。
3638
3639**系统能力:** SystemCapability.Multimedia.Audio.Communication
3640
3641**参数:**
3642
3643| 参数名     | 类型                                                  | 必填 | 说明                     |
3644| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
3645| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。       |
3646| callback   | AsyncCallback&lt;boolean&gt;                         | 是   | 回调返回设备的激活状态。 |
3647
3648**示例:**
3649
3650```js
3651audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
3652  if (err) {
3653    console.error(`Failed to obtain the active status of the device. ${err}`);
3654    return;
3655  }
3656  console.info('Callback invoked to indicate that the active status of the device is obtained.');
3657});
3658```
3659
3660### isCommunicationDeviceActive<sup>9+</sup>
3661
3662isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise&lt;boolean&gt;
3663
3664获取指定通信设备的激活状态,使用Promise方式异步返回结果。
3665
3666**系统能力:** SystemCapability.Multimedia.Audio.Communication
3667
3668**参数:**
3669
3670| 参数名     | 类型                                                  | 必填 | 说明               |
3671| ---------- | ---------------------------------------------------- | ---- | ------------------ |
3672| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。 |
3673
3674**返回值:**
3675
3676| Type                   | Description                     |
3677| ---------------------- | ------------------------------- |
3678| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
3679
3680**示例:**
3681
3682```js
3683audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
3684  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
3685});
3686```
3687
3688### selectOutputDevice<sup>9+</sup>
3689
3690selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
3691
3692选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。
3693
3694**系统接口:** 该接口为系统接口
3695
3696**系统能力:** SystemCapability.Multimedia.Audio.Device
3697
3698**参数:**
3699
3700| 参数名                       | 类型                                                         | 必填 | 说明                      |
3701| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
3702| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
3703| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |
3704
3705**示例:**
3706```js
3707let outputAudioDeviceDescriptor = [{
3708    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
3709    deviceType : audio.DeviceType.SPEAKER,
3710    id : 1,
3711    name : "",
3712    address : "",
3713    sampleRates : [44100],
3714    channelCounts : [2],
3715    channelMasks : [0],
3716    networkId : audio.LOCAL_NETWORK_ID,
3717    interruptGroupId : 1,
3718    volumeGroupId : 1,
3719}];
3720
3721async function selectOutputDevice(){
3722  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err) => {
3723    if (err) {
3724      console.error(`Result ERROR: ${err}`);
3725    } else {
3726      console.info('Select output devices result callback: SUCCESS'); }
3727  });
3728}
3729```
3730
3731### selectOutputDevice<sup>9+</sup>
3732
3733selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
3734
3735**系统接口:** 该接口为系统接口
3736
3737选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。
3738
3739**系统能力:** SystemCapability.Multimedia.Audio.Device
3740
3741**参数:**
3742
3743| 参数名                       | 类型                                                         | 必填 | 说明                      |
3744| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
3745| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
3746
3747**返回值:**
3748
3749| 类型                  | 说明                         |
3750| --------------------- | --------------------------- |
3751| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |
3752
3753**示例:**
3754
3755```js
3756let outputAudioDeviceDescriptor = [{
3757    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
3758    deviceType : audio.DeviceType.SPEAKER,
3759    id : 1,
3760    name : "",
3761    address : "",
3762    sampleRates : [44100],
3763    channelCounts : [2],
3764    channelMasks : [0],
3765    networkId : audio.LOCAL_NETWORK_ID,
3766    interruptGroupId : 1,
3767    volumeGroupId : 1,
3768}];
3769
3770async function selectOutputDevice(){
3771  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
3772    console.info('Select output devices result promise: SUCCESS');
3773  }).catch((err) => {
3774    console.error(`Result ERROR: ${err}`);
3775  });
3776}
3777```
3778
3779### selectOutputDeviceByFilter<sup>9+</sup>
3780
3781selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
3782
3783**系统接口:** 该接口为系统接口
3784
3785根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。
3786
3787**系统能力:** SystemCapability.Multimedia.Audio.Device
3788
3789**参数:**
3790
3791| 参数名                       | 类型                                                         | 必填 | 说明                      |
3792| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
3793| filter                      | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
3794| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
3795| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |
3796
3797**示例:**
3798```js
3799let outputAudioRendererFilter = {
3800  uid : 20010041,
3801  rendererInfo : {
3802    content : audio.ContentType.CONTENT_TYPE_MUSIC,
3803    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
3804    rendererFlags : 0 },
3805  rendererId : 0 };
3806
3807let outputAudioDeviceDescriptor = [{
3808    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
3809    deviceType : audio.DeviceType.SPEAKER,
3810    id : 1,
3811    name : "",
3812    address : "",
3813    sampleRates : [44100],
3814    channelCounts : [2],
3815    channelMasks : [0],
3816    networkId : audio.LOCAL_NETWORK_ID,
3817    interruptGroupId : 1,
3818    volumeGroupId : 1,
3819}];
3820
3821async function selectOutputDeviceByFilter(){
3822  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err) => {
3823    if (err) {
3824      console.error(`Result ERROR: ${err}`);
3825    } else {
3826      console.info('Select output devices by filter result callback: SUCCESS'); }
3827  });
3828}
3829```
3830
3831### selectOutputDeviceByFilter<sup>9+</sup>
3832
3833selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
3834
3835**系统接口:** 该接口为系统接口
3836
3837根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。
3838
3839**系统能力:** SystemCapability.Multimedia.Audio.Device
3840
3841**参数:**
3842
3843| 参数名                 | 类型                                                         | 必填 | 说明                      |
3844| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
3845| filter                | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
3846| outputAudioDevices    | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
3847
3848**返回值:**
3849
3850| 类型                  | 说明                         |
3851| --------------------- | --------------------------- |
3852| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |
3853
3854**示例:**
3855
3856```js
3857let outputAudioRendererFilter = {
3858  uid : 20010041,
3859  rendererInfo : {
3860    content : audio.ContentType.CONTENT_TYPE_MUSIC,
3861    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
3862    rendererFlags : 0 },
3863  rendererId : 0 };
3864
3865let outputAudioDeviceDescriptor = [{
3866    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
3867    deviceType : audio.DeviceType.SPEAKER,
3868    id : 1,
3869    name : "",
3870    address : "",
3871    sampleRates : [44100],
3872    channelCounts : [2],
3873    channelMasks : [0],
3874    networkId : audio.LOCAL_NETWORK_ID,
3875    interruptGroupId : 1,
3876    volumeGroupId : 1,
3877}];
3878
3879async function selectOutputDeviceByFilter(){
3880  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
3881    console.info('Select output devices by filter result promise: SUCCESS');
3882  }).catch((err) => {
3883    console.error(`Result ERROR: ${err}`);
3884  })
3885}
3886```
3887
3888## AudioRendererChangeInfoArray<sup>9+</sup>
3889
3890数组类型,AudioRenderChangeInfo数组,只读。
3891
3892**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3893
3894## AudioRendererChangeInfo<sup>9+</sup>
3895
3896描述音频渲染器更改信息。
3897
3898**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3899
3900| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
3901| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
3902| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
3903| clientUid          | number                                    | 是   | 否   | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口。 |
3904| rendererInfo       | [AudioRendererInfo](#audiorendererinfo8)  | 是   | 否   | 音频渲染器信息。               |
3905| rendererState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
3906| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
3907
3908**示例:**
3909
3910```js
3911
3912import audio from '@ohos.multimedia.audio';
3913
3914const audioManager = audio.getAudioManager();
3915let audioStreamManager = audioManager.getStreamManager();
3916let resultFlag = false;
3917
3918audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
3919  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
3920    console.info(`## RendererChange on is called for ${i} ##`);
3921    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
3922    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
3923    console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
3924    console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
3925    console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
3926    console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`);
3927  	let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
3928  	for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
3929  	  console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
3930  	  console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3931  	  console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3932  	  console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
3933  	  console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
3934  	  console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3935  	  console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3936  	  console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
3937  	}
3938    if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
3939      resultFlag = true;
3940      console.info(`ResultFlag for ${i} is: ${resultFlag}`);
3941    }
3942  }
3943});
3944```
3945
3946
3947## AudioCapturerChangeInfoArray<sup>9+</sup>
3948
3949数组类型,AudioCapturerChangeInfo数组,只读。
3950
3951**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3952
3953## AudioCapturerChangeInfo<sup>9+</sup>
3954
3955描述音频采集器更改信息。
3956
3957**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3958
3959| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
3960| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
3961| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
3962| clientUid          | number                                    | 是   | 否   | 音频采集器客户端应用程序的Uid。<br/>此接口为系统接口。 |
3963| capturerInfo       | [AudioCapturerInfo](#audiocapturerinfo8)  | 是   | 否   | 音频采集器信息。               |
3964| capturerState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
3965| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
3966
3967**示例:**
3968
3969```js
3970import audio from '@ohos.multimedia.audio';
3971
3972const audioManager = audio.getAudioManager();
3973let audioStreamManager = audioManager.getStreamManager();
3974
3975let resultFlag = false;
3976audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
3977  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3978    console.info(`## CapChange on is called for element ${i} ##`);
3979    console.info(`StrId for  ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3980    console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3981    console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3982    console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3983    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3984    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
3985    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3986      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3987      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3988      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3989      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3990      console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3991      console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3992      console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3993      console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
3994    }
3995    if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
3996      resultFlag = true;
3997      console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
3998    }
3999  }
4000});
4001```
4002
4003## AudioDeviceDescriptors
4004
4005设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。
4006
4007## AudioDeviceDescriptor
4008
4009描述音频设备。
4010
4011**系统能力:** SystemCapability.Multimedia.Audio.Device
4012
4013| 名称                          | 类型                       | 可读 | 可写 | 说明       |
4014| ----------------------------- | -------------------------- | ---- | ---- | ---------- |
4015| deviceRole                    | [DeviceRole](#devicerole)  | 是   | 否   | 设备角色。 |
4016| deviceType                    | [DeviceType](#devicetype)  | 是   | 否   | 设备类型。 |
4017| id<sup>9+</sup>               | number                     | 是   | 否   | 设备id,唯一。  |
4018| name<sup>9+</sup>             | string                     | 是   | 否   | 设备名称。 |
4019| address<sup>9+</sup>          | string                     | 是   | 否   | 设备地址。 |
4020| sampleRates<sup>9+</sup>      | Array&lt;number&gt;        | 是   | 否   | 支持的采样率。 |
4021| channelCounts<sup>9+</sup>    | Array&lt;number&gt;        | 是   | 否   | 支持的通道数。 |
4022| channelMasks<sup>9+</sup>     | Array&lt;number&gt;        | 是   | 否   | 支持的通道掩码。 |
4023| networkId<sup>9+</sup>        | string                     | 是   | 否   | 设备组网的ID。<br/>此接口为系统接口。 |
4024| interruptGroupId<sup>9+</sup> | number                     | 是   | 否   | 设备所处的焦点组ID。<br/>此接口为系统接口。 |
4025| volumeGroupId<sup>9+</sup>    | number                     | 是   | 否   | 设备所处的音量组ID。<br/>此接口为系统接口。 |
4026
4027**示例:**
4028
4029```js
4030import audio from '@ohos.multimedia.audio';
4031
4032function displayDeviceProp(value) {
4033  deviceRoleValue = value.deviceRole;
4034  deviceTypeValue = value.deviceType;
4035}
4036
4037let deviceRoleValue = null;
4038let deviceTypeValue = null;
4039const promise = audio.getAudioManager().getDevices(1);
4040promise.then(function (value) {
4041  console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
4042  value.forEach(displayDeviceProp);
4043  if (deviceTypeValue != null && deviceRoleValue != null){
4044    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
4045  } else {
4046    console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
4047  }
4048});
4049```
4050
4051## AudioRendererFilter<sup>9+</sup>
4052
4053过滤条件类。在调用selectOutputDeviceByFilter接口前,需要先创建AudioRendererFilter实例。
4054
4055**系统接口:** 该接口为系统接口
4056
4057| 名称          | 类型                                     | 必填 | 说明          |
4058| -------------| ---------------------------------------- | ---- | -------------- |
4059| uid          | number                                   |  是  | 表示应用ID。<br> **系统能力:** SystemCapability.Multimedia.Audio.Core|
4060| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) |  否  | 表示渲染器信息。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
4061| rendererId   | number                                   |  否  | 音频流唯一id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
4062
4063**示例:**
4064
4065```js
4066let outputAudioRendererFilter = {
4067  "uid":20010041,
4068  "rendererInfo": {
4069    "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
4070    "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
4071    "rendererFlags":0 },
4072  "rendererId":0 };
4073```
4074
4075## AudioRenderer<sup>8+</sup>
4076
4077提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。
4078
4079### 属性
4080
4081**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4082
4083| 名称  | 类型                     | 可读 | 可写 | 说明               |
4084| ----- | -------------------------- | ---- | ---- | ------------------ |
4085| state<sup>8+</sup> | [AudioState](#audiostate8) | 是   | 否   | 音频渲染器的状态。 |
4086
4087**示例:**
4088
4089```js
4090let state = audioRenderer.state;
4091```
4092
4093### getRendererInfo<sup>8+</sup>
4094
4095getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
4096
4097获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
4098
4099**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4100
4101**参数:**
4102
4103| 参数名   | 类型                                                     | 必填 | 说明                   |
4104| :------- | :------------------------------------------------------- | :--- | :--------------------- |
4105| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是   | 返回音频渲染器的信息。 |
4106
4107**示例:**
4108
4109```js
4110audioRenderer.getRendererInfo((err, rendererInfo) => {
4111  console.info('Renderer GetRendererInfo:');
4112  console.info(`Renderer content: ${rendererInfo.content}`);
4113  console.info(`Renderer usage: ${rendererInfo.usage}`);
4114  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
4115});
4116```
4117
4118### getRendererInfo<sup>8+</sup>
4119
4120getRendererInfo(): Promise<AudioRendererInfo\>
4121
4122获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
4123
4124**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4125
4126**返回值:**
4127
4128| 类型                                               | 说明                            |
4129| -------------------------------------------------- | ------------------------------- |
4130| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频渲染器信息。 |
4131
4132**示例:**
4133
4134```js
4135audioRenderer.getRendererInfo().then((rendererInfo) => {
4136  console.info('Renderer GetRendererInfo:');
4137  console.info(`Renderer content: ${rendererInfo.content}`);
4138  console.info(`Renderer usage: ${rendererInfo.usage}`);
4139  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
4140}).catch((err) => {
4141  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
4142});
4143```
4144
4145### getStreamInfo<sup>8+</sup>
4146
4147getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
4148
4149获取音频流信息,使用callback方式异步返回结果。
4150
4151**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4152
4153**参数:**
4154
4155| 参数名   | 类型                                                 | 必填 | 说明                 |
4156| :------- | :--------------------------------------------------- | :--- | :------------------- |
4157| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 回调返回音频流信息。 |
4158
4159**示例:**
4160
4161```js
4162audioRenderer.getStreamInfo((err, streamInfo) => {
4163  console.info('Renderer GetStreamInfo:');
4164  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
4165  console.info(`Renderer channel: ${streamInfo.channels}`);
4166  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
4167  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
4168});
4169```
4170
4171### getStreamInfo<sup>8+</sup>
4172
4173getStreamInfo(): Promise<AudioStreamInfo\>
4174
4175获取音频流信息,使用Promise方式异步返回结果。
4176
4177**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4178
4179**返回值:**
4180
4181| 类型                                           | 说明                   |
4182| :--------------------------------------------- | :--------------------- |
4183| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise返回音频流信息. |
4184
4185**示例:**
4186
4187```js
4188audioRenderer.getStreamInfo().then((streamInfo) => {
4189  console.info('Renderer GetStreamInfo:');
4190  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
4191  console.info(`Renderer channel: ${streamInfo.channels}`);
4192  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
4193  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
4194}).catch((err) => {
4195  console.error(`ERROR: ${err}`);
4196});
4197```
4198
4199### getAudioStreamId<sup>9+</sup>
4200
4201getAudioStreamId(callback: AsyncCallback<number\>): void
4202
4203获取音频流id,使用callback方式异步返回结果。
4204
4205**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4206
4207**参数:**
4208
4209| 参数名   | 类型                                                 | 必填 | 说明                 |
4210| :------- | :--------------------------------------------------- | :--- | :------------------- |
4211| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
4212
4213**示例:**
4214
4215```js
4216audioRenderer.getAudioStreamId((err, streamid) => {
4217  console.info(`Renderer GetStreamId: ${streamid}`);
4218});
4219```
4220
4221### getAudioStreamId<sup>9+</sup>
4222
4223getAudioStreamId(): Promise<number\>
4224
4225获取音频流id,使用Promise方式异步返回结果。
4226
4227**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4228
4229**返回值:**
4230
4231| 类型                                           | 说明                   |
4232| :--------------------------------------------- | :--------------------- |
4233| Promise<number\> | Promise返回音频流id。 |
4234
4235**示例:**
4236
4237```js
4238audioRenderer.getAudioStreamId().then((streamid) => {
4239  console.info(`Renderer getAudioStreamId: ${streamid}`);
4240}).catch((err) => {
4241  console.error(`ERROR: ${err}`);
4242});
4243```
4244
4245### start<sup>8+</sup>
4246
4247start(callback: AsyncCallback<void\>): void
4248
4249启动音频渲染器。使用callback方式异步返回结果。
4250
4251**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4252
4253**参数:**
4254
4255| 参数名   | 类型                 | 必填 | 说明       |
4256| -------- | -------------------- | ---- | ---------- |
4257| callback | AsyncCallback\<void> | 是   | 回调函数。 |
4258
4259**示例:**
4260
4261```js
4262audioRenderer.start((err) => {
4263  if (err) {
4264    console.error('Renderer start failed.');
4265  } else {
4266    console.info('Renderer start success.');
4267  }
4268});
4269```
4270
4271### start<sup>8+</sup>
4272
4273start(): Promise<void\>
4274
4275启动音频渲染器。使用Promise方式异步返回结果。
4276
4277**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4278
4279**返回值:**
4280
4281| 类型           | 说明                      |
4282| -------------- | ------------------------- |
4283| Promise\<void> | Promise方式异步返回结果。 |
4284
4285**示例:**
4286
4287```js
4288audioRenderer.start().then(() => {
4289  console.info('Renderer started');
4290}).catch((err) => {
4291  console.error(`ERROR: ${err}`);
4292});
4293```
4294
4295### pause<sup>8+</sup>
4296
4297pause(callback: AsyncCallback\<void>): void
4298
4299暂停渲染。使用callback方式异步返回结果。
4300
4301**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4302
4303**参数:**
4304
4305| 参数名   | 类型                 | 必填 | 说明             |
4306| -------- | -------------------- | ---- | ---------------- |
4307| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
4308
4309**示例:**
4310
4311```js
4312audioRenderer.pause((err) => {
4313  if (err) {
4314    console.error('Renderer pause failed');
4315  } else {
4316    console.info('Renderer paused.');
4317  }
4318});
4319```
4320
4321### pause<sup>8+</sup>
4322
4323pause(): Promise\<void>
4324
4325暂停渲染。使用Promise方式异步返回结果。
4326
4327**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4328
4329**返回值:**
4330
4331| 类型           | 说明                      |
4332| -------------- | ------------------------- |
4333| Promise\<void> | Promise方式异步返回结果。 |
4334
4335**示例:**
4336
4337```js
4338audioRenderer.pause().then(() => {
4339  console.info('Renderer paused');
4340}).catch((err) => {
4341  console.error(`ERROR: ${err}`);
4342});
4343```
4344
4345### drain<sup>8+</sup>
4346
4347drain(callback: AsyncCallback\<void>): void
4348
4349检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
4350
4351**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4352
4353**参数:**
4354
4355| 参数名   | 类型                 | 必填 | 说明             |
4356| -------- | -------------------- | ---- | ---------------- |
4357| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
4358
4359**示例:**
4360
4361```js
4362audioRenderer.drain((err) => {
4363  if (err) {
4364    console.error('Renderer drain failed');
4365  } else {
4366    console.info('Renderer drained.');
4367  }
4368});
4369```
4370
4371### drain<sup>8+</sup>
4372
4373drain(): Promise\<void>
4374
4375检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
4376
4377**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4378
4379**返回值:**
4380
4381| 类型           | 说明                      |
4382| -------------- | ------------------------- |
4383| Promise\<void> | Promise方式异步返回结果。 |
4384
4385**示例:**
4386
4387```js
4388audioRenderer.drain().then(() => {
4389  console.info('Renderer drained successfully');
4390}).catch((err) => {
4391  console.error(`ERROR: ${err}`);
4392});
4393```
4394
4395### stop<sup>8+</sup>
4396
4397stop(callback: AsyncCallback\<void>): void
4398
4399停止渲染。使用callback方式异步返回结果。
4400
4401**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4402
4403**参数:**
4404
4405| 参数名   | 类型                 | 必填 | 说明             |
4406| -------- | -------------------- | ---- | ---------------- |
4407| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
4408
4409**示例:**
4410
4411```js
4412audioRenderer.stop((err) => {
4413  if (err) {
4414    console.error('Renderer stop failed');
4415  } else {
4416    console.info('Renderer stopped.');
4417  }
4418});
4419```
4420
4421### stop<sup>8+</sup>
4422
4423stop(): Promise\<void>
4424
4425停止渲染。使用Promise方式异步返回结果。
4426
4427**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4428
4429**返回值:**
4430
4431| 类型           | 说明                      |
4432| -------------- | ------------------------- |
4433| Promise\<void> | Promise方式异步返回结果。 |
4434
4435**示例:**
4436
4437```js
4438audioRenderer.stop().then(() => {
4439  console.info('Renderer stopped successfully');
4440}).catch((err) => {
4441  console.error(`ERROR: ${err}`);
4442});
4443```
4444
4445### release<sup>8+</sup>
4446
4447release(callback: AsyncCallback\<void>): void
4448
4449释放音频渲染器。使用callback方式异步返回结果。
4450
4451**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4452
4453**参数:**
4454
4455| 参数名   | 类型                 | 必填 | 说明             |
4456| -------- | -------------------- | ---- | ---------------- |
4457| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
4458
4459**示例:**
4460
4461```js
4462audioRenderer.release((err) => {
4463  if (err) {
4464    console.error('Renderer release failed');
4465  } else {
4466    console.info('Renderer released.');
4467  }
4468});
4469```
4470
4471### release<sup>8+</sup>
4472
4473release(): Promise\<void>
4474
4475释放渲染器。使用Promise方式异步返回结果。
4476
4477**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4478
4479**返回值:**
4480
4481| 类型           | 说明                      |
4482| -------------- | ------------------------- |
4483| Promise\<void> | Promise方式异步返回结果。 |
4484
4485**示例:**
4486
4487```js
4488audioRenderer.release().then(() => {
4489  console.info('Renderer released successfully');
4490}).catch((err) => {
4491  console.error(`ERROR: ${err}`);
4492});
4493```
4494
4495### write<sup>8+</sup>
4496
4497write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void
4498
4499写入缓冲区。使用callback方式异步返回结果。
4500
4501**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4502
4503**参数:**
4504
4505| 参数名   | 类型                   | 必填 | 说明                                                |
4506| -------- | ---------------------- | ---- | --------------------------------------------------- |
4507| buffer   | ArrayBuffer            | 是   | 要写入缓冲区的数据。                                |
4508| callback | AsyncCallback\<number> | 是   | 回调如果成功,返回写入的字节数,否则返回errorcode。 |
4509
4510**示例:**
4511
4512```js
4513let bufferSize;
4514audioRenderer.getBufferSize().then((data)=> {
4515  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
4516  bufferSize = data;
4517  }).catch((err) => {
4518  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
4519  });
4520console.info(`Buffer size: ${bufferSize}`);
4521let context = featureAbility.getContext();
4522let path;
4523async function getCacheDir(){
4524  path = await context.getCacheDir();
4525}
4526let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
4527let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
4528fs.stat(path).then((stat) => {
4529  let buf = new ArrayBuffer(bufferSize);
4530  let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
4531  for (let i = 0;i < len; i++) {
4532    let options = {
4533      offset: i * bufferSize,
4534      length: bufferSize
4535    }
4536    let readsize = await fs.read(file.fd, buf, options)
4537    let writeSize = await new Promise((resolve,reject)=>{
4538      audioRenderer.write(buf,(err,writeSize)=>{
4539        if(err){
4540          reject(err)
4541        }else{
4542          resolve(writeSize)
4543        }
4544      })
4545    })
4546  }
4547});
4548```
4549
4550### write<sup>8+</sup>
4551
4552write(buffer: ArrayBuffer): Promise\<number>
4553
4554写入缓冲区。使用Promise方式异步返回结果。
4555
4556**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4557
4558**返回值:**
4559
4560| 类型             | 说明                                                         |
4561| ---------------- | ------------------------------------------------------------ |
4562| Promise\<number> | Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。 |
4563
4564**示例:**
4565
4566```js
4567let bufferSize;
4568audioRenderer.getBufferSize().then((data) => {
4569  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
4570  bufferSize = data;
4571  }).catch((err) => {
4572  console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
4573  });
4574console.info(`BufferSize: ${bufferSize}`);
4575let context = featureAbility.getContext();
4576let path;
4577async function getCacheDir(){
4578  path = await context.getCacheDir();
4579}
4580let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
4581let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
4582fs.stat(path).then((stat) => {
4583  let buf = new ArrayBuffer(bufferSize);
4584  let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
4585  for (let i = 0;i < len; i++) {
4586      let options = {
4587        offset: i * bufferSize,
4588        length: bufferSize
4589      }
4590      let readsize = await fs.read(file.fd, buf, options)
4591      try{
4592         let writeSize = await audioRenderer.write(buf);
4593      } catch(err) {
4594         console.error(`audioRenderer.write err: ${err}`);
4595      }
4596  }
4597});
4598```
4599
4600### getAudioTime<sup>8+</sup>
4601
4602getAudioTime(callback: AsyncCallback\<number>): void
4603
4604获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
4605
4606**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4607
4608**参数:**
4609
4610| 参数名   | 类型                   | 必填 | 说明             |
4611| -------- | ---------------------- | ---- | ---------------- |
4612| callback | AsyncCallback\<number> | 是   | 回调返回时间戳。 |
4613
4614**示例:**
4615
4616```js
4617audioRenderer.getAudioTime((err, timestamp) => {
4618  console.info(`Current timestamp: ${timestamp}`);
4619});
4620```
4621
4622### getAudioTime<sup>8+</sup>
4623
4624getAudioTime(): Promise\<number>
4625
4626获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
4627
4628**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4629
4630**返回值:**
4631
4632| 类型             | 描述                    |
4633| ---------------- | ----------------------- |
4634| Promise\<number> | Promise回调返回时间戳。 |
4635
4636**示例:**
4637
4638```js
4639audioRenderer.getAudioTime().then((timestamp) => {
4640  console.info(`Current timestamp: ${timestamp}`);
4641}).catch((err) => {
4642  console.error(`ERROR: ${err}`);
4643});
4644```
4645
4646### getBufferSize<sup>8+</sup>
4647
4648getBufferSize(callback: AsyncCallback\<number>): void
4649
4650获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
4651
4652**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4653
4654**参数:**
4655
4656| 参数名   | 类型                   | 必填 | 说明                 |
4657| -------- | ---------------------- | ---- | -------------------- |
4658| callback | AsyncCallback\<number> | 是   | 回调返回缓冲区大小。 |
4659
4660**示例:**
4661
4662```js
4663let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
4664  if (err) {
4665    console.error('getBufferSize error');
4666  }
4667});
4668```
4669
4670### getBufferSize<sup>8+</sup>
4671
4672getBufferSize(): Promise\<number>
4673
4674获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
4675
4676**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4677
4678**返回值:**
4679
4680| 类型             | 说明                        |
4681| ---------------- | --------------------------- |
4682| Promise\<number> | promise回调返回缓冲区大小。 |
4683
4684**示例:**
4685
4686```js
4687let bufferSize;
4688audioRenderer.getBufferSize().then((data) => {
4689  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
4690  bufferSize = data;
4691}).catch((err) => {
4692  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
4693});
4694```
4695
4696### setRenderRate<sup>8+</sup>
4697
4698setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
4699
4700设置音频渲染速率。使用callback方式异步返回结果。
4701
4702**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4703
4704**参数:**
4705
4706| 参数名   | 类型                                     | 必填 | 说明                     |
4707| -------- | ---------------------------------------- | ---- | ------------------------ |
4708| rate     | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。             |
4709| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。 |
4710
4711**示例:**
4712
4713```js
4714audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
4715  if (err) {
4716    console.error('Failed to set params');
4717  } else {
4718    console.info('Callback invoked to indicate a successful render rate setting.');
4719  }
4720});
4721```
4722
4723### setRenderRate<sup>8+</sup>
4724
4725setRenderRate(rate: AudioRendererRate): Promise\<void>
4726
4727设置音频渲染速率。使用Promise方式异步返回结果。
4728
4729**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4730
4731**参数:**
4732
4733| 参数名 | 类型                                     | 必填 | 说明         |
4734| ------ | ---------------------------------------- | ---- | ------------ |
4735| rate   | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。 |
4736
4737**返回值:**
4738
4739| 类型           | 说明                      |
4740| -------------- | ------------------------- |
4741| Promise\<void> | Promise用于返回执行结果。 |
4742
4743**示例:**
4744
4745```js
4746audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
4747  console.info('setRenderRate SUCCESS');
4748}).catch((err) => {
4749  console.error(`ERROR: ${err}`);
4750});
4751```
4752
4753### getRenderRate<sup>8+</sup>
4754
4755getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
4756
4757获取当前渲染速率。使用callback方式异步返回结果。
4758
4759**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4760
4761**参数:**
4762
4763| 参数名   | 类型                                                    | 必填 | 说明               |
4764| -------- | ------------------------------------------------------- | ---- | ------------------ |
4765| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是   | 回调返回渲染速率。 |
4766
4767**示例:**
4768
4769```js
4770audioRenderer.getRenderRate((err, renderrate) => {
4771  console.info(`getRenderRate: ${renderrate}`);
4772});
4773```
4774
4775### getRenderRate<sup>8+</sup>
4776
4777getRenderRate(): Promise\<AudioRendererRate>
4778
4779获取当前渲染速率。使用Promise方式异步返回结果。
4780
4781**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4782
4783**返回值:**
4784
4785| 类型                                              | 说明                      |
4786| ------------------------------------------------- | ------------------------- |
4787| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 |
4788
4789**示例:**
4790
4791```js
4792audioRenderer.getRenderRate().then((renderRate) => {
4793  console.info(`getRenderRate: ${renderRate}`);
4794}).catch((err) => {
4795  console.error(`ERROR: ${err}`);
4796});
4797```
4798### setInterruptMode<sup>9+</sup>
4799
4800setInterruptMode(mode: InterruptMode): Promise&lt;void&gt;
4801
4802设置应用的焦点模型。使用Promise异步回调。
4803
4804**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4805
4806**参数:**
4807
4808| 参数名     | 类型                                | 必填   | 说明        |
4809| ---------- | ---------------------------------- | ------ | ---------- |
4810| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |
4811
4812**返回值:**
4813
4814| 类型                | 说明                          |
4815| ------------------- | ----------------------------- |
4816| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
4817
4818**示例:**
4819
4820```js
4821let mode = 0;
4822audioRenderer.setInterruptMode(mode).then(data=>{
4823  console.info('setInterruptMode Success!');
4824}).catch((err) => {
4825  console.error(`setInterruptMode Fail: ${err}`);
4826});
4827```
4828### setInterruptMode<sup>9+</sup>
4829
4830setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void
4831
4832设置应用的焦点模型。使用Callback回调返回执行结果。
4833
4834**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4835
4836**参数:**
4837
4838| 参数名   | 类型                                | 必填   | 说明            |
4839| ------- | ----------------------------------- | ------ | -------------- |
4840|mode     | [InterruptMode](#interruptmode9)     | 是     | 焦点模型。|
4841|callback | AsyncCallback\<void>                 | 是     |回调返回执行结果。|
4842
4843**示例:**
4844
4845```js
4846let mode = 1;
4847audioRenderer.setInterruptMode(mode, (err, data)=>{
4848  if(err){
4849    console.error(`setInterruptMode Fail: ${err}`);
4850  }
4851  console.info('setInterruptMode Success!');
4852});
4853```
4854
4855### setVolume<sup>9+</sup>
4856
4857setVolume(volume: number): Promise&lt;void&gt;
4858
4859设置应用的音量。使用Promise异步回调。
4860
4861**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4862
4863**参数:**
4864
4865| 参数名     | 类型    | 必填   | 说明                 |
4866| ---------- | ------- | ------ | ------------------- |
4867| volume     | number  | 是     | 音量值范围为0.0-1.0。 |
4868
4869**返回值:**
4870
4871| 类型                | 说明                          |
4872| ------------------- | ----------------------------- |
4873| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
4874
4875**示例:**
4876
4877```js
4878audioRenderer.setVolume(0.5).then(data=>{
4879  console.info('setVolume Success!');
4880}).catch((err) => {
4881  console.error(`setVolume Fail: ${err}`);
4882});
4883```
4884### setVolume<sup>9+</sup>
4885
4886setVolume(volume: number, callback: AsyncCallback\<void>): void
4887
4888设置应用的音量。使用Callback回调返回执行结果。
4889
4890**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4891
4892**参数:**
4893
4894| 参数名  | 类型       | 必填   | 说明                 |
4895| ------- | -----------| ------ | ------------------- |
4896|volume   | number     | 是     | 音量值范围为0.0-1.0。 |
4897|callback | AsyncCallback\<void> | 是     |回调返回执行结果。|
4898
4899**示例:**
4900
4901```js
4902audioRenderer.setVolume(0.5, (err, data)=>{
4903  if(err){
4904    console.error(`setVolume Fail: ${err}`);
4905  }
4906  console.info('setVolume Success!');
4907});
4908```
4909
4910### on('audioInterrupt')<sup>9+</sup>
4911
4912on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void
4913
4914监听音频中断事件。使用callback获取中断事件。
4915
4916与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化,AudioRenderer对象start事件发生时主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
4917
4918**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4919
4920**参数:**
4921
4922| 参数名   | 类型                                         | 必填 | 说明                                                         |
4923| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
4924| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频播放被中断。) |
4925| callback | Callback<[InterruptEvent](#interruptevent9)> | 是   | 被监听的中断事件的回调。                                     |
4926
4927**错误码:**
4928
4929以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4930
4931| 错误码ID | 错误信息 |
4932| ------- | --------------------------------------------|
4933| 6800101 | if input parameter value error              |
4934
4935**示例:**
4936
4937```js
4938let isPlay;
4939let started;
4940onAudioInterrupt();
4941
4942async function onAudioInterrupt(){
4943  audioRenderer.on('audioInterrupt', async(interruptEvent) => {
4944    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
4945      switch (interruptEvent.hintType) {
4946        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
4947          console.info('Force paused. Stop writing');
4948          isPlay = false;
4949          break;
4950        case audio.InterruptHint.INTERRUPT_HINT_STOP:
4951          console.info('Force stopped. Stop writing');
4952          isPlay = false;
4953          break;
4954      }
4955    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
4956      switch (interruptEvent.hintType) {
4957        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
4958          console.info('Resume force paused renderer or ignore');
4959          await audioRenderer.start().then(async function () {
4960            console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
4961            started = true;
4962          }).catch((err) => {
4963            console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
4964            started = false;
4965          });
4966          if (started) {
4967            isPlay = true;
4968            console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
4969          } else {
4970            console.error('AudioInterruptMusic Renderer start failed');
4971          }
4972          break;
4973        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
4974          console.info('Choose to pause or ignore');
4975          if (isPlay == true) {
4976            isPlay == false;
4977            console.info('AudioInterruptMusic: Media PAUSE : TRUE');
4978          } else {
4979            isPlay = true;
4980            console.info('AudioInterruptMusic: Media PLAY : TRUE');
4981          }
4982          break;
4983      }
4984   }
4985  });
4986}
4987```
4988
4989### on('markReach')<sup>8+</sup>
4990
4991on(type: "markReach", frame: number, callback: Callback&lt;number&gt;): void
4992
4993订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
4994
4995**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4996
4997**参数:**
4998
4999| 参数名   | 类型                     | 必填 | 说明                                      |
5000| :------- | :----------------------- | :--- | :---------------------------------------- |
5001| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。 |
5002| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。         |
5003| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                    |
5004
5005**示例:**
5006
5007```js
5008audioRenderer.on('markReach', 1000, (position) => {
5009  if (position == 1000) {
5010    console.info('ON Triggered successfully');
5011  }
5012});
5013```
5014
5015
5016### off('markReach') <sup>8+</sup>
5017
5018off(type: 'markReach'): void
5019
5020取消订阅标记事件。
5021
5022**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5023
5024**参数:**
5025
5026| 参数名 | 类型   | 必填 | 说明                                              |
5027| :----- | :----- | :--- | :------------------------------------------------ |
5028| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
5029
5030**示例:**
5031
5032```js
5033audioRenderer.off('markReach');
5034```
5035
5036### on('periodReach') <sup>8+</sup>
5037
5038on(type: "periodReach", frame: number, callback: Callback&lt;number&gt;): void
5039
5040订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。
5041
5042**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5043
5044**参数:**
5045
5046| 参数名   | 类型                     | 必填 | 说明                                        |
5047| :------- | :----------------------- | :--- | :------------------------------------------ |
5048| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
5049| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。           |
5050| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                      |
5051
5052**示例:**
5053
5054```js
5055audioRenderer.on('periodReach', 1000, (position) => {
5056  if (position == 1000) {
5057    console.info('ON Triggered successfully');
5058  }
5059});
5060```
5061
5062### off('periodReach') <sup>8+</sup>
5063
5064off(type: 'periodReach'): void
5065
5066取消订阅标记事件。
5067
5068**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5069
5070**参数:**
5071
5072| 参数名 | 类型   | 必填 | 说明                                                |
5073| :----- | :----- | :--- | :-------------------------------------------------- |
5074| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
5075
5076**示例:**
5077
5078```js
5079audioRenderer.off('periodReach')
5080```
5081
5082### on('stateChange') <sup>8+</sup>
5083
5084on(type: 'stateChange', callback: Callback<AudioState\>): void
5085
5086订阅监听状态变化。
5087
5088**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5089
5090**参数:**
5091
5092| 参数名   | 类型                       | 必填 | 说明                                        |
5093| :------- | :------------------------- | :--- | :------------------------------------------ |
5094| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
5095| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
5096
5097**示例:**
5098
5099```js
5100audioRenderer.on('stateChange', (state) => {
5101  if (state == 1) {
5102    console.info('audio renderer state is: STATE_PREPARED');
5103  }
5104  if (state == 2) {
5105    console.info('audio renderer state is: STATE_RUNNING');
5106  }
5107});
5108```
5109
5110## AudioCapturer<sup>8+</sup>
5111
5112提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
5113
5114### 属性
5115
5116**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5117
5118| 名称  | 类型                     | 可读 | 可写 | 说明             |
5119| :---- | :------------------------- | :--- | :--- | :--------------- |
5120| state<sup>8+</sup>  | [AudioState](#audiostate8) | 是 | 否   | 音频采集器状态。 |
5121
5122**示例:**
5123
5124```js
5125let state = audioCapturer.state;
5126```
5127
5128### getCapturerInfo<sup>8+</sup>
5129
5130getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
5131
5132获取采集器信息。使用callback方式异步返回结果。
5133
5134**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5135
5136**参数:**
5137
5138| 参数名   | 类型                              | 必填 | 说明                                 |
5139| :------- | :-------------------------------- | :--- | :----------------------------------- |
5140| callback | AsyncCallback<AudioCapturerInfo\> | 是   | 使用callback方式异步返回采集器信息。 |
5141
5142**示例:**
5143
5144```js
5145audioCapturer.getCapturerInfo((err, capturerInfo) => {
5146  if (err) {
5147    console.error('Failed to get capture info');
5148  } else {
5149    console.info('Capturer getCapturerInfo:');
5150    console.info(`Capturer source: ${capturerInfo.source}`);
5151    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
5152  }
5153});
5154```
5155
5156
5157### getCapturerInfo<sup>8+</sup>
5158
5159getCapturerInfo(): Promise<AudioCapturerInfo\>
5160
5161获取采集器信息。使用Promise方式异步返回结果。
5162
5163**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5164
5165**返回值:**
5166
5167| 类型                                              | 说明                                |
5168| :------------------------------------------------ | :---------------------------------- |
5169| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 |
5170
5171**示例:**
5172
5173```js
5174audioCapturer.getCapturerInfo().then((audioParamsGet) => {
5175  if (audioParamsGet != undefined) {
5176    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
5177    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
5178    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
5179  } else {
5180    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
5181    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
5182  }
5183}).catch((err) => {
5184  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
5185});
5186```
5187
5188### getStreamInfo<sup>8+</sup>
5189
5190getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
5191
5192获取采集器流信息。使用callback方式异步返回结果。
5193
5194**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5195
5196**参数:**
5197
5198| 参数名   | 类型                                                 | 必填 | 说明                             |
5199| :------- | :--------------------------------------------------- | :--- | :------------------------------- |
5200| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 使用callback方式异步返回流信息。 |
5201
5202**示例:**
5203
5204```js
5205audioCapturer.getStreamInfo((err, streamInfo) => {
5206  if (err) {
5207    console.error('Failed to get stream info');
5208  } else {
5209    console.info('Capturer GetStreamInfo:');
5210    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
5211    console.info(`Capturer channel: ${streamInfo.channels}`);
5212    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
5213    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
5214  }
5215});
5216```
5217
5218### getStreamInfo<sup>8+</sup>
5219
5220getStreamInfo(): Promise<AudioStreamInfo\>
5221
5222获取采集器流信息。使用Promise方式异步返回结果。
5223
5224**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5225
5226**返回值:**
5227
5228| 类型                                           | 说明                            |
5229| :--------------------------------------------- | :------------------------------ |
5230| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | 使用Promise方式异步返回流信息。 |
5231
5232**示例:**
5233
5234```js
5235audioCapturer.getStreamInfo().then((audioParamsGet) => {
5236  console.info('getStreamInfo:');
5237  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
5238  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
5239  console.info(`channels: ${audioParamsGet.channels}`);
5240  console.info(`encodingType: ${audioParamsGet.encodingType}`);
5241}).catch((err) => {
5242  console.error(`getStreamInfo :ERROR: ${err}`);
5243});
5244```
5245
5246### getAudioStreamId<sup>9+</sup>
5247
5248getAudioStreamId(callback: AsyncCallback<number\>): void
5249
5250获取音频流id,使用callback方式异步返回结果。
5251
5252**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5253
5254**参数:**
5255
5256| 参数名   | 类型                                                 | 必填 | 说明                 |
5257| :------- | :--------------------------------------------------- | :--- | :------------------- |
5258| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
5259
5260**示例:**
5261
5262```js
5263audioCapturer.getAudioStreamId((err, streamid) => {
5264  console.info(`audioCapturer GetStreamId: ${streamid}`);
5265});
5266```
5267
5268### getAudioStreamId<sup>9+</sup>
5269
5270getAudioStreamId(): Promise<number\>
5271
5272获取音频流id,使用Promise方式异步返回结果。
5273
5274**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5275
5276**返回值:**
5277
5278| 类型             | 说明                   |
5279| :----------------| :--------------------- |
5280| Promise<number\> | Promise返回音频流id。 |
5281
5282**示例:**
5283
5284```js
5285audioCapturer.getAudioStreamId().then((streamid) => {
5286  console.info(`audioCapturer getAudioStreamId: ${streamid}`);
5287}).catch((err) => {
5288  console.error(`ERROR: ${err}`);
5289});
5290```
5291
5292### start<sup>8+</sup>
5293
5294start(callback: AsyncCallback<void\>): void
5295
5296启动音频采集器。使用callback方式异步返回结果。
5297
5298**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5299
5300**参数:**
5301
5302| 参数名   | 类型                 | 必填 | 说明                           |
5303| :------- | :------------------- | :--- | :----------------------------- |
5304| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5305
5306**示例:**
5307
5308```js
5309audioCapturer.start((err) => {
5310  if (err) {
5311    console.error('Capturer start failed.');
5312  } else {
5313    console.info('Capturer start success.');
5314  }
5315});
5316```
5317
5318
5319### start<sup>8+</sup>
5320
5321start(): Promise<void\>
5322
5323启动音频采集器。使用Promise方式异步返回结果。
5324
5325**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5326
5327**返回值:**
5328
5329| 类型           | 说明                          |
5330| :------------- | :---------------------------- |
5331| Promise<void\> | 使用Promise方式异步返回结果。 |
5332
5333**示例:**
5334
5335```js
5336audioCapturer.start().then(() => {
5337  console.info('AudioFrameworkRecLog: ---------START---------');
5338  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
5339  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
5340  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
5341  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
5342    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
5343  }
5344}).catch((err) => {
5345  console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
5346});
5347```
5348
5349### stop<sup>8+</sup>
5350
5351stop(callback: AsyncCallback<void\>): void
5352
5353停止采集。使用callback方式异步返回结果。
5354
5355**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5356
5357**参数:**
5358
5359| 参数名   | 类型                 | 必填 | 说明                           |
5360| :------- | :------------------- | :--- | :----------------------------- |
5361| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5362
5363**示例:**
5364
5365```js
5366audioCapturer.stop((err) => {
5367  if (err) {
5368    console.error('Capturer stop failed');
5369  } else {
5370    console.info('Capturer stopped.');
5371  }
5372});
5373```
5374
5375
5376### stop<sup>8+</sup>
5377
5378stop(): Promise<void\>
5379
5380停止采集。使用Promise方式异步返回结果。
5381
5382**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5383
5384**返回值:**
5385
5386| 类型           | 说明                          |
5387| :------------- | :---------------------------- |
5388| Promise<void\> | 使用Promise方式异步返回结果。 |
5389
5390**示例:**
5391
5392```js
5393audioCapturer.stop().then(() => {
5394  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
5395  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
5396  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
5397    console.info('AudioFrameworkRecLog: State is Stopped:');
5398  }
5399}).catch((err) => {
5400  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
5401});
5402```
5403
5404### release<sup>8+</sup>
5405
5406release(callback: AsyncCallback<void\>): void
5407
5408释放采集器。使用callback方式异步返回结果。
5409
5410**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5411
5412**参数:**
5413
5414| 参数名   | 类型                 | 必填 | 说明                                |
5415| :------- | :------------------- | :--- | :---------------------------------- |
5416| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5417
5418**示例:**
5419
5420```js
5421audioCapturer.release((err) => {
5422  if (err) {
5423    console.error('capturer release failed');
5424  } else {
5425    console.info('capturer released.');
5426  }
5427});
5428```
5429
5430
5431### release<sup>8+</sup>
5432
5433release(): Promise<void\>
5434
5435释放采集器。使用Promise方式异步返回结果。
5436
5437**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5438
5439**返回值:**
5440
5441| 类型           | 说明                          |
5442| :------------- | :---------------------------- |
5443| Promise<void\> | 使用Promise方式异步返回结果。 |
5444
5445**示例:**
5446
5447```js
5448let stateFlag;
5449audioCapturer.release().then(() => {
5450  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
5451  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
5452  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
5453  console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
5454}).catch((err) => {
5455  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
5456});
5457```
5458
5459### read<sup>8+</sup>
5460
5461read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void
5462
5463读入缓冲区。使用callback方式异步返回结果。
5464
5465**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5466
5467**参数:**
5468
5469| 参数名         | 类型                        | 必填 | 说明                             |
5470| :------------- | :-------------------------- | :--- | :------------------------------- |
5471| size           | number                      | 是   | 读入的字节数。                   |
5472| isBlockingRead | boolean                     | 是   | 是否阻塞读操作。                 |
5473| callback       | AsyncCallback<ArrayBuffer\> | 是   | 使用callback方式异步返回缓冲区。 |
5474
5475**示例:**
5476
5477```js
5478let bufferSize;
5479audioCapturer.getBufferSize().then((data) => {
5480  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
5481  bufferSize = data;
5482  }).catch((err) => {
5483    console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
5484  });
5485audioCapturer.read(bufferSize, true, async(err, buffer) => {
5486  if (!err) {
5487    console.info('Success in reading the buffer data');
5488  }
5489});
5490```
5491
5492### read<sup>8+</sup>
5493
5494read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
5495
5496读入缓冲区。使用Promise方式异步返回结果。
5497
5498**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5499
5500**参数:**
5501
5502| 参数名         | 类型    | 必填 | 说明             |
5503| :------------- | :------ | :--- | :--------------- |
5504| size           | number  | 是   | 读入的字节数。   |
5505| isBlockingRead | boolean | 是   | 是否阻塞读操作。 |
5506
5507**返回值:**
5508
5509| 类型                  | 说明                                                   |
5510| :-------------------- | :----------------------------------------------------- |
5511| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
5512
5513**示例:**
5514
5515```js
5516let bufferSize;
5517audioCapturer.getBufferSize().then((data) => {
5518  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
5519  bufferSize = data;
5520  }).catch((err) => {
5521  console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
5522  });
5523console.info(`Buffer size: ${bufferSize}`);
5524audioCapturer.read(bufferSize, true).then((buffer) => {
5525  console.info('buffer read successfully');
5526}).catch((err) => {
5527  console.info(`ERROR : ${err}`);
5528});
5529```
5530
5531### getAudioTime<sup>8+</sup>
5532
5533getAudioTime(callback: AsyncCallback<number\>): void
5534
5535获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
5536
5537**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5538
5539**参数:**
5540
5541| 参数名   | 类型                   | 必填 | 说明                           |
5542| :------- | :--------------------- | :--- | :----------------------------- |
5543| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回结果。 |
5544
5545**示例:**
5546
5547```js
5548audioCapturer.getAudioTime((err, timestamp) => {
5549  console.info(`Current timestamp: ${timestamp}`);
5550});
5551```
5552
5553### getAudioTime<sup>8+</sup>
5554
5555getAudioTime(): Promise<number\>
5556
5557获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
5558
5559**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5560
5561**返回值:**
5562
5563| 类型             | 说明                          |
5564| :--------------- | :---------------------------- |
5565| Promise<number\> | 使用Promise方式异步返回结果。 |
5566
5567**示例:**
5568
5569```js
5570audioCapturer.getAudioTime().then((audioTime) => {
5571  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
5572}).catch((err) => {
5573  console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
5574});
5575```
5576
5577### getBufferSize<sup>8+</sup>
5578
5579getBufferSize(callback: AsyncCallback<number\>): void
5580
5581获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
5582
5583**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5584
5585**参数:**
5586
5587| 参数名   | 类型                   | 必填 | 说明                                 |
5588| :------- | :--------------------- | :--- | :----------------------------------- |
5589| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回缓冲区大小。 |
5590
5591**示例:**
5592
5593```js
5594audioCapturer.getBufferSize((err, bufferSize) => {
5595  if (!err) {
5596    console.info(`BufferSize : ${bufferSize}`);
5597    audioCapturer.read(bufferSize, true).then((buffer) => {
5598      console.info(`Buffer read is ${buffer}`);
5599    }).catch((err) => {
5600      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
5601    });
5602  }
5603});
5604```
5605
5606### getBufferSize<sup>8+</sup>
5607
5608getBufferSize(): Promise<number\>
5609
5610获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
5611
5612**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5613
5614**返回值:**
5615
5616| 类型             | 说明                                |
5617| :--------------- | :---------------------------------- |
5618| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 |
5619
5620**示例:**
5621
5622```js
5623let bufferSize;
5624audioCapturer.getBufferSize().then((data) => {
5625  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
5626  bufferSize = data;
5627}).catch((err) => {
5628  console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
5629});
5630```
5631
5632### on('markReach')<sup>8+</sup>
5633
5634on(type: "markReach", frame: number, callback: Callback&lt;number&gt;): void
5635
5636订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
5637
5638**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5639
5640**参数:**
5641
5642| 参数名   | 类型                     | 必填 | 说明                                       |
5643| :------- | :----------------------  | :--- | :----------------------------------------- |
5644| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。  |
5645| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。           |
5646| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调。 |
5647
5648**示例:**
5649
5650```js
5651audioCapturer.on('markReach', 1000, (position) => {
5652  if (position == 1000) {
5653    console.info('ON Triggered successfully');
5654  }
5655});
5656```
5657
5658### off('markReach')<sup>8+</sup>
5659
5660off(type: 'markReach'): void
5661
5662取消订阅标记到达的事件。
5663
5664**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5665
5666**参数:**
5667
5668| 参数名 | 类型   | 必填 | 说明                                          |
5669| :----- | :----- | :--- | :-------------------------------------------- |
5670| type   | string | 是   | 取消事件回调类型,支持的事件为:'markReach'。 |
5671
5672**示例:**
5673
5674```js
5675audioCapturer.off('markReach');
5676```
5677
5678### on('periodReach')<sup>8+</sup>
5679
5680on(type: "periodReach", frame: number, callback: Callback&lt;number&gt;): void
5681
5682订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。
5683
5684**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5685
5686**参数:**
5687
5688| 参数名   | 类型                     | 必填 | 说明                                        |
5689| :------- | :----------------------- | :--- | :------------------------------------------ |
5690| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
5691| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。            |
5692| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调    |
5693
5694**示例:**
5695
5696```js
5697audioCapturer.on('periodReach', 1000, (position) => {
5698  if (position == 1000) {
5699    console.info('ON Triggered successfully');
5700  }
5701});
5702```
5703
5704### off('periodReach')<sup>8+</sup>
5705
5706off(type: 'periodReach'): void
5707
5708取消订阅标记到达的事件。
5709
5710**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5711
5712**参数:**
5713
5714| 参数名 | 类型   | 必填 | 说明                                            |
5715| :----- | :----- | :--- | :---------------------------------------------- |
5716| type   | string | 是  | 取消事件回调类型,支持的事件为:'periodReach'。 |
5717
5718**示例:**
5719
5720```js
5721audioCapturer.off('periodReach')
5722```
5723
5724### on('stateChange') <sup>8+</sup>
5725
5726on(type: 'stateChange', callback: Callback<AudioState\>): void
5727
5728订阅监听状态变化。
5729
5730**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5731
5732**参数:**
5733
5734| 参数名   | 类型                       | 必填 | 说明                                        |
5735| :------- | :------------------------- | :--- | :------------------------------------------ |
5736| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
5737| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
5738
5739**示例:**
5740
5741```js
5742audioCapturer.on('stateChange', (state) => {
5743  if (state == 1) {
5744    console.info('audio capturer state is: STATE_PREPARED');
5745  }
5746  if (state == 2) {
5747    console.info('audio capturer state is: STATE_RUNNING');
5748  }
5749});
5750```
5751
5752## ToneType<sup>9+</sup>
5753
5754枚举,播放器的音调类型。
5755
5756**系统接口:** 该接口为系统接口
5757
5758**系统能力:** SystemCapability.Multimedia.Audio.Tone
5759
5760| 名称                                              |  值    | 说明                          |
5761| :------------------------------------------------ | :----- | :----------------------------|
5762| TONE_TYPE_DIAL_0                                  | 0      | 键0的DTMF音。                 |
5763| TONE_TYPE_DIAL_1                                  | 1      | 键1的DTMF音。                 |
5764| TONE_TYPE_DIAL_2                                  | 2      | 键2的DTMF音。                 |
5765| TONE_TYPE_DIAL_3                                  | 3      | 键3的DTMF音。                 |
5766| TONE_TYPE_DIAL_4                                  | 4      | 键4的DTMF音。                 |
5767| TONE_TYPE_DIAL_5                                  | 5      | 键5的DTMF音。                 |
5768| TONE_TYPE_DIAL_6                                  | 6      | 键6的DTMF音。                 |
5769| TONE_TYPE_DIAL_7                                  | 7      | 键7的DTMF音。                 |
5770| TONE_TYPE_DIAL_8                                  | 8      | 键8的DTMF音。                 |
5771| TONE_TYPE_DIAL_9                                  | 9      | 键9的DTMF音。                 |
5772| TONE_TYPE_DIAL_S                                  | 10     | 键*的DTMF音。                 |
5773| TONE_TYPE_DIAL_P                                  | 11     | 键#的DTMF音。                 |
5774| TONE_TYPE_DIAL_A                                  | 12     | 键A的DTMF音。                 |
5775| TONE_TYPE_DIAL_B                                  | 13     | 键B的DTMF音。                 |
5776| TONE_TYPE_DIAL_C                                  | 14     | 键C的DTMF音。                 |
5777| TONE_TYPE_DIAL_D                                  | 15     | 键D的DTMF音。                 |
5778| TONE_TYPE_COMMON_SUPERVISORY_DIAL                 | 100    | 呼叫监管音调,拨号音。          |
5779| TONE_TYPE_COMMON_SUPERVISORY_BUSY                 | 101    | 呼叫监管音调,忙。              |
5780| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION           | 102    | 呼叫监管音调,拥塞。            |
5781| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK            | 103    | 呼叫监管音调,无线电 ACK。      |
5782| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE  | 104    | 呼叫监管音调,无线电不可用。     |
5783| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING         | 106    | 呼叫监管音调,呼叫等待。        |
5784| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE             | 107    | 呼叫监管音调,铃声。            |
5785| TONE_TYPE_COMMON_PROPRIETARY_BEEP                 | 200    | 专有声调,一般蜂鸣声。          |
5786| TONE_TYPE_COMMON_PROPRIETARY_ACK                  | 201    | 专有声调,ACK。                |
5787| TONE_TYPE_COMMON_PROPRIETARY_PROMPT               | 203    | 专有声调,PROMPT。             |
5788| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP          | 204    | 专有声调,双重蜂鸣声。          |
5789
5790## TonePlayer<sup>9+</sup>
5791
5792提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
5793
5794**系统接口:** 该接口为系统接口
5795
5796### load<sup>9+</sup>
5797
5798load(type: ToneType, callback: AsyncCallback&lt;void&gt;): void
5799
5800加载DTMF音调配置。使用callback方式异步返回结果。
5801
5802**系统接口:** 该接口为系统接口
5803
5804**系统能力:** SystemCapability.Multimedia.Audio.Tone
5805
5806**参数:**
5807
5808| 参数名          | 类型                        | 必填  | 说明                            |
5809| :--------------| :-------------------------- | :-----| :------------------------------ |
5810| type           | [ToneType](#tonetype9)       | 是    | 配置的音调类型。                 |
5811| callback       | AsyncCallback<void\>        | 是    | 使用callback方式异步返回结果。 |
5812
5813**示例:**
5814
5815```js
5816tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
5817  if (err) {
5818    console.error(`callback call load failed error: ${err.message}`);
5819    return;
5820  } else {
5821    console.info('callback call load success');
5822  }
5823});
5824```
5825
5826### load<sup>9+</sup>
5827
5828load(type: ToneType): Promise&lt;void&gt;
5829
5830加载DTMF音调配置。使用Promise方式异步返回结果。
5831
5832**系统接口:** 该接口为系统接口
5833
5834**系统能力:** SystemCapability.Multimedia.Audio.Tone
5835
5836**参数:**
5837
5838| 参数名         | 类型                    | 必填  |  说明             |
5839| :------------- | :--------------------- | :---  | ---------------- |
5840| type           | [ToneType](#tonetype9)   | 是    | 配置的音调类型。  |
5841
5842**返回值:**
5843
5844| 类型            | 说明                        |
5845| :--------------| :-------------------------- |
5846| Promise<void\> | 使用Promise方式异步返回结果。 |
5847
5848**示例:**
5849
5850```js
5851tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
5852  console.info('promise call load ');
5853}).catch(() => {
5854  console.error('promise call load fail');
5855});
5856```
5857
5858### start<sup>9+</sup>
5859
5860start(callback: AsyncCallback&lt;void&gt;): void
5861
5862启动DTMF音调播放。使用callback方式异步返回结果。
5863
5864**系统接口:** 该接口为系统接口
5865
5866**系统能力:** SystemCapability.Multimedia.Audio.Tone
5867
5868**参数:**
5869
5870| 参数名   | 类型                 | 必填 | 说明                           |
5871| :------- | :------------------- | :--- | :----------------------------- |
5872| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5873
5874**示例:**
5875
5876```js
5877tonePlayer.start((err) => {
5878  if (err) {
5879    console.error(`callback call start failed error: ${err.message}`);
5880    return;
5881  } else {
5882    console.info('callback call start success');
5883  }
5884});
5885```
5886
5887### start<sup>9+</sup>
5888
5889start(): Promise&lt;void&gt;
5890
5891启动DTMF音调播放。使用Promise方式异步返回结果。
5892
5893**系统接口:** 该接口为系统接口
5894
5895**系统能力:** SystemCapability.Multimedia.Audio.Tone
5896
5897**返回值:**
5898
5899| 类型           | 说明                          |
5900| :------------- | :---------------------------- |
5901| Promise<void\> | 使用Promise方式异步返回结果。 |
5902
5903**示例:**
5904
5905```js
5906tonePlayer.start().then(() => {
5907  console.info('promise call start');
5908}).catch(() => {
5909  console.error('promise call start fail');
5910});
5911```
5912
5913### stop<sup>9+</sup>
5914
5915stop(callback: AsyncCallback&lt;void&gt;): void
5916
5917停止当前正在播放的音调。使用callback方式异步返回结果。
5918
5919**系统接口:** 该接口为系统接口
5920
5921**系统能力:** SystemCapability.Multimedia.Audio.Tone
5922
5923**参数:**
5924
5925| 参数名   | 类型                 | 必填 | 说明                           |
5926| :------- | :------------------- | :--- | :----------------------------- |
5927| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5928
5929**示例:**
5930
5931```js
5932tonePlayer.stop((err) => {
5933  if (err) {
5934    console.error(`callback call stop error: ${err.message}`);
5935    return;
5936  } else {
5937    console.error('callback call stop success ');
5938  }
5939});
5940```
5941
5942### stop<sup>9+</sup>
5943
5944stop(): Promise&lt;void&gt;
5945
5946停止当前正在播放的音调。使用Promise方式异步返回结果。
5947
5948**系统接口:** 该接口为系统接口
5949
5950**系统能力:** SystemCapability.Multimedia.Audio.Tone
5951
5952**返回值:**
5953
5954| 类型           | 说明                          |
5955| :------------- | :---------------------------- |
5956| Promise<void\> | 使用Promise方式异步返回结果。 |
5957
5958**示例:**
5959
5960```js
5961tonePlayer.stop().then(() => {
5962  console.info('promise call stop finish');
5963}).catch(() => {
5964  console.error('promise call stop fail');
5965});
5966```
5967
5968### release<sup>9+</sup>
5969
5970release(callback: AsyncCallback&lt;void&gt;): void
5971
5972释放与此TonePlayer对象关联的资源。使用callback方式异步返回结果。
5973
5974**系统接口:** 该接口为系统接口
5975
5976**系统能力:** SystemCapability.Multimedia.Audio.Tone
5977
5978**参数:**
5979
5980| 参数名   | 类型                 | 必填 | 说明                            |
5981| :------- | :------------------- | :--- | :---------------------------- |
5982| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。  |
5983
5984**示例:**
5985
5986```js
5987tonePlayer.release((err) => {
5988  if (err) {
5989    console.error(`callback call release failed error: ${err.message}`);
5990    return;
5991  } else {
5992    console.info('callback call release success ');
5993  }
5994});
5995```
5996
5997### release<sup>9+</sup>
5998
5999release(): Promise&lt;void&gt;
6000
6001释放与此TonePlayer对象关联的资源。使用Promise方式异步返回结果。
6002
6003**系统接口:** 该接口为系统接口
6004
6005**系统能力:** SystemCapability.Multimedia.Audio.Tone
6006
6007**返回值:**
6008
6009| 类型           | 说明                          |
6010| :------------- | :---------------------------- |
6011| Promise<void\> | 使用Promise方式异步返回结果。 |
6012
6013**示例:**
6014
6015```js
6016tonePlayer.release().then(() => {
6017  console.info('promise call release');
6018}).catch(() => {
6019  console.error('promise call release fail');
6020});
6021```
6022
6023## ActiveDeviceType<sup>(deprecated)</sup>
6024
6025枚举,活跃设备类型。
6026
6027> **说明:**
6028> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。
6029
6030**系统能力:** SystemCapability.Multimedia.Audio.Device
6031
6032| 名称          |  值     | 说明                                                 |
6033| ------------- | ------ | ---------------------------------------------------- |
6034| SPEAKER       | 2      | 扬声器。                                             |
6035| BLUETOOTH_SCO | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
6036
6037## InterruptActionType<sup>(deprecated)</sup>
6038
6039枚举,中断事件返回类型。
6040
6041> **说明:**
6042> 从 API version 7 开始支持,从 API version 9 开始废弃。
6043
6044**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6045
6046| 名称           |  值     | 说明               |
6047| -------------- | ------ | ------------------ |
6048| TYPE_ACTIVATED | 0      | 表示触发焦点事件。 |
6049| TYPE_INTERRUPT | 1      | 表示音频打断事件。 |
6050
6051## AudioInterrupt<sup>(deprecated)</sup>
6052
6053音频监听事件传入的参数。
6054
6055> **说明:**
6056> 从 API version 7 开始支持,从 API version 9 开始废弃。
6057
6058**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6059
6060| 名称            | 类型                        | 必填 | 说明                                                         |
6061| --------------- | --------------------------- | ----| ------------------------------------------------------------ |
6062| streamUsage     | [StreamUsage](#streamusage) | 是  | 音频流使用类型。                                             |
6063| contentType     | [ContentType](#contenttype) | 是  | 音频打断媒体类型。                                           |
6064| pauseWhenDucked | boolean                     | 是  | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
6065
6066## InterruptAction<sup>(deprecated)</sup>
6067
6068音频打断/获取焦点事件的回调方法。
6069
6070> **说明:**
6071> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。
6072
6073**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6074
6075| 名称       | 类型                                        | 必填 | 说明                                                         |
6076| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
6077| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是   | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
6078| type       | [InterruptType](#interrupttype)             | 否   | 打断事件类型。                                               |
6079| hint       | [InterruptHint](#interrupthint)             | 否   | 打断事件提示。                                               |
6080| activated  | boolean                                     | 否   | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |
6081