• 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);
4528let stat = await fs.stat(path);
4529let buf = new ArrayBuffer(bufferSize);
4530let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
4531for (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### write<sup>8+</sup>
4550
4551write(buffer: ArrayBuffer): Promise\<number>
4552
4553写入缓冲区。使用Promise方式异步返回结果。
4554
4555**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4556
4557**返回值:**
4558
4559| 类型             | 说明                                                         |
4560| ---------------- | ------------------------------------------------------------ |
4561| Promise\<number> | Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。 |
4562
4563**示例:**
4564
4565```js
4566let bufferSize;
4567audioRenderer.getBufferSize().then((data) => {
4568  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
4569  bufferSize = data;
4570  }).catch((err) => {
4571  console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
4572  });
4573console.info(`BufferSize: ${bufferSize}`);
4574let context = featureAbility.getContext();
4575let path;
4576async function getCacheDir(){
4577  path = await context.getCacheDir();
4578}
4579let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
4580let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
4581let stat = await fs.stat(path);
4582let buf = new ArrayBuffer(bufferSize);
4583let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
4584for (let i = 0;i < len; i++) {
4585    let options = {
4586      offset: i * bufferSize,
4587      length: bufferSize
4588    }
4589    let readsize = await fs.read(file.fd, buf, options)
4590    try{
4591       let writeSize = await audioRenderer.write(buf);
4592    } catch(err) {
4593       console.error(`audioRenderer.write err: ${err}`);
4594    }
4595}
4596```
4597
4598### getAudioTime<sup>8+</sup>
4599
4600getAudioTime(callback: AsyncCallback\<number>): void
4601
4602获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
4603
4604**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4605
4606**参数:**
4607
4608| 参数名   | 类型                   | 必填 | 说明             |
4609| -------- | ---------------------- | ---- | ---------------- |
4610| callback | AsyncCallback\<number> | 是   | 回调返回时间戳。 |
4611
4612**示例:**
4613
4614```js
4615audioRenderer.getAudioTime((err, timestamp) => {
4616  console.info(`Current timestamp: ${timestamp}`);
4617});
4618```
4619
4620### getAudioTime<sup>8+</sup>
4621
4622getAudioTime(): Promise\<number>
4623
4624获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
4625
4626**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4627
4628**返回值:**
4629
4630| 类型             | 描述                    |
4631| ---------------- | ----------------------- |
4632| Promise\<number> | Promise回调返回时间戳。 |
4633
4634**示例:**
4635
4636```js
4637audioRenderer.getAudioTime().then((timestamp) => {
4638  console.info(`Current timestamp: ${timestamp}`);
4639}).catch((err) => {
4640  console.error(`ERROR: ${err}`);
4641});
4642```
4643
4644### getBufferSize<sup>8+</sup>
4645
4646getBufferSize(callback: AsyncCallback\<number>): void
4647
4648获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
4649
4650**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4651
4652**参数:**
4653
4654| 参数名   | 类型                   | 必填 | 说明                 |
4655| -------- | ---------------------- | ---- | -------------------- |
4656| callback | AsyncCallback\<number> | 是   | 回调返回缓冲区大小。 |
4657
4658**示例:**
4659
4660```js
4661let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
4662  if (err) {
4663    console.error('getBufferSize error');
4664  }
4665});
4666```
4667
4668### getBufferSize<sup>8+</sup>
4669
4670getBufferSize(): Promise\<number>
4671
4672获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
4673
4674**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4675
4676**返回值:**
4677
4678| 类型             | 说明                        |
4679| ---------------- | --------------------------- |
4680| Promise\<number> | promise回调返回缓冲区大小。 |
4681
4682**示例:**
4683
4684```js
4685let bufferSize;
4686audioRenderer.getBufferSize().then((data) => {
4687  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
4688  bufferSize = data;
4689}).catch((err) => {
4690  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
4691});
4692```
4693
4694### setRenderRate<sup>8+</sup>
4695
4696setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
4697
4698设置音频渲染速率。使用callback方式异步返回结果。
4699
4700**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4701
4702**参数:**
4703
4704| 参数名   | 类型                                     | 必填 | 说明                     |
4705| -------- | ---------------------------------------- | ---- | ------------------------ |
4706| rate     | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。             |
4707| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。 |
4708
4709**示例:**
4710
4711```js
4712audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
4713  if (err) {
4714    console.error('Failed to set params');
4715  } else {
4716    console.info('Callback invoked to indicate a successful render rate setting.');
4717  }
4718});
4719```
4720
4721### setRenderRate<sup>8+</sup>
4722
4723setRenderRate(rate: AudioRendererRate): Promise\<void>
4724
4725设置音频渲染速率。使用Promise方式异步返回结果。
4726
4727**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4728
4729**参数:**
4730
4731| 参数名 | 类型                                     | 必填 | 说明         |
4732| ------ | ---------------------------------------- | ---- | ------------ |
4733| rate   | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。 |
4734
4735**返回值:**
4736
4737| 类型           | 说明                      |
4738| -------------- | ------------------------- |
4739| Promise\<void> | Promise用于返回执行结果。 |
4740
4741**示例:**
4742
4743```js
4744audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
4745  console.info('setRenderRate SUCCESS');
4746}).catch((err) => {
4747  console.error(`ERROR: ${err}`);
4748});
4749```
4750
4751### getRenderRate<sup>8+</sup>
4752
4753getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
4754
4755获取当前渲染速率。使用callback方式异步返回结果。
4756
4757**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4758
4759**参数:**
4760
4761| 参数名   | 类型                                                    | 必填 | 说明               |
4762| -------- | ------------------------------------------------------- | ---- | ------------------ |
4763| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是   | 回调返回渲染速率。 |
4764
4765**示例:**
4766
4767```js
4768audioRenderer.getRenderRate((err, renderrate) => {
4769  console.info(`getRenderRate: ${renderrate}`);
4770});
4771```
4772
4773### getRenderRate<sup>8+</sup>
4774
4775getRenderRate(): Promise\<AudioRendererRate>
4776
4777获取当前渲染速率。使用Promise方式异步返回结果。
4778
4779**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4780
4781**返回值:**
4782
4783| 类型                                              | 说明                      |
4784| ------------------------------------------------- | ------------------------- |
4785| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 |
4786
4787**示例:**
4788
4789```js
4790audioRenderer.getRenderRate().then((renderRate) => {
4791  console.info(`getRenderRate: ${renderRate}`);
4792}).catch((err) => {
4793  console.error(`ERROR: ${err}`);
4794});
4795```
4796### setInterruptMode<sup>9+</sup>
4797
4798setInterruptMode(mode: InterruptMode): Promise&lt;void&gt;
4799
4800设置应用的焦点模型。使用Promise异步回调。
4801
4802**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4803
4804**参数:**
4805
4806| 参数名     | 类型                                | 必填   | 说明        |
4807| ---------- | ---------------------------------- | ------ | ---------- |
4808| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |
4809
4810**返回值:**
4811
4812| 类型                | 说明                          |
4813| ------------------- | ----------------------------- |
4814| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
4815
4816**示例:**
4817
4818```js
4819let mode = 0;
4820audioRenderer.setInterruptMode(mode).then(data=>{
4821  console.info('setInterruptMode Success!');
4822}).catch((err) => {
4823  console.error(`setInterruptMode Fail: ${err}`);
4824});
4825```
4826### setInterruptMode<sup>9+</sup>
4827
4828setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void
4829
4830设置应用的焦点模型。使用Callback回调返回执行结果。
4831
4832**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4833
4834**参数:**
4835
4836| 参数名   | 类型                                | 必填   | 说明            |
4837| ------- | ----------------------------------- | ------ | -------------- |
4838|mode     | [InterruptMode](#interruptmode9)     | 是     | 焦点模型。|
4839|callback | AsyncCallback\<void>                 | 是     |回调返回执行结果。|
4840
4841**示例:**
4842
4843```js
4844let mode = 1;
4845audioRenderer.setInterruptMode(mode, (err, data)=>{
4846  if(err){
4847    console.error(`setInterruptMode Fail: ${err}`);
4848  }
4849  console.info('setInterruptMode Success!');
4850});
4851```
4852
4853### setVolume<sup>9+</sup>
4854
4855setVolume(volume: number): Promise&lt;void&gt;
4856
4857设置应用的音量。使用Promise异步回调。
4858
4859**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4860
4861**参数:**
4862
4863| 参数名     | 类型    | 必填   | 说明                 |
4864| ---------- | ------- | ------ | ------------------- |
4865| volume     | number  | 是     | 音量值范围为0.0-1.0。 |
4866
4867**返回值:**
4868
4869| 类型                | 说明                          |
4870| ------------------- | ----------------------------- |
4871| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
4872
4873**示例:**
4874
4875```js
4876audioRenderer.setVolume(0.5).then(data=>{
4877  console.info('setVolume Success!');
4878}).catch((err) => {
4879  console.error(`setVolume Fail: ${err}`);
4880});
4881```
4882### setVolume<sup>9+</sup>
4883
4884setVolume(volume: number, callback: AsyncCallback\<void>): void
4885
4886设置应用的音量。使用Callback回调返回执行结果。
4887
4888**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4889
4890**参数:**
4891
4892| 参数名  | 类型       | 必填   | 说明                 |
4893| ------- | -----------| ------ | ------------------- |
4894|volume   | number     | 是     | 音量值范围为0.0-1.0。 |
4895|callback | AsyncCallback\<void> | 是     |回调返回执行结果。|
4896
4897**示例:**
4898
4899```js
4900audioRenderer.setVolume(0.5, (err, data)=>{
4901  if(err){
4902    console.error(`setVolume Fail: ${err}`);
4903  }
4904  console.info('setVolume Success!');
4905});
4906```
4907
4908### on('audioInterrupt')<sup>9+</sup>
4909
4910on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void
4911
4912监听音频中断事件。使用callback获取中断事件。
4913
4914与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化,AudioRenderer对象start事件发生时主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
4915
4916**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
4917
4918**参数:**
4919
4920| 参数名   | 类型                                         | 必填 | 说明                                                         |
4921| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
4922| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频播放被中断。) |
4923| callback | Callback<[InterruptEvent](#interruptevent9)> | 是   | 被监听的中断事件的回调。                                     |
4924
4925**错误码:**
4926
4927以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4928
4929| 错误码ID | 错误信息 |
4930| ------- | --------------------------------------------|
4931| 6800101 | if input parameter value error              |
4932
4933**示例:**
4934
4935```js
4936let isPlay;
4937let started;
4938onAudioInterrupt();
4939
4940async function onAudioInterrupt(){
4941  audioRenderer.on('audioInterrupt', async(interruptEvent) => {
4942    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
4943      switch (interruptEvent.hintType) {
4944        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
4945          console.info('Force paused. Stop writing');
4946          isPlay = false;
4947          break;
4948        case audio.InterruptHint.INTERRUPT_HINT_STOP:
4949          console.info('Force stopped. Stop writing');
4950          isPlay = false;
4951          break;
4952      }
4953    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
4954      switch (interruptEvent.hintType) {
4955        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
4956          console.info('Resume force paused renderer or ignore');
4957          await audioRenderer.start().then(async function () {
4958            console.info('AudioInterruptMusic: renderInstant started :SUCCESS ');
4959            started = true;
4960          }).catch((err) => {
4961            console.error(`AudioInterruptMusic: renderInstant start :ERROR : ${err}`);
4962            started = false;
4963          });
4964          if (started) {
4965            isPlay = true;
4966            console.info(`AudioInterruptMusic Renderer started : isPlay : ${isPlay}`);
4967          } else {
4968            console.error('AudioInterruptMusic Renderer start failed');
4969          }
4970          break;
4971        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
4972          console.info('Choose to pause or ignore');
4973          if (isPlay == true) {
4974            isPlay == false;
4975            console.info('AudioInterruptMusic: Media PAUSE : TRUE');
4976          } else {
4977            isPlay = true;
4978            console.info('AudioInterruptMusic: Media PLAY : TRUE');
4979          }
4980          break;
4981      }
4982   }
4983  });
4984}
4985```
4986
4987### on('markReach')<sup>8+</sup>
4988
4989on(type: "markReach", frame: number, callback: Callback&lt;number&gt;): void
4990
4991订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
4992
4993**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4994
4995**参数:**
4996
4997| 参数名   | 类型                     | 必填 | 说明                                      |
4998| :------- | :----------------------- | :--- | :---------------------------------------- |
4999| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。 |
5000| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。         |
5001| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                    |
5002
5003**示例:**
5004
5005```js
5006audioRenderer.on('markReach', 1000, (position) => {
5007  if (position == 1000) {
5008    console.info('ON Triggered successfully');
5009  }
5010});
5011```
5012
5013
5014### off('markReach') <sup>8+</sup>
5015
5016off(type: 'markReach'): void
5017
5018取消订阅标记事件。
5019
5020**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5021
5022**参数:**
5023
5024| 参数名 | 类型   | 必填 | 说明                                              |
5025| :----- | :----- | :--- | :------------------------------------------------ |
5026| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
5027
5028**示例:**
5029
5030```js
5031audioRenderer.off('markReach');
5032```
5033
5034### on('periodReach') <sup>8+</sup>
5035
5036on(type: "periodReach", frame: number, callback: Callback&lt;number&gt;): void
5037
5038订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。
5039
5040**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5041
5042**参数:**
5043
5044| 参数名   | 类型                     | 必填 | 说明                                        |
5045| :------- | :----------------------- | :--- | :------------------------------------------ |
5046| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
5047| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。           |
5048| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                      |
5049
5050**示例:**
5051
5052```js
5053audioRenderer.on('periodReach', 1000, (position) => {
5054  if (position == 1000) {
5055    console.info('ON Triggered successfully');
5056  }
5057});
5058```
5059
5060### off('periodReach') <sup>8+</sup>
5061
5062off(type: 'periodReach'): void
5063
5064取消订阅标记事件。
5065
5066**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5067
5068**参数:**
5069
5070| 参数名 | 类型   | 必填 | 说明                                                |
5071| :----- | :----- | :--- | :-------------------------------------------------- |
5072| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
5073
5074**示例:**
5075
5076```js
5077audioRenderer.off('periodReach')
5078```
5079
5080### on('stateChange') <sup>8+</sup>
5081
5082on(type: 'stateChange', callback: Callback<AudioState\>): void
5083
5084订阅监听状态变化。
5085
5086**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5087
5088**参数:**
5089
5090| 参数名   | 类型                       | 必填 | 说明                                        |
5091| :------- | :------------------------- | :--- | :------------------------------------------ |
5092| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
5093| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
5094
5095**示例:**
5096
5097```js
5098audioRenderer.on('stateChange', (state) => {
5099  if (state == 1) {
5100    console.info('audio renderer state is: STATE_PREPARED');
5101  }
5102  if (state == 2) {
5103    console.info('audio renderer state is: STATE_RUNNING');
5104  }
5105});
5106```
5107
5108## AudioCapturer<sup>8+</sup>
5109
5110提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
5111
5112### 属性
5113
5114**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5115
5116| 名称  | 类型                     | 可读 | 可写 | 说明             |
5117| :---- | :------------------------- | :--- | :--- | :--------------- |
5118| state<sup>8+</sup>  | [AudioState](#audiostate8) | 是 | 否   | 音频采集器状态。 |
5119
5120**示例:**
5121
5122```js
5123let state = audioCapturer.state;
5124```
5125
5126### getCapturerInfo<sup>8+</sup>
5127
5128getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
5129
5130获取采集器信息。使用callback方式异步返回结果。
5131
5132**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5133
5134**参数:**
5135
5136| 参数名   | 类型                              | 必填 | 说明                                 |
5137| :------- | :-------------------------------- | :--- | :----------------------------------- |
5138| callback | AsyncCallback<AudioCapturerInfo\> | 是   | 使用callback方式异步返回采集器信息。 |
5139
5140**示例:**
5141
5142```js
5143audioCapturer.getCapturerInfo((err, capturerInfo) => {
5144  if (err) {
5145    console.error('Failed to get capture info');
5146  } else {
5147    console.info('Capturer getCapturerInfo:');
5148    console.info(`Capturer source: ${capturerInfo.source}`);
5149    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
5150  }
5151});
5152```
5153
5154
5155### getCapturerInfo<sup>8+</sup>
5156
5157getCapturerInfo(): Promise<AudioCapturerInfo\>
5158
5159获取采集器信息。使用Promise方式异步返回结果。
5160
5161**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5162
5163**返回值:**
5164
5165| 类型                                              | 说明                                |
5166| :------------------------------------------------ | :---------------------------------- |
5167| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 |
5168
5169**示例:**
5170
5171```js
5172audioCapturer.getCapturerInfo().then((audioParamsGet) => {
5173  if (audioParamsGet != undefined) {
5174    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
5175    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
5176    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
5177  } else {
5178    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
5179    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
5180  }
5181}).catch((err) => {
5182  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
5183});
5184```
5185
5186### getStreamInfo<sup>8+</sup>
5187
5188getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
5189
5190获取采集器流信息。使用callback方式异步返回结果。
5191
5192**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5193
5194**参数:**
5195
5196| 参数名   | 类型                                                 | 必填 | 说明                             |
5197| :------- | :--------------------------------------------------- | :--- | :------------------------------- |
5198| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 使用callback方式异步返回流信息。 |
5199
5200**示例:**
5201
5202```js
5203audioCapturer.getStreamInfo((err, streamInfo) => {
5204  if (err) {
5205    console.error('Failed to get stream info');
5206  } else {
5207    console.info('Capturer GetStreamInfo:');
5208    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
5209    console.info(`Capturer channel: ${streamInfo.channels}`);
5210    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
5211    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
5212  }
5213});
5214```
5215
5216### getStreamInfo<sup>8+</sup>
5217
5218getStreamInfo(): Promise<AudioStreamInfo\>
5219
5220获取采集器流信息。使用Promise方式异步返回结果。
5221
5222**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5223
5224**返回值:**
5225
5226| 类型                                           | 说明                            |
5227| :--------------------------------------------- | :------------------------------ |
5228| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | 使用Promise方式异步返回流信息。 |
5229
5230**示例:**
5231
5232```js
5233audioCapturer.getStreamInfo().then((audioParamsGet) => {
5234  console.info('getStreamInfo:');
5235  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
5236  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
5237  console.info(`channels: ${audioParamsGet.channels}`);
5238  console.info(`encodingType: ${audioParamsGet.encodingType}`);
5239}).catch((err) => {
5240  console.error(`getStreamInfo :ERROR: ${err}`);
5241});
5242```
5243
5244### getAudioStreamId<sup>9+</sup>
5245
5246getAudioStreamId(callback: AsyncCallback<number\>): void
5247
5248获取音频流id,使用callback方式异步返回结果。
5249
5250**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5251
5252**参数:**
5253
5254| 参数名   | 类型                                                 | 必填 | 说明                 |
5255| :------- | :--------------------------------------------------- | :--- | :------------------- |
5256| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
5257
5258**示例:**
5259
5260```js
5261audioCapturer.getAudioStreamId((err, streamid) => {
5262  console.info(`audioCapturer GetStreamId: ${streamid}`);
5263});
5264```
5265
5266### getAudioStreamId<sup>9+</sup>
5267
5268getAudioStreamId(): Promise<number\>
5269
5270获取音频流id,使用Promise方式异步返回结果。
5271
5272**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5273
5274**返回值:**
5275
5276| 类型             | 说明                   |
5277| :----------------| :--------------------- |
5278| Promise<number\> | Promise返回音频流id。 |
5279
5280**示例:**
5281
5282```js
5283audioCapturer.getAudioStreamId().then((streamid) => {
5284  console.info(`audioCapturer getAudioStreamId: ${streamid}`);
5285}).catch((err) => {
5286  console.error(`ERROR: ${err}`);
5287});
5288```
5289
5290### start<sup>8+</sup>
5291
5292start(callback: AsyncCallback<void\>): void
5293
5294启动音频采集器。使用callback方式异步返回结果。
5295
5296**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5297
5298**参数:**
5299
5300| 参数名   | 类型                 | 必填 | 说明                           |
5301| :------- | :------------------- | :--- | :----------------------------- |
5302| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5303
5304**示例:**
5305
5306```js
5307audioCapturer.start((err) => {
5308  if (err) {
5309    console.error('Capturer start failed.');
5310  } else {
5311    console.info('Capturer start success.');
5312  }
5313});
5314```
5315
5316
5317### start<sup>8+</sup>
5318
5319start(): Promise<void\>
5320
5321启动音频采集器。使用Promise方式异步返回结果。
5322
5323**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5324
5325**返回值:**
5326
5327| 类型           | 说明                          |
5328| :------------- | :---------------------------- |
5329| Promise<void\> | 使用Promise方式异步返回结果。 |
5330
5331**示例:**
5332
5333```js
5334audioCapturer.start().then(() => {
5335  console.info('AudioFrameworkRecLog: ---------START---------');
5336  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
5337  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
5338  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
5339  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
5340    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
5341  }
5342}).catch((err) => {
5343  console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
5344});
5345```
5346
5347### stop<sup>8+</sup>
5348
5349stop(callback: AsyncCallback<void\>): void
5350
5351停止采集。使用callback方式异步返回结果。
5352
5353**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5354
5355**参数:**
5356
5357| 参数名   | 类型                 | 必填 | 说明                           |
5358| :------- | :------------------- | :--- | :----------------------------- |
5359| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5360
5361**示例:**
5362
5363```js
5364audioCapturer.stop((err) => {
5365  if (err) {
5366    console.error('Capturer stop failed');
5367  } else {
5368    console.info('Capturer stopped.');
5369  }
5370});
5371```
5372
5373
5374### stop<sup>8+</sup>
5375
5376stop(): Promise<void\>
5377
5378停止采集。使用Promise方式异步返回结果。
5379
5380**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5381
5382**返回值:**
5383
5384| 类型           | 说明                          |
5385| :------------- | :---------------------------- |
5386| Promise<void\> | 使用Promise方式异步返回结果。 |
5387
5388**示例:**
5389
5390```js
5391audioCapturer.stop().then(() => {
5392  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
5393  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
5394  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
5395    console.info('AudioFrameworkRecLog: State is Stopped:');
5396  }
5397}).catch((err) => {
5398  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
5399});
5400```
5401
5402### release<sup>8+</sup>
5403
5404release(callback: AsyncCallback<void\>): void
5405
5406释放采集器。使用callback方式异步返回结果。
5407
5408**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5409
5410**参数:**
5411
5412| 参数名   | 类型                 | 必填 | 说明                                |
5413| :------- | :------------------- | :--- | :---------------------------------- |
5414| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5415
5416**示例:**
5417
5418```js
5419audioCapturer.release((err) => {
5420  if (err) {
5421    console.error('capturer release failed');
5422  } else {
5423    console.info('capturer released.');
5424  }
5425});
5426```
5427
5428
5429### release<sup>8+</sup>
5430
5431release(): Promise<void\>
5432
5433释放采集器。使用Promise方式异步返回结果。
5434
5435**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5436
5437**返回值:**
5438
5439| 类型           | 说明                          |
5440| :------------- | :---------------------------- |
5441| Promise<void\> | 使用Promise方式异步返回结果。 |
5442
5443**示例:**
5444
5445```js
5446let stateFlag;
5447audioCapturer.release().then(() => {
5448  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
5449  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
5450  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
5451  console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
5452}).catch((err) => {
5453  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
5454});
5455```
5456
5457### read<sup>8+</sup>
5458
5459read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void
5460
5461读入缓冲区。使用callback方式异步返回结果。
5462
5463**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5464
5465**参数:**
5466
5467| 参数名         | 类型                        | 必填 | 说明                             |
5468| :------------- | :-------------------------- | :--- | :------------------------------- |
5469| size           | number                      | 是   | 读入的字节数。                   |
5470| isBlockingRead | boolean                     | 是   | 是否阻塞读操作。                 |
5471| callback       | AsyncCallback<ArrayBuffer\> | 是   | 使用callback方式异步返回缓冲区。 |
5472
5473**示例:**
5474
5475```js
5476let bufferSize;
5477audioCapturer.getBufferSize().then((data) => {
5478  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
5479  bufferSize = data;
5480  }).catch((err) => {
5481    console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
5482  });
5483audioCapturer.read(bufferSize, true, async(err, buffer) => {
5484  if (!err) {
5485    console.info('Success in reading the buffer data');
5486  }
5487});
5488```
5489
5490### read<sup>8+</sup>
5491
5492read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
5493
5494读入缓冲区。使用Promise方式异步返回结果。
5495
5496**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5497
5498**参数:**
5499
5500| 参数名         | 类型    | 必填 | 说明             |
5501| :------------- | :------ | :--- | :--------------- |
5502| size           | number  | 是   | 读入的字节数。   |
5503| isBlockingRead | boolean | 是   | 是否阻塞读操作。 |
5504
5505**返回值:**
5506
5507| 类型                  | 说明                                                   |
5508| :-------------------- | :----------------------------------------------------- |
5509| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
5510
5511**示例:**
5512
5513```js
5514let bufferSize;
5515audioCapturer.getBufferSize().then((data) => {
5516  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
5517  bufferSize = data;
5518  }).catch((err) => {
5519  console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
5520  });
5521console.info(`Buffer size: ${bufferSize}`);
5522audioCapturer.read(bufferSize, true).then((buffer) => {
5523  console.info('buffer read successfully');
5524}).catch((err) => {
5525  console.info(`ERROR : ${err}`);
5526});
5527```
5528
5529### getAudioTime<sup>8+</sup>
5530
5531getAudioTime(callback: AsyncCallback<number\>): void
5532
5533获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
5534
5535**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5536
5537**参数:**
5538
5539| 参数名   | 类型                   | 必填 | 说明                           |
5540| :------- | :--------------------- | :--- | :----------------------------- |
5541| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回结果。 |
5542
5543**示例:**
5544
5545```js
5546audioCapturer.getAudioTime((err, timestamp) => {
5547  console.info(`Current timestamp: ${timestamp}`);
5548});
5549```
5550
5551### getAudioTime<sup>8+</sup>
5552
5553getAudioTime(): Promise<number\>
5554
5555获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
5556
5557**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5558
5559**返回值:**
5560
5561| 类型             | 说明                          |
5562| :--------------- | :---------------------------- |
5563| Promise<number\> | 使用Promise方式异步返回结果。 |
5564
5565**示例:**
5566
5567```js
5568audioCapturer.getAudioTime().then((audioTime) => {
5569  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
5570}).catch((err) => {
5571  console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
5572});
5573```
5574
5575### getBufferSize<sup>8+</sup>
5576
5577getBufferSize(callback: AsyncCallback<number\>): void
5578
5579获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
5580
5581**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5582
5583**参数:**
5584
5585| 参数名   | 类型                   | 必填 | 说明                                 |
5586| :------- | :--------------------- | :--- | :----------------------------------- |
5587| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回缓冲区大小。 |
5588
5589**示例:**
5590
5591```js
5592audioCapturer.getBufferSize((err, bufferSize) => {
5593  if (!err) {
5594    console.info(`BufferSize : ${bufferSize}`);
5595    audioCapturer.read(bufferSize, true).then((buffer) => {
5596      console.info(`Buffer read is ${buffer}`);
5597    }).catch((err) => {
5598      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
5599    });
5600  }
5601});
5602```
5603
5604### getBufferSize<sup>8+</sup>
5605
5606getBufferSize(): Promise<number\>
5607
5608获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
5609
5610**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5611
5612**返回值:**
5613
5614| 类型             | 说明                                |
5615| :--------------- | :---------------------------------- |
5616| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 |
5617
5618**示例:**
5619
5620```js
5621let bufferSize;
5622audioCapturer.getBufferSize().then((data) => {
5623  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
5624  bufferSize = data;
5625}).catch((err) => {
5626  console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
5627});
5628```
5629
5630### on('markReach')<sup>8+</sup>
5631
5632on(type: "markReach", frame: number, callback: Callback&lt;number&gt;): void
5633
5634订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
5635
5636**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5637
5638**参数:**
5639
5640| 参数名   | 类型                     | 必填 | 说明                                       |
5641| :------- | :----------------------  | :--- | :----------------------------------------- |
5642| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。  |
5643| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。           |
5644| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调。 |
5645
5646**示例:**
5647
5648```js
5649audioCapturer.on('markReach', 1000, (position) => {
5650  if (position == 1000) {
5651    console.info('ON Triggered successfully');
5652  }
5653});
5654```
5655
5656### off('markReach')<sup>8+</sup>
5657
5658off(type: 'markReach'): void
5659
5660取消订阅标记到达的事件。
5661
5662**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5663
5664**参数:**
5665
5666| 参数名 | 类型   | 必填 | 说明                                          |
5667| :----- | :----- | :--- | :-------------------------------------------- |
5668| type   | string | 是   | 取消事件回调类型,支持的事件为:'markReach'。 |
5669
5670**示例:**
5671
5672```js
5673audioCapturer.off('markReach');
5674```
5675
5676### on('periodReach')<sup>8+</sup>
5677
5678on(type: "periodReach", frame: number, callback: Callback&lt;number&gt;): void
5679
5680订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。
5681
5682**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5683
5684**参数:**
5685
5686| 参数名   | 类型                     | 必填 | 说明                                        |
5687| :------- | :----------------------- | :--- | :------------------------------------------ |
5688| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
5689| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。            |
5690| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调    |
5691
5692**示例:**
5693
5694```js
5695audioCapturer.on('periodReach', 1000, (position) => {
5696  if (position == 1000) {
5697    console.info('ON Triggered successfully');
5698  }
5699});
5700```
5701
5702### off('periodReach')<sup>8+</sup>
5703
5704off(type: 'periodReach'): void
5705
5706取消订阅标记到达的事件。
5707
5708**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5709
5710**参数:**
5711
5712| 参数名 | 类型   | 必填 | 说明                                            |
5713| :----- | :----- | :--- | :---------------------------------------------- |
5714| type   | string | 是  | 取消事件回调类型,支持的事件为:'periodReach'。 |
5715
5716**示例:**
5717
5718```js
5719audioCapturer.off('periodReach')
5720```
5721
5722### on('stateChange') <sup>8+</sup>
5723
5724on(type: 'stateChange', callback: Callback<AudioState\>): void
5725
5726订阅监听状态变化。
5727
5728**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5729
5730**参数:**
5731
5732| 参数名   | 类型                       | 必填 | 说明                                        |
5733| :------- | :------------------------- | :--- | :------------------------------------------ |
5734| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
5735| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
5736
5737**示例:**
5738
5739```js
5740audioCapturer.on('stateChange', (state) => {
5741  if (state == 1) {
5742    console.info('audio capturer state is: STATE_PREPARED');
5743  }
5744  if (state == 2) {
5745    console.info('audio capturer state is: STATE_RUNNING');
5746  }
5747});
5748```
5749
5750## ToneType<sup>9+</sup>
5751
5752枚举,播放器的音调类型。
5753
5754**系统接口:** 该接口为系统接口
5755
5756**系统能力:** SystemCapability.Multimedia.Audio.Tone
5757
5758| 名称                                              |  值    | 说明                          |
5759| :------------------------------------------------ | :----- | :----------------------------|
5760| TONE_TYPE_DIAL_0                                  | 0      | 键0的DTMF音。                 |
5761| TONE_TYPE_DIAL_1                                  | 1      | 键1的DTMF音。                 |
5762| TONE_TYPE_DIAL_2                                  | 2      | 键2的DTMF音。                 |
5763| TONE_TYPE_DIAL_3                                  | 3      | 键3的DTMF音。                 |
5764| TONE_TYPE_DIAL_4                                  | 4      | 键4的DTMF音。                 |
5765| TONE_TYPE_DIAL_5                                  | 5      | 键5的DTMF音。                 |
5766| TONE_TYPE_DIAL_6                                  | 6      | 键6的DTMF音。                 |
5767| TONE_TYPE_DIAL_7                                  | 7      | 键7的DTMF音。                 |
5768| TONE_TYPE_DIAL_8                                  | 8      | 键8的DTMF音。                 |
5769| TONE_TYPE_DIAL_9                                  | 9      | 键9的DTMF音。                 |
5770| TONE_TYPE_DIAL_S                                  | 10     | 键*的DTMF音。                 |
5771| TONE_TYPE_DIAL_P                                  | 11     | 键#的DTMF音。                 |
5772| TONE_TYPE_DIAL_A                                  | 12     | 键A的DTMF音。                 |
5773| TONE_TYPE_DIAL_B                                  | 13     | 键B的DTMF音。                 |
5774| TONE_TYPE_DIAL_C                                  | 14     | 键C的DTMF音。                 |
5775| TONE_TYPE_DIAL_D                                  | 15     | 键D的DTMF音。                 |
5776| TONE_TYPE_COMMON_SUPERVISORY_DIAL                 | 100    | 呼叫监管音调,拨号音。          |
5777| TONE_TYPE_COMMON_SUPERVISORY_BUSY                 | 101    | 呼叫监管音调,忙。              |
5778| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION           | 102    | 呼叫监管音调,拥塞。            |
5779| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK            | 103    | 呼叫监管音调,无线电 ACK。      |
5780| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE  | 104    | 呼叫监管音调,无线电不可用。     |
5781| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING         | 106    | 呼叫监管音调,呼叫等待。        |
5782| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE             | 107    | 呼叫监管音调,铃声。            |
5783| TONE_TYPE_COMMON_PROPRIETARY_BEEP                 | 200    | 专有声调,一般蜂鸣声。          |
5784| TONE_TYPE_COMMON_PROPRIETARY_ACK                  | 201    | 专有声调,ACK。                |
5785| TONE_TYPE_COMMON_PROPRIETARY_PROMPT               | 203    | 专有声调,PROMPT。             |
5786| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP          | 204    | 专有声调,双重蜂鸣声。          |
5787
5788## TonePlayer<sup>9+</sup>
5789
5790提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
5791
5792**系统接口:** 该接口为系统接口
5793
5794### load<sup>9+</sup>
5795
5796load(type: ToneType, callback: AsyncCallback&lt;void&gt;): void
5797
5798加载DTMF音调配置。使用callback方式异步返回结果。
5799
5800**系统接口:** 该接口为系统接口
5801
5802**系统能力:** SystemCapability.Multimedia.Audio.Tone
5803
5804**参数:**
5805
5806| 参数名          | 类型                        | 必填  | 说明                            |
5807| :--------------| :-------------------------- | :-----| :------------------------------ |
5808| type           | [ToneType](#tonetype9)       | 是    | 配置的音调类型。                 |
5809| callback       | AsyncCallback<void\>        | 是    | 使用callback方式异步返回结果。 |
5810
5811**示例:**
5812
5813```js
5814tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
5815  if (err) {
5816    console.error(`callback call load failed error: ${err.message}`);
5817    return;
5818  } else {
5819    console.info('callback call load success');
5820  }
5821});
5822```
5823
5824### load<sup>9+</sup>
5825
5826load(type: ToneType): Promise&lt;void&gt;
5827
5828加载DTMF音调配置。使用Promise方式异步返回结果。
5829
5830**系统接口:** 该接口为系统接口
5831
5832**系统能力:** SystemCapability.Multimedia.Audio.Tone
5833
5834**参数:**
5835
5836| 参数名         | 类型                    | 必填  |  说明             |
5837| :------------- | :--------------------- | :---  | ---------------- |
5838| type           | [ToneType](#tonetype9)   | 是    | 配置的音调类型。  |
5839
5840**返回值:**
5841
5842| 类型            | 说明                        |
5843| :--------------| :-------------------------- |
5844| Promise<void\> | 使用Promise方式异步返回结果。 |
5845
5846**示例:**
5847
5848```js
5849tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
5850  console.info('promise call load ');
5851}).catch(() => {
5852  console.error('promise call load fail');
5853});
5854```
5855
5856### start<sup>9+</sup>
5857
5858start(callback: AsyncCallback&lt;void&gt;): void
5859
5860启动DTMF音调播放。使用callback方式异步返回结果。
5861
5862**系统接口:** 该接口为系统接口
5863
5864**系统能力:** SystemCapability.Multimedia.Audio.Tone
5865
5866**参数:**
5867
5868| 参数名   | 类型                 | 必填 | 说明                           |
5869| :------- | :------------------- | :--- | :----------------------------- |
5870| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5871
5872**示例:**
5873
5874```js
5875tonePlayer.start((err) => {
5876  if (err) {
5877    console.error(`callback call start failed error: ${err.message}`);
5878    return;
5879  } else {
5880    console.info('callback call start success');
5881  }
5882});
5883```
5884
5885### start<sup>9+</sup>
5886
5887start(): Promise&lt;void&gt;
5888
5889启动DTMF音调播放。使用Promise方式异步返回结果。
5890
5891**系统接口:** 该接口为系统接口
5892
5893**系统能力:** SystemCapability.Multimedia.Audio.Tone
5894
5895**返回值:**
5896
5897| 类型           | 说明                          |
5898| :------------- | :---------------------------- |
5899| Promise<void\> | 使用Promise方式异步返回结果。 |
5900
5901**示例:**
5902
5903```js
5904tonePlayer.start().then(() => {
5905  console.info('promise call start');
5906}).catch(() => {
5907  console.error('promise call start fail');
5908});
5909```
5910
5911### stop<sup>9+</sup>
5912
5913stop(callback: AsyncCallback&lt;void&gt;): void
5914
5915停止当前正在播放的音调。使用callback方式异步返回结果。
5916
5917**系统接口:** 该接口为系统接口
5918
5919**系统能力:** SystemCapability.Multimedia.Audio.Tone
5920
5921**参数:**
5922
5923| 参数名   | 类型                 | 必填 | 说明                           |
5924| :------- | :------------------- | :--- | :----------------------------- |
5925| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
5926
5927**示例:**
5928
5929```js
5930tonePlayer.stop((err) => {
5931  if (err) {
5932    console.error(`callback call stop error: ${err.message}`);
5933    return;
5934  } else {
5935    console.error('callback call stop success ');
5936  }
5937});
5938```
5939
5940### stop<sup>9+</sup>
5941
5942stop(): Promise&lt;void&gt;
5943
5944停止当前正在播放的音调。使用Promise方式异步返回结果。
5945
5946**系统接口:** 该接口为系统接口
5947
5948**系统能力:** SystemCapability.Multimedia.Audio.Tone
5949
5950**返回值:**
5951
5952| 类型           | 说明                          |
5953| :------------- | :---------------------------- |
5954| Promise<void\> | 使用Promise方式异步返回结果。 |
5955
5956**示例:**
5957
5958```js
5959tonePlayer.stop().then(() => {
5960  console.info('promise call stop finish');
5961}).catch(() => {
5962  console.error('promise call stop fail');
5963});
5964```
5965
5966### release<sup>9+</sup>
5967
5968release(callback: AsyncCallback&lt;void&gt;): void
5969
5970释放与此TonePlayer对象关联的资源。使用callback方式异步返回结果。
5971
5972**系统接口:** 该接口为系统接口
5973
5974**系统能力:** SystemCapability.Multimedia.Audio.Tone
5975
5976**参数:**
5977
5978| 参数名   | 类型                 | 必填 | 说明                            |
5979| :------- | :------------------- | :--- | :---------------------------- |
5980| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。  |
5981
5982**示例:**
5983
5984```js
5985tonePlayer.release((err) => {
5986  if (err) {
5987    console.error(`callback call release failed error: ${err.message}`);
5988    return;
5989  } else {
5990    console.info('callback call release success ');
5991  }
5992});
5993```
5994
5995### release<sup>9+</sup>
5996
5997release(): Promise&lt;void&gt;
5998
5999释放与此TonePlayer对象关联的资源。使用Promise方式异步返回结果。
6000
6001**系统接口:** 该接口为系统接口
6002
6003**系统能力:** SystemCapability.Multimedia.Audio.Tone
6004
6005**返回值:**
6006
6007| 类型           | 说明                          |
6008| :------------- | :---------------------------- |
6009| Promise<void\> | 使用Promise方式异步返回结果。 |
6010
6011**示例:**
6012
6013```js
6014tonePlayer.release().then(() => {
6015  console.info('promise call release');
6016}).catch(() => {
6017  console.error('promise call release fail');
6018});
6019```
6020
6021## ActiveDeviceType<sup>(deprecated)</sup>
6022
6023枚举,活跃设备类型。
6024
6025> **说明:**
6026> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。
6027
6028**系统能力:** SystemCapability.Multimedia.Audio.Device
6029
6030| 名称          |  值     | 说明                                                 |
6031| ------------- | ------ | ---------------------------------------------------- |
6032| SPEAKER       | 2      | 扬声器。                                             |
6033| BLUETOOTH_SCO | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
6034
6035## InterruptActionType<sup>(deprecated)</sup>
6036
6037枚举,中断事件返回类型。
6038
6039> **说明:**
6040> 从 API version 7 开始支持,从 API version 9 开始废弃。
6041
6042**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6043
6044| 名称           |  值     | 说明               |
6045| -------------- | ------ | ------------------ |
6046| TYPE_ACTIVATED | 0      | 表示触发焦点事件。 |
6047| TYPE_INTERRUPT | 1      | 表示音频打断事件。 |
6048
6049## AudioInterrupt<sup>(deprecated)</sup>
6050
6051音频监听事件传入的参数。
6052
6053> **说明:**
6054> 从 API version 7 开始支持,从 API version 9 开始废弃。
6055
6056**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6057
6058| 名称            | 类型                        | 必填 | 说明                                                         |
6059| --------------- | --------------------------- | ----| ------------------------------------------------------------ |
6060| streamUsage     | [StreamUsage](#streamusage) | 是  | 音频流使用类型。                                             |
6061| contentType     | [ContentType](#contenttype) | 是  | 音频打断媒体类型。                                           |
6062| pauseWhenDucked | boolean                     | 是  | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
6063
6064## InterruptAction<sup>(deprecated)</sup>
6065
6066音频打断/获取焦点事件的回调方法。
6067
6068> **说明:**
6069> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。
6070
6071**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6072
6073| 名称       | 类型                                        | 必填 | 说明                                                         |
6074| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
6075| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是   | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
6076| type       | [InterruptType](#interrupttype)             | 否   | 打断事件类型。                                               |
6077| hint       | [InterruptHint](#interrupthint)             | 否   | 打断事件提示。                                               |
6078| activated  | boolean                                     | 否   | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |
6079