• 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```ts
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```ts
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```ts
55import audio from '@ohos.multimedia.audio';
56let audioManager = audio.getAudioManager();
57```
58
59## audio.createAudioRenderer<sup>8+</sup>
60
61createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void
62
63获取音频渲染器。使用callback方式异步返回结果。
64
65**系统能力:** SystemCapability.Multimedia.Audio.Renderer
66
67**参数:**
68
69| 参数名   | 类型                                            | 必填 | 说明             |
70| -------- | ----------------------------------------------- | ---- | ---------------- |
71| options  | [AudioRendererOptions](#audiorendereroptions8)  | 是   | 配置渲染器。     |
72| callback | AsyncCallback<[AudioRenderer](#audiorenderer8)> | 是   | 音频渲染器对象。 |
73
74**示例:**
75
76```ts
77import fs from '@ohos.file.fs';
78import audio from '@ohos.multimedia.audio';
79
80let audioStreamInfo: audio.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: audio.AudioRendererInfo = {
88  content: audio.ContentType.CONTENT_TYPE_SPEECH,
89  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
90  rendererFlags: 0
91}
92
93let audioRendererOptions: audio.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```ts
131import fs from '@ohos.file.fs';
132import audio from '@ohos.multimedia.audio';
133import { BusinessError } from '@ohos.base';
134
135let audioStreamInfo: audio.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: audio.AudioRendererInfo = {
143  content: audio.ContentType.CONTENT_TYPE_SPEECH,
144  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
145  rendererFlags: 0
146}
147
148let audioRendererOptions: audio.AudioRendererOptions = {
149  streamInfo: audioStreamInfo,
150  rendererInfo: audioRendererInfo
151}
152
153let audioRenderer: audio.AudioRenderer;
154audio.createAudioRenderer(audioRendererOptions).then((data) => {
155  audioRenderer = data;
156  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
157}).catch((err: BusinessError) => {
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```ts
182import audio from '@ohos.multimedia.audio';
183let audioStreamInfo: audio.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: audio.AudioCapturerInfo = {
191  source: audio.SourceType.SOURCE_TYPE_MIC,
192  capturerFlags: 0
193}
194
195let audioCapturerOptions: audio.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```ts
235import audio from '@ohos.multimedia.audio';
236import { BusinessError } from '@ohos.base';
237
238let audioStreamInfo: audio.AudioStreamInfo = {
239  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
240  channels: audio.AudioChannel.CHANNEL_2,
241  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
242  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
243}
244
245let audioCapturerInfo: audio.AudioCapturerInfo = {
246  source: audio.SourceType.SOURCE_TYPE_MIC,
247  capturerFlags: 0
248}
249
250let audioCapturerOptions:audio.AudioCapturerOptions = {
251  streamInfo: audioStreamInfo,
252  capturerInfo: audioCapturerInfo
253}
254
255let audioCapturer: audio.AudioCapturer;
256audio.createAudioCapturer(audioCapturerOptions).then((data) => {
257  audioCapturer = data;
258  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
259}).catch((err: BusinessError) => {
260  console.error(`AudioCapturer Created : ERROR : ${err}`);
261});
262```
263
264## audio.createTonePlayer<sup>9+</sup>
265
266createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback&lt;TonePlayer&gt;): void
267
268创建DTMF播放器。使用callback方式异步返回结果。
269
270**系统能力:** SystemCapability.Multimedia.Audio.Tone
271
272**系统接口:** 该接口为系统接口
273
274**参数:**
275
276| 参数名   | 类型                                             | 必填 | 说明            |
277| -------- | ----------------------------------------------- | ---- | -------------- |
278| options  | [AudioRendererInfo](#audiorendererinfo8)        | 是   | 配置音频渲染器信息。|
279| callback | AsyncCallback<[TonePlayer](#toneplayer9)>       | 是   | 回调函数,回调返回音频渲染器对象。|
280
281**示例:**
282
283```ts
284import audio from '@ohos.multimedia.audio';
285
286let audioRendererInfo: audio.AudioRendererInfo = {
287  usage : audio.StreamUsage.STREAM_USAGE_DTMF,
288  rendererFlags : 0
289}
290let tonePlayer: audio.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```ts
328import audio from '@ohos.multimedia.audio';
329let tonePlayer: audio.TonePlayer;
330async function createTonePlayerBefore(){
331  let audioRendererInfo: audio.AudioRendererInfo = {
332    usage : audio.StreamUsage.STREAM_USAGE_DTMF,
333    rendererFlags : 0
334  }
335  tonePlayer = await audio.createTonePlayer(audioRendererInfo);
336}
337```
338
339## AudioVolumeType
340
341枚举,音频流类型。
342
343**系统能力:** SystemCapability.Multimedia.Audio.Volume
344
345| 名称                         | 值      | 说明       |
346| ---------------------------- | ------ | ---------- |
347| VOICE_CALL<sup>8+</sup>      | 0      | 语音电话。 |
348| RINGTONE                     | 2      | 铃声。     |
349| MEDIA                        | 3      | 媒体。     |
350| ALARM<sup>10+</sup>          | 4      | 闹钟。     |
351| ACCESSIBILITY<sup>10+</sup>  | 5      | 无障碍。   |
352| VOICE_ASSISTANT<sup>8+</sup> | 9      | 语音助手。 |
353| ULTRASONIC<sup>10+</sup>     | 10     | 超声波。<br/>此接口为系统接口。|
354| ALL<sup>9+</sup>             | 100    | 所有公共音频流。<br/>此接口为系统接口。|
355
356## InterruptRequestResultType<sup>9+</sup>
357
358枚举,音频中断请求结果类型。
359
360**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
361
362**系统接口:** 该接口为系统接口
363
364| 名称                         | 值      | 说明       |
365| ---------------------------- | ------ | ---------- |
366| INTERRUPT_REQUEST_GRANT      | 0      | 请求音频中断成功。 |
367| INTERRUPT_REQUEST_REJECT     | 1      | 请求音频中断失败,可能具有较高优先级类型。 |
368
369## InterruptMode<sup>9+</sup>
370
371枚举,焦点模型。
372
373**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
374
375| 名称                         | 值      | 说明       |
376| ---------------------------- | ------ | ---------- |
377| SHARE_MODE                   | 0      | 共享焦点模式。 |
378| INDEPENDENT_MODE             | 1      | 独立焦点模式。 |
379
380## DeviceFlag
381
382枚举,可获取的设备种类。
383
384**系统能力:** SystemCapability.Multimedia.Audio.Device
385
386| 名称                            |  值     | 说明                                              |
387| ------------------------------- | ------ | ------------------------------------------------- |
388| NONE_DEVICES_FLAG<sup>9+</sup>  | 0      | 无 <br/>此接口为系统接口。        |
389| OUTPUT_DEVICES_FLAG             | 1      | 输出设备。 |
390| INPUT_DEVICES_FLAG              | 2      | 输入设备。 |
391| ALL_DEVICES_FLAG                | 3      | 所有设备。 |
392| DISTRIBUTED_OUTPUT_DEVICES_FLAG<sup>9+</sup> | 4   | 分布式输出设备。<br/>此接口为系统接口。  |
393| DISTRIBUTED_INPUT_DEVICES_FLAG<sup>9+</sup>  | 8   | 分布式输入设备。<br/>此接口为系统接口。  |
394| ALL_DISTRIBUTED_DEVICES_FLAG<sup>9+</sup>    | 12  | 分布式输入和输出设备。<br/>此接口为系统接口。  |
395
396## DeviceRole
397
398枚举,设备角色。
399
400**系统能力:** SystemCapability.Multimedia.Audio.Device
401
402| 名称          |  值    | 说明           |
403| ------------- | ------ | -------------- |
404| INPUT_DEVICE  | 1      | 输入设备角色。 |
405| OUTPUT_DEVICE | 2      | 输出设备角色。 |
406
407## DeviceType
408
409枚举,设备类型。
410
411**系统能力:** SystemCapability.Multimedia.Audio.Device
412
413| 名称                 | 值     | 说明                                                      |
414| ---------------------| ------ | --------------------------------------------------------- |
415| INVALID              | 0      | 无效设备。                                                |
416| EARPIECE             | 1      | 听筒。                                                    |
417| SPEAKER              | 2      | 扬声器。                                                  |
418| WIRED_HEADSET        | 3      | 有线耳机,带麦克风。                                      |
419| WIRED_HEADPHONES     | 4      | 有线耳机,无麦克风。                                      |
420| BLUETOOTH_SCO        | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。      |
421| BLUETOOTH_A2DP       | 8      | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
422| MIC                  | 15     | 麦克风。                                                  |
423| USB_HEADSET          | 22     | USB耳机,带麦克风。                                       |
424| DEFAULT<sup>9+</sup> | 1000   | 默认设备类型。                                            |
425
426## CommunicationDeviceType<sup>9+</sup>
427
428枚举,用于通信的可用设备类型。
429
430**系统能力:** SystemCapability.Multimedia.Audio.Communication
431
432| 名称          | 值     | 说明          |
433| ------------- | ------ | -------------|
434| SPEAKER       | 2      | 扬声器。      |
435
436## AudioRingMode
437
438枚举,铃声模式。
439
440**系统能力:** SystemCapability.Multimedia.Audio.Communication
441
442| 名称                |  值    | 说明       |
443| ------------------- | ------ | ---------- |
444| RINGER_MODE_SILENT  | 0      | 静音模式。 |
445| RINGER_MODE_VIBRATE | 1      | 震动模式。 |
446| RINGER_MODE_NORMAL  | 2      | 响铃模式。 |
447
448## AudioSampleFormat<sup>8+</sup>
449
450枚举,音频采样格式。
451
452**系统能力:** SystemCapability.Multimedia.Audio.Core
453
454| 名称                                |  值    | 说明                       |
455| ---------------------------------- | ------ | -------------------------- |
456| SAMPLE_FORMAT_INVALID              | -1     | 无效格式。                 |
457| SAMPLE_FORMAT_U8                   | 0      | 无符号8位整数。            |
458| SAMPLE_FORMAT_S16LE                | 1      | 带符号的16位整数,小尾数。 |
459| SAMPLE_FORMAT_S24LE                | 2      | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
460| SAMPLE_FORMAT_S32LE                | 3      | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
461| SAMPLE_FORMAT_F32LE<sup>9+</sup>   | 4      | 带符号的32位浮点数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
462
463## AudioErrors<sup>9+</sup>
464
465枚举,音频错误码。
466
467**系统能力:** SystemCapability.Multimedia.Audio.Core
468
469| 名称                 | 值      | 说明         |
470| ---------------------| --------| ----------------- |
471| ERROR_INVALID_PARAM  | 6800101 | 无效入参。         |
472| ERROR_NO_MEMORY      | 6800102 | 分配内存失败。     |
473| ERROR_ILLEGAL_STATE  | 6800103 | 状态不支持。       |
474| ERROR_UNSUPPORTED    | 6800104 | 参数选项不支持。    |
475| ERROR_TIMEOUT        | 6800105 | 处理超时。         |
476| ERROR_STREAM_LIMIT   | 6800201 | 音频流数量达到限制。|
477| ERROR_SYSTEM         | 6800301 | 系统处理异常。     |
478
479## AudioChannel<sup>8+</sup>
480
481枚举, 音频声道。
482
483**系统能力:** SystemCapability.Multimedia.Audio.Core
484
485| 名称      |  值       | 说明     |
486| --------- | -------- | -------- |
487| CHANNEL_1 | 0x1 << 0 | 第一声道。 |
488| CHANNEL_2 | 0x1 << 1 | 第二声道。 |
489
490## AudioSamplingRate<sup>8+</sup>
491
492枚举,音频采样率,具体设备支持的采样率规格会存在差异。
493
494**系统能力:** SystemCapability.Multimedia.Audio.Core
495
496| 名称              |  值    | 说明            |
497| ----------------- | ------ | --------------- |
498| SAMPLE_RATE_8000  | 8000   | 采样率为8000。  |
499| SAMPLE_RATE_11025 | 11025  | 采样率为11025。 |
500| SAMPLE_RATE_12000 | 12000  | 采样率为12000。 |
501| SAMPLE_RATE_16000 | 16000  | 采样率为16000。 |
502| SAMPLE_RATE_22050 | 22050  | 采样率为22050。 |
503| SAMPLE_RATE_24000 | 24000  | 采样率为24000。 |
504| SAMPLE_RATE_32000 | 32000  | 采样率为32000。 |
505| SAMPLE_RATE_44100 | 44100  | 采样率为44100。 |
506| SAMPLE_RATE_48000 | 48000  | 采样率为48000。 |
507| SAMPLE_RATE_64000 | 64000  | 采样率为64000。 |
508| SAMPLE_RATE_96000 | 96000  | 采样率为96000。 |
509
510## AudioEncodingType<sup>8+</sup>
511
512枚举,音频编码类型。
513
514**系统能力:** SystemCapability.Multimedia.Audio.Core
515
516| 名称                  |  值    | 说明      |
517| --------------------- | ------ | --------- |
518| ENCODING_TYPE_INVALID | -1     | 无效。    |
519| ENCODING_TYPE_RAW     | 0      | PCM编码。 |
520
521## ContentType
522
523枚举,音频内容类型。
524
525**系统能力:** SystemCapability.Multimedia.Audio.Core
526
527| 名称                               |  值    | 说明       |
528| ---------------------------------- | ------ | ---------- |
529| CONTENT_TYPE_UNKNOWN               | 0      | 未知类型。 |
530| CONTENT_TYPE_SPEECH                | 1      | 语音。     |
531| CONTENT_TYPE_MUSIC                 | 2      | 音乐。     |
532| CONTENT_TYPE_MOVIE                 | 3      | 电影。     |
533| CONTENT_TYPE_SONIFICATION          | 4      | 通知音。   |
534| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5      | 铃声。     |
535## StreamUsage
536
537枚举,音频流使用类型。
538
539**系统能力:** SystemCapability.Multimedia.Audio.Core
540
541| 名称                                      |  值    | 说明       |
542| ------------------------------------------| ------ | ---------- |
543| STREAM_USAGE_UNKNOWN                      | 0      | 未知类型。 |
544| STREAM_USAGE_MEDIA                        | 1      | 媒体。     |
545| STREAM_USAGE_MUSIC<sup>10+</sup>          | 1      | 音乐。     |
546| STREAM_USAGE_VOICE_COMMUNICATION          | 2      | 语音通信。 |
547| STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3      | 语音播报。 |
548| STREAM_USAGE_ALARM<sup>10+</sup>          | 4      | 闹钟。     |
549| STREAM_USAGE_VOICE_MESSAGE<sup>10+</sup>  | 5      | 语音消息。 |
550| STREAM_USAGE_NOTIFICATION_RINGTONE        | 6      | 通知铃声。 |
551| STREAM_USAGE_RINGTONE<sup>10+</sup>       | 6      | 铃声。     |
552| STREAM_USAGE_NOTIFICATION<sup>10+</sup>   | 7      | 通知。     |
553| STREAM_USAGE_ACCESSIBILITY<sup>10+</sup>  | 8      | 无障碍。   |
554| STREAM_USAGE_SYSTEM<sup>10+</sup>         | 9      | 系统音(如屏幕锁定或按键音)。<br/>此接口为系统接口。 |
555| STREAM_USAGE_MOVIE<sup>10+</sup>          | 10     | 电影或视频。|
556| STREAM_USAGE_GAME<sup>10+</sup>           | 11     | 游戏音效。  |
557| STREAM_USAGE_AUDIOBOOK<sup>10+</sup>      | 12     | 有声读物。  |
558| STREAM_USAGE_NAVIGATION<sup>10+</sup>     | 13     | 导航。     |
559| STREAM_USAGE_DTMF<sup>10+</sup>           | 14     | 拨号音。<br/>此接口为系统接口。 |
560| STREAM_USAGE_ENFORCED_TONE<sup>10+</sup>  | 15     | 强制音(如相机快门音)。<br/>此接口为系统接口。 |
561| STREAM_USAGE_ULTRASONIC<sup>10+</sup>     | 16     | 超声波。<br/>此接口为系统接口。 |
562
563
564## InterruptRequestType<sup>9+</sup>
565
566枚举,音频中断请求类型。
567
568**系统接口:** 该接口为系统接口
569
570**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
571
572| 名称                               |  值     | 说明                       |
573| ---------------------------------- | ------ | ------------------------- |
574| INTERRUPT_REQUEST_TYPE_DEFAULT     | 0      |  默认类型,可中断音频请求。  |
575
576## AudioState<sup>8+</sup>
577
578枚举,音频状态。
579
580**系统能力:** SystemCapability.Multimedia.Audio.Core
581
582| 名称           | 值     | 说明             |
583| -------------- | ------ | ---------------- |
584| STATE_INVALID  | -1     | 无效状态。       |
585| STATE_NEW      | 0      | 创建新实例状态。 |
586| STATE_PREPARED | 1      | 准备状态。       |
587| STATE_RUNNING  | 2      | 可运行状态。     |
588| STATE_STOPPED  | 3      | 停止状态。       |
589| STATE_RELEASED | 4      | 释放状态。       |
590| STATE_PAUSED   | 5      | 暂停状态。       |
591
592## AudioEffectMode<sup>10+</sup>
593
594枚举,音效模式。
595
596**系统能力:** SystemCapability.Multimedia.Audio.Renderer
597
598| 名称               | 值     | 说明       |
599| ------------------ | ------ | ---------- |
600| EFFECT_NONE        | 0      | 关闭音效。 |
601| EFFECT_DEFAULT     | 1      | 默认音效。 |
602
603## AudioRendererRate<sup>8+</sup>
604
605枚举,音频渲染速度。
606
607**系统能力:** SystemCapability.Multimedia.Audio.Renderer
608
609| 名称               | 值     | 说明       |
610| ------------------ | ------ | ---------- |
611| RENDER_RATE_NORMAL | 0      | 正常速度。 |
612| RENDER_RATE_DOUBLE | 1      | 2倍速。    |
613| RENDER_RATE_HALF   | 2      | 0.5倍数。  |
614
615## InterruptType
616
617枚举,中断类型。
618
619**系统能力:** SystemCapability.Multimedia.Audio.Renderer
620
621| 名称                 |  值     | 说明                   |
622| -------------------- | ------ | ---------------------- |
623| INTERRUPT_TYPE_BEGIN | 1      | 音频播放中断事件开始。 |
624| INTERRUPT_TYPE_END   | 2      | 音频播放中断事件结束。 |
625
626## InterruptForceType<sup>9+</sup>
627
628枚举,强制打断类型。
629
630**系统能力:** SystemCapability.Multimedia.Audio.Renderer
631
632| 名称            |  值    | 说明                                 |
633| --------------- | ------ | ------------------------------------ |
634| INTERRUPT_FORCE | 0      | 由系统进行操作,强制打断音频播放。   |
635| INTERRUPT_SHARE | 1      | 由应用进行操作,可以选择打断或忽略。 |
636
637## InterruptHint
638
639枚举,中断提示。
640
641**系统能力:** SystemCapability.Multimedia.Audio.Renderer
642
643| 名称                               |  值     | 说明                                         |
644| ---------------------------------- | ------ | -------------------------------------------- |
645| INTERRUPT_HINT_NONE<sup>8+</sup>   | 0      | 无提示。                                     |
646| INTERRUPT_HINT_RESUME              | 1      | 提示音频恢复。                               |
647| INTERRUPT_HINT_PAUSE               | 2      | 提示音频暂停。                               |
648| INTERRUPT_HINT_STOP                | 3      | 提示音频停止。                               |
649| INTERRUPT_HINT_DUCK                | 4      | 提示音频躲避。(躲避:音量减弱,而不会停止) |
650| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5      | 提示音量恢复。                               |
651
652## AudioStreamInfo<sup>8+</sup>
653
654音频流信息。
655
656**系统能力:** SystemCapability.Multimedia.Audio.Core
657
658| 名称         | 类型                                               | 必填 | 说明               |
659| ------------ | ------------------------------------------------- | ---- | ------------------ |
660| samplingRate | [AudioSamplingRate](#audiosamplingrate8)          | 是   | 音频文件的采样率。 |
661| channels     | [AudioChannel](#audiochannel8)                    | 是   | 音频文件的通道数。 |
662| sampleFormat | [AudioSampleFormat](#audiosampleformat8)          | 是   | 音频采样格式。     |
663| encodingType | [AudioEncodingType](#audioencodingtype8)          | 是   | 音频编码格式。     |
664
665## AudioRendererInfo<sup>8+</sup>
666
667音频渲染器信息。
668
669**系统能力:** SystemCapability.Multimedia.Audio.Core
670
671| 名称          | 类型                        | 必填  | 说明             |
672| ------------- | --------------------------- | ---- | ---------------- |
673| content       | [ContentType](#contenttype) | 否   | 媒体类型。<br>API version 8、9为必填参数,从API version 10开始,变更为可选参数。 |
674| usage         | [StreamUsage](#streamusage) | 是   | 音频流使用类型。 |
675| rendererFlags | number                      | 是   | 音频渲染器标志。<br>0代表普通音频渲染器,1代表低时延音频渲染器。js接口暂不支持低时延音频渲染器。 |
676
677## InterruptResult<sup>9+</sup>
678
679音频中断结果。
680
681**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
682
683**系统接口:** 该接口为系统接口
684
685| 名称          | 类型                                                            | 必填 | 说明             |
686| --------------| -------------------------------------------------------------- | ---- | ---------------- |
687| requestResult | [InterruptRequestResultType](#interruptrequestresulttype9)     | 是   | 表示音频请求中断类型。 |
688| interruptNode | number                                                         | 是   | 音频请求中断的节点。 |
689
690## AudioRendererOptions<sup>8+</sup>
691
692音频渲染器选项信息。
693
694| 名称         | 类型                                     | 必填  | 说明             |
695| ------------ | ---------------------------------------- | ---- | ---------------- |
696| streamInfo   | [AudioStreamInfo](#audiostreaminfo8)     | 是   | 表示音频流信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer |
697| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是   | 表示渲染器信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer |
698| privacyType<sup>10+</sup> | [AudioPrivacyType](#audioprivacytype) | 否 | 表示音频流是否可以被其他应用录制,默认值为0。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |
699
700## AudioPrivacyType<sup>10+</sup><a name="audioprivacytype"></a>
701
702枚举类型,用于标识对应播放音频流是否支持被其他应用录制。
703
704**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
705
706| 名称                 | 值   | 说明                             |
707| -------------------- | ---- | -------------------------------- |
708| PRIVACY_TYPE_PUBLIC  | 0    | 表示音频流可以被其他应用录制。   |
709| PRIVACY_TYPE_PRIVATE | 1    | 表示音频流不可以被其他应用录制。 |
710
711## InterruptEvent<sup>9+</sup>
712
713播放中断时,应用接收的中断事件。
714
715**系统能力:** SystemCapability.Multimedia.Audio.Renderer
716
717| 名称      | 类型                                       |必填   | 说明                                 |
718| --------- | ------------------------------------------ | ---- | ------------------------------------ |
719| eventType | [InterruptType](#interrupttype)            | 是   | 中断事件类型,开始或是结束。         |
720| forceType | [InterruptForceType](#interruptforcetype9) | 是   | 操作是由系统执行或是由应用程序执行。 |
721| hintType  | [InterruptHint](#interrupthint)            | 是   | 中断提示。                           |
722
723## VolumeEvent<sup>9+</sup>
724
725音量改变时,应用接收的事件。
726
727**系统能力:** SystemCapability.Multimedia.Audio.Volume
728
729| 名称       | 类型                                | 必填   | 说明                                                     |
730| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
731| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                               |
732| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。     |
733| updateUi   | boolean                             | 是   | 在UI中显示音量变化。                                        |
734| volumeGroupId | number                           | 是   | 音量组id。可用于getGroupManager入参。<br/>此接口为系统接口。  |
735| networkId  | string                              | 是   | 网络id。<br/>此接口为系统接口。                             |
736
737## MicStateChangeEvent<sup>9+</sup>
738
739麦克风状态变化时,应用接收的事件。
740
741**系统能力:** SystemCapability.Multimedia.Audio.Device
742
743| 名称       | 类型                                | 必填 | 说明                                                     |
744| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- |
745| mute | boolean | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。          |
746
747## ConnectType<sup>9+</sup>
748
749枚举,设备连接类型。
750
751**系统接口:** 该接口为系统接口
752
753**系统能力:** SystemCapability.Multimedia.Audio.Volume
754
755| 名称                            |  值     | 说明                   |
756| :------------------------------ | :----- | :--------------------- |
757| CONNECT_TYPE_LOCAL              | 1      | 本地设备。         |
758| CONNECT_TYPE_DISTRIBUTED        | 2      | 分布式设备。            |
759
760## VolumeGroupInfos<sup>9+</sup>
761
762音量组信息,数组类型,为[VolumeGroupInfo](#volumegroupinfo9)的数组,只读。
763
764**系统接口:** 该接口为系统接口
765
766**系统能力:** SystemCapability.Multimedia.Audio.Volume
767
768## VolumeGroupInfo<sup>9+</sup>
769
770音量组信息。
771
772**系统接口:** 该接口为系统接口
773
774**系统能力:** SystemCapability.Multimedia.Audio.Volume
775
776| 名称                        | 类型                       | 可读 | 可写 | 说明       |
777| -------------------------- | -------------------------- | ---- | ---- | ---------- |
778| networkId<sup>9+</sup>     | string                     | 是   | 否   | 组网络id。  |
779| groupId<sup>9+</sup>       | number                     | 是   | 否   | 组设备组id。 |
780| mappingId<sup>9+</sup>     | number                     | 是   | 否   | 组映射id。 |
781| groupName<sup>9+</sup>     | string                     | 是   | 否   | 组名。 |
782| type<sup>9+</sup>          | [ConnectType](#connecttype9)| 是   | 否   | 连接设备类型。 |
783
784## DeviceChangeAction
785
786描述设备连接状态变化和设备信息。
787
788**系统能力:** SystemCapability.Multimedia.Audio.Device
789
790| 名称              | 类型                                              | 必填 | 说明               |
791| :---------------- | :------------------------------------------------ | :--- | :----------------- |
792| type              | [DeviceChangeType](#devicechangetype)             | 是   | 设备连接状态变化。 |
793| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是   | 设备信息。         |
794
795## DeviceChangeType
796
797枚举,设备连接状态变化。
798
799**系统能力:** SystemCapability.Multimedia.Audio.Device
800
801| 名称       | 值   | 说明           |
802| :--------- | :--- | :------------- |
803| CONNECT    | 0    | 设备连接。     |
804| DISCONNECT | 1    | 断开设备连接。 |
805
806## AudioCapturerOptions<sup>8+</sup>
807
808音频采集器选项信息。
809
810| 名称                                | 类型                                                      | 必填 | 说明                                                         |
811| ----------------------------------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
812| streamInfo                          | [AudioStreamInfo](#audiostreaminfo8)                      | 是   | 表示音频流信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer   |
813| capturerInfo                        | [AudioCapturerInfo](#audiocapturerinfo)                   | 是   | 表示采集器信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer        |
814| playbackCaptureConfig<sup>10+</sup> | [AudioPlaybackCaptureConfig](#audioplaybackcaptureconfig) | 否   | 音频内录的配置信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |
815
816## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a>
817
818描述音频采集器信息。
819
820**系统能力:** SystemCapability.Multimedia.Audio.Core
821
822| 名称          | 类型                      | 必填 | 说明             |
823| :------------ | :------------------------ | :--- | :--------------- |
824| source        | [SourceType](#sourcetype) | 是   | 音源类型。       |
825| capturerFlags | number                    | 是   | 音频采集器标志。 |
826
827## SourceType<sup>8+</sup><a name="sourcetype"></a>
828
829枚举,音源类型。
830
831| 名称                                         |  值     | 说明                   |
832| :------------------------------------------- | :----- | :--------------------- |
833| SOURCE_TYPE_INVALID                          | -1     | 无效的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core  |
834| SOURCE_TYPE_MIC                              | 0      | Mic音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core |
835| SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup>   | 1      | 语音识别源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core  |
836| SOURCE_TYPE_PLAYBACK_CAPTURE<sup>10+</sup>   | 2 | 播放音频流(内录)录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |
837| SOURCE_TYPE_WAKEUP <sup>10+</sup>            | 3 | 语音唤醒音频流录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core <br/>**需要权限:** ohos.permission.MANAGE_INTELLIGENT_VOICE <br/> 此接口为系统接口|
838| SOURCE_TYPE_VOICE_COMMUNICATION              | 7      | 语音通话场景的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core |
839
840## AudioPlaybackCaptureConfig<sup>10+</sup><a name="audioplaybackcaptureconfig"></a>
841
842播放音频流录制(内录)的配置信息。
843
844**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
845
846| 名称          | 类型                                          | 必填 | 说明                             |
847| ------------- | --------------------------------------------- | ---- | -------------------------------- |
848| filterOptions | [CaptureFilterOptions](#capturefilteroptions) | 是   | 需要录制的播放音频流的筛选信息。 |
849
850## CaptureFilterOptions<sup>10+</sup><a name="capturefilteroptions"></a>
851
852待录制的播放音频流的筛选信息。
853
854**需要权限:** ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO
855
856当应用指定录制的StreamUsage值中包含SOURCE_TYPE_VOICE_COMMUNICATION的播放音频流时,需要校验应用是否拥有该权限。
857
858**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
859
860| 名称   | 类型                               | 必填 | 说明                                                         |
861| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ |
862| usages | Array<[StreamUsage](#streamusage)> | 是   | 指定需要录制的播放音频流的[StreamUsage](#streamusage)类型。可同时指定0个或多个StreamUsage。Array为空时,默认录制StreamUsage为STREAM_USAGE_MEDIA的播放音频流。 |
863
864## AudioScene<sup>8+</sup><a name="audioscene"></a>
865
866枚举,音频场景。
867
868**系统能力:** SystemCapability.Multimedia.Audio.Communication
869
870| 名称                   |  值     | 说明                                          |
871| :--------------------- | :----- | :-------------------------------------------- |
872| AUDIO_SCENE_DEFAULT    | 0      | 默认音频场景。                                |
873| AUDIO_SCENE_RINGING    | 1      | 响铃模式。<br/>此接口为系统接口。 |
874| AUDIO_SCENE_PHONE_CALL | 2      | 电话模式。<br/>此接口为系统接口。 |
875| AUDIO_SCENE_VOICE_CHAT | 3      | 语音聊天模式。                                |
876
877## VolumeAdjustType<sup>10+</sup>
878
879枚举,音量调节类型。
880
881**系统能力:** SystemCapability.Multimedia.Audio.Volume
882
883| 名称                   |  值     | 说明                                          |
884| :--------------------- | :----- | :-------------------------------------------- |
885| VOLUME_UP              | 0      | 向上调节音量。<br/>此接口为系统接口。   |
886| VOLUME_DOWN            | 1      | 向下调节音量。<br/>此接口为系统接口。   |
887
888## AudioManager
889
890管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。
891
892### setAudioParameter
893
894setAudioParameter(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void
895
896音频参数设置,使用callback方式异步返回结果。
897
898本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
899
900**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
901
902**系统能力:** SystemCapability.Multimedia.Audio.Core
903
904**参数:**
905
906| 参数名   | 类型                      | 必填 | 说明                     |
907| -------- | ------------------------- | ---- | ------------------------ |
908| key      | string                    | 是   | 被设置的音频参数的键。   |
909| value    | string                    | 是   | 被设置的音频参数的值。   |
910| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。 |
911
912**示例:**
913
914```ts
915import { BusinessError } from '@ohos.base';
916audioManager.setAudioParameter('key_example', 'value_example', (err: BusinessError) => {
917  if (err) {
918    console.error(`Failed to set the audio parameter. ${err}`);
919    return;
920  }
921  console.info('Callback invoked to indicate a successful setting of the audio parameter.');
922});
923```
924
925### setAudioParameter
926
927setAudioParameter(key: string, value: string): Promise&lt;void&gt;
928
929音频参数设置,使用Promise方式异步返回结果。
930
931本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
932
933**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
934
935**系统能力:** SystemCapability.Multimedia.Audio.Core
936
937**参数:**
938
939| 参数名 | 类型   | 必填 | 说明                   |
940| ------ | ------ | ---- | ---------------------- |
941| key    | string | 是   | 被设置的音频参数的键。 |
942| value  | string | 是   | 被设置的音频参数的值。 |
943
944**返回值:**
945
946| 类型                | 说明                            |
947| ------------------- | ------------------------------- |
948| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
949
950**示例:**
951
952```ts
953audioManager.setAudioParameter('key_example', 'value_example').then(() => {
954  console.info('Promise returned to indicate a successful setting of the audio parameter.');
955});
956```
957
958### getAudioParameter
959
960getAudioParameter(key: string, callback: AsyncCallback&lt;string&gt;): void
961
962获取指定音频参数值,使用callback方式异步返回结果。
963
964本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
965
966**系统能力:** SystemCapability.Multimedia.Audio.Core
967
968**参数:**
969
970| 参数名   | 类型                        | 必填 | 说明                         |
971| -------- | --------------------------- | ---- | ---------------------------- |
972| key      | string                      | 是   | 待获取的音频参数的键。       |
973| callback | AsyncCallback&lt;string&gt; | 是   | 回调返回获取的音频参数的值。 |
974
975**示例:**
976
977```ts
978import { BusinessError } from '@ohos.base';
979audioManager.getAudioParameter('key_example', (err: BusinessError, value: string) => {
980  if (err) {
981    console.error(`Failed to obtain the value of the audio parameter. ${err}`);
982    return;
983  }
984  console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
985});
986```
987
988### getAudioParameter
989
990getAudioParameter(key: string): Promise&lt;string&gt;
991
992获取指定音频参数值,使用Promise方式异步返回结果。
993
994本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
995
996**系统能力:** SystemCapability.Multimedia.Audio.Core
997
998**参数:**
999
1000| 参数名 | 类型   | 必填 | 说明                   |
1001| ------ | ------ | ---- | ---------------------- |
1002| key    | string | 是   | 待获取的音频参数的键。 |
1003
1004**返回值:**
1005
1006| 类型                  | 说明                                |
1007| --------------------- | ----------------------------------- |
1008| Promise&lt;string&gt; | Promise回调返回获取的音频参数的值。 |
1009
1010**示例:**
1011
1012```ts
1013audioManager.getAudioParameter('key_example').then((value: string) => {
1014  console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
1015});
1016```
1017
1018### setAudioScene<sup>8+</sup>
1019
1020setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void
1021
1022设置音频场景模式,使用callback方式异步返回结果。
1023
1024**系统接口:** 该接口为系统接口
1025
1026**系统能力:** SystemCapability.Multimedia.Audio.Communication
1027
1028**参数:**
1029
1030| 参数名   | 类型                                 | 必填 | 说明                 |
1031| :------- | :----------------------------------- | :--- | :------------------- |
1032| scene    | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。       |
1033| callback | AsyncCallback<void\>                 | 是   | 用于返回结果的回调。 |
1034
1035**示例:**
1036
1037```ts
1038import { BusinessError } from '@ohos.base';
1039audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err: BusinessError) => {
1040  if (err) {
1041    console.error(`Failed to set the audio scene mode.​ ${err}`);
1042    return;
1043  }
1044  console.info('Callback invoked to indicate a successful setting of the audio scene mode.');
1045});
1046```
1047
1048### setAudioScene<sup>8+</sup>
1049
1050setAudioScene\(scene: AudioScene\): Promise<void\>
1051
1052设置音频场景模式,使用Promise方式返回异步结果。
1053
1054**系统接口:** 该接口为系统接口
1055
1056**系统能力:** SystemCapability.Multimedia.Audio.Communication
1057
1058**参数:**
1059
1060| 参数名 | 类型                                 | 必填 | 说明           |
1061| :----- | :----------------------------------- | :--- | :------------- |
1062| scene  | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。 |
1063
1064**返回值:**
1065
1066| 类型           | 说明                 |
1067| :------------- | :------------------- |
1068| Promise<void\> | 用于返回结果的回调。 |
1069
1070**示例:**
1071
1072```ts
1073import { BusinessError } from '@ohos.base';
1074audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
1075  console.info('Promise returned to indicate a successful setting of the audio scene mode.');
1076}).catch ((err: BusinessError) => {
1077  console.error(`Failed to set the audio scene mode ${err}`);
1078});
1079```
1080
1081### getAudioScene<sup>8+</sup>
1082
1083getAudioScene\(callback: AsyncCallback<AudioScene\>\): void
1084
1085获取音频场景模式,使用callback方式返回异步结果。
1086
1087**系统能力:** SystemCapability.Multimedia.Audio.Communication
1088
1089**参数:**
1090
1091| 参数名   | 类型                                                | 必填 | 说明                         |
1092| :------- | :-------------------------------------------------- | :--- | :--------------------------- |
1093| callback | AsyncCallback<<a href="#audioscene">AudioScene</a>> | 是   | 用于返回音频场景模式的回调。 |
1094
1095**示例:**
1096
1097```ts
1098import { BusinessError } from '@ohos.base';
1099audioManager.getAudioScene((err: BusinessError, value: audio.AudioScene) => {
1100  if (err) {
1101    console.error(`Failed to obtain the audio scene mode.​ ${err}`);
1102    return;
1103  }
1104  console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
1105});
1106```
1107
1108### getAudioScene<sup>8+</sup>
1109
1110getAudioScene\(\): Promise<AudioScene\>
1111
1112获取音频场景模式,使用Promise方式返回异步结果。
1113
1114**系统能力:** SystemCapability.Multimedia.Audio.Communication
1115
1116**返回值:**
1117
1118| 类型                                          | 说明                         |
1119| :-------------------------------------------- | :--------------------------- |
1120| Promise<<a href="#audioscene">AudioScene</a>> | 用于返回音频场景模式的回调。 |
1121
1122**示例:**
1123
1124```ts
1125import { BusinessError } from '@ohos.base';
1126audioManager.getAudioScene().then((value: audio.AudioScene) => {
1127  console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
1128}).catch ((err: BusinessError) => {
1129  console.error(`Failed to obtain the audio scene mode ${err}`);
1130});
1131```
1132
1133### getAudioSceneSync<sup>10+</sup>
1134
1135getAudioSceneSync\(\): AudioScene
1136
1137获取音频场景模式,同步返回结果。
1138
1139**系统能力:** SystemCapability.Multimedia.Audio.Communication
1140
1141**返回值:**
1142
1143| 类型                                          | 说明                         |
1144| :-------------------------------------------- | :--------------------------- |
1145| <a href="#audioscene">AudioScene</a> | 返回音频场景模式。 |
1146
1147**示例:**
1148
1149```ts
1150import { BusinessError } from '@ohos.base';
1151
1152try {
1153  let value: audio.AudioScene = audioManager.getAudioSceneSync();
1154  console.info(`indicate that the audio scene mode is obtained ${value}.`);
1155} catch (err) {
1156  let error = err as BusinessError;
1157  console.error(`Failed to obtain the audio scene mode ${error}`);
1158}
1159```
1160
1161### getVolumeManager<sup>9+</sup>
1162
1163getVolumeManager(): AudioVolumeManager
1164
1165获取音频音量管理器。
1166
1167**系统能力:** SystemCapability.Multimedia.Audio.Volume
1168
1169**示例:**
1170
1171```ts
1172import audio from '@ohos.multimedia.audio';
1173let audioVolumeManager: audio.AudioVolumeManager = audioManager.getVolumeManager();
1174```
1175
1176### getStreamManager<sup>9+</sup>
1177
1178getStreamManager(): AudioStreamManager
1179
1180获取音频流管理器。
1181
1182**系统能力:** SystemCapability.Multimedia.Audio.Core
1183
1184**示例:**
1185
1186```ts
1187import audio from '@ohos.multimedia.audio';
1188let audioStreamManager: audio.AudioStreamManager = audioManager.getStreamManager();
1189```
1190
1191### getRoutingManager<sup>9+</sup>
1192
1193getRoutingManager(): AudioRoutingManager
1194
1195获取音频路由设备管理器。
1196
1197**系统能力:** SystemCapability.Multimedia.Audio.Device
1198
1199**示例:**
1200
1201```ts
1202import audio from '@ohos.multimedia.audio';
1203let audioRoutingManager: audio.AudioRoutingManager = audioManager.getRoutingManager();
1204```
1205
1206### setVolume<sup>(deprecated)</sup>
1207
1208setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
1209
1210设置指定流的音量,使用callback方式异步返回结果。
1211
1212> **说明:**
1213> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1214
1215**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1216
1217仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
1218
1219**系统能力:** SystemCapability.Multimedia.Audio.Volume
1220
1221**参数:**
1222
1223| 参数名     | 类型                                | 必填 | 说明                                                     |
1224| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
1225| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
1226| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
1227| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
1228
1229**示例:**
1230
1231```ts
1232import { BusinessError } from '@ohos.base';
1233audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => {
1234  if (err) {
1235    console.error(`Failed to set the volume. ${err}`);
1236    return;
1237  }
1238  console.info('Callback invoked to indicate a successful volume setting.');
1239});
1240```
1241
1242### setVolume<sup>(deprecated)</sup>
1243
1244setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
1245
1246设置指定流的音量,使用Promise方式异步返回结果。
1247
1248> **说明:**
1249> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1250
1251**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1252
1253仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
1254
1255**系统能力:** SystemCapability.Multimedia.Audio.Volume
1256
1257**参数:**
1258
1259| 参数名     | 类型                                | 必填 | 说明                                                     |
1260| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
1261| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
1262| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
1263
1264**返回值:**
1265
1266| 类型                | 说明                          |
1267| ------------------- | ----------------------------- |
1268| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1269
1270**示例:**
1271
1272```ts
1273audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
1274  console.info('Promise returned to indicate a successful volume setting.');
1275});
1276```
1277
1278### getVolume<sup>(deprecated)</sup>
1279
1280getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1281
1282获取指定流的音量,使用callback方式异步返回结果。
1283
1284> **说明:**
1285> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
1286
1287**系统能力:** SystemCapability.Multimedia.Audio.Volume
1288
1289**参数:**
1290
1291| 参数名     | 类型                                | 必填 | 说明               |
1292| ---------- | ----------------------------------- | ---- | ------------------ |
1293| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
1294| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
1295
1296**示例:**
1297
1298```ts
1299import { BusinessError } from '@ohos.base';
1300audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
1301  if (err) {
1302    console.error(`Failed to obtain the volume. ${err}`);
1303    return;
1304  }
1305  console.info('Callback invoked to indicate that the volume is obtained.');
1306});
1307```
1308
1309### getVolume<sup>(deprecated)</sup>
1310
1311getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1312
1313获取指定流的音量,使用Promise方式异步返回结果。
1314
1315> **说明:**
1316> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。
1317
1318**系统能力:** SystemCapability.Multimedia.Audio.Volume
1319
1320**参数:**
1321
1322| 参数名     | 类型                                | 必填 | 说明         |
1323| ---------- | ----------------------------------- | ---- | ------------ |
1324| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1325
1326**返回值:**
1327
1328| 类型                  | 说明                      |
1329| --------------------- | ------------------------- |
1330| Promise&lt;number&gt; | Promise回调返回音量大小。 |
1331
1332**示例:**
1333
1334```ts
1335audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
1336  console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
1337});
1338```
1339
1340### getMinVolume<sup>(deprecated)</sup>
1341
1342getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1343
1344获取指定流的最小音量,使用callback方式异步返回结果。
1345
1346> **说明:**
1347> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
1348
1349**系统能力:** SystemCapability.Multimedia.Audio.Volume
1350
1351**参数:**
1352
1353| 参数名     | 类型                                | 必填 | 说明               |
1354| ---------- | ----------------------------------- | ---- | ------------------ |
1355| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
1356| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
1357
1358**示例:**
1359
1360```ts
1361import { BusinessError } from '@ohos.base';
1362audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
1363  if (err) {
1364    console.error(`Failed to obtain the minimum volume. ${err}`);
1365    return;
1366  }
1367  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
1368});
1369```
1370
1371### getMinVolume<sup>(deprecated)</sup>
1372
1373getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1374
1375获取指定流的最小音量,使用Promise方式异步返回结果。
1376
1377> **说明:**
1378> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。
1379
1380**系统能力:** SystemCapability.Multimedia.Audio.Volume
1381
1382**参数:**
1383
1384| 参数名     | 类型                                | 必填 | 说明         |
1385| ---------- | ----------------------------------- | ---- | ------------ |
1386| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1387
1388**返回值:**
1389
1390| 类型                  | 说明                      |
1391| --------------------- | ------------------------- |
1392| Promise&lt;number&gt; | Promise回调返回最小音量。 |
1393
1394**示例:**
1395
1396```ts
1397audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
1398  console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
1399});
1400```
1401
1402### getMaxVolume<sup>(deprecated)</sup>
1403
1404getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1405
1406获取指定流的最大音量,使用callback方式异步返回结果。
1407
1408> **说明:**
1409> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
1410
1411**系统能力:** SystemCapability.Multimedia.Audio.Volume
1412
1413**参数:**
1414
1415| 参数名     | 类型                                | 必填 | 说明                   |
1416| ---------- | ----------------------------------- | ---- | ---------------------- |
1417| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
1418| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
1419
1420**示例:**
1421
1422```ts
1423import { BusinessError } from '@ohos.base';
1424audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
1425  if (err) {
1426    console.error(`Failed to obtain the maximum volume. ${err}`);
1427    return;
1428  }
1429  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
1430});
1431```
1432
1433### getMaxVolume<sup>(deprecated)</sup>
1434
1435getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1436
1437获取指定流的最大音量,使用Promise方式异步返回结果。
1438
1439> **说明:**
1440> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。
1441
1442**系统能力:** SystemCapability.Multimedia.Audio.Volume
1443
1444**参数:**
1445
1446| 参数名     | 类型                                | 必填 | 说明         |
1447| ---------- | ----------------------------------- | ---- | ------------ |
1448| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1449
1450**返回值:**
1451
1452| 类型                  | 说明                          |
1453| --------------------- | ----------------------------- |
1454| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
1455
1456**示例:**
1457
1458```ts
1459audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => {
1460  console.info('Promised returned to indicate that the maximum volume is obtained.');
1461});
1462```
1463
1464### mute<sup>(deprecated)</sup>
1465
1466mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1467
1468设置指定音量流静音,使用callback方式异步返回结果。
1469
1470> **说明:**
1471> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1472
1473**系统能力:** SystemCapability.Multimedia.Audio.Volume
1474
1475**参数:**
1476
1477| 参数名     | 类型                                | 必填 | 说明                                  |
1478| ---------- | ----------------------------------- | ---- | ------------------------------------- |
1479| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
1480| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
1481| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
1482
1483**示例:**
1484
1485```ts
1486import { BusinessError } from '@ohos.base';
1487audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => {
1488  if (err) {
1489    console.error(`Failed to mute the stream. ${err}`);
1490    return;
1491  }
1492  console.info('Callback invoked to indicate that the stream is muted.');
1493});
1494```
1495
1496### mute<sup>(deprecated)</sup>
1497
1498mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
1499
1500设置指定音量流静音,使用Promise方式异步返回结果。
1501
1502> **说明:**
1503> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1504
1505**系统能力:** SystemCapability.Multimedia.Audio.Volume
1506
1507**参数:**
1508
1509| 参数名     | 类型                                | 必填 | 说明                                  |
1510| ---------- | ----------------------------------- | ---- | ------------------------------------- |
1511| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
1512| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
1513
1514**返回值:**
1515
1516| 类型                | 说明                          |
1517| ------------------- | ----------------------------- |
1518| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1519
1520**示例:**
1521
1522
1523```ts
1524audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
1525  console.info('Promise returned to indicate that the stream is muted.');
1526});
1527```
1528
1529### isMute<sup>(deprecated)</sup>
1530
1531isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
1532
1533获取指定音量流是否被静音,使用callback方式异步返回结果。
1534
1535> **说明:**
1536> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
1537
1538**系统能力:** SystemCapability.Multimedia.Audio.Volume
1539
1540**参数:**
1541
1542| 参数名     | 类型                                | 必填 | 说明                                            |
1543| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
1544| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
1545| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
1546
1547**示例:**
1548
1549```ts
1550import { BusinessError } from '@ohos.base';
1551audioManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
1552  if (err) {
1553    console.error(`Failed to obtain the mute status. ${err}`);
1554    return;
1555  }
1556  console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
1557});
1558```
1559
1560### isMute<sup>(deprecated)</sup>
1561
1562isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
1563
1564获取指定音量流是否被静音,使用Promise方式异步返回结果。
1565
1566> **说明:**
1567> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。
1568
1569**系统能力:** SystemCapability.Multimedia.Audio.Volume
1570
1571**参数:**
1572
1573| 参数名     | 类型                                | 必填 | 说明         |
1574| ---------- | ----------------------------------- | ---- | ------------ |
1575| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1576
1577**返回值:**
1578
1579| 类型                   | 说明                                                   |
1580| ---------------------- | ------------------------------------------------------ |
1581| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
1582
1583**示例:**
1584
1585```ts
1586audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
1587  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
1588});
1589```
1590
1591### isActive<sup>(deprecated)</sup>
1592
1593isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
1594
1595获取指定音量流是否为活跃状态,使用callback方式异步返回结果。
1596
1597> **说明:**
1598> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
1599
1600**系统能力:** SystemCapability.Multimedia.Audio.Volume
1601
1602**参数:**
1603
1604| 参数名     | 类型                                | 必填 | 说明                                              |
1605| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
1606| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                      |
1607| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
1608
1609**示例:**
1610
1611```ts
1612import { BusinessError } from '@ohos.base';
1613audioManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
1614  if (err) {
1615    console.error(`Failed to obtain the active status of the stream. ${err}`);
1616    return;
1617  }
1618  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
1619});
1620```
1621
1622### isActive<sup>(deprecated)</sup>
1623
1624isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
1625
1626获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。
1627
1628> **说明:**
1629> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。
1630
1631**系统能力:** SystemCapability.Multimedia.Audio.Volume
1632
1633**参数:**
1634
1635| 参数名     | 类型                                | 必填 | 说明         |
1636| ---------- | ----------------------------------- | ---- | ------------ |
1637| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1638
1639**返回值:**
1640
1641| 类型                   | 说明                                                     |
1642| ---------------------- | -------------------------------------------------------- |
1643| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
1644
1645**示例:**
1646
1647```ts
1648audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
1649  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
1650});
1651```
1652
1653### setRingerMode<sup>(deprecated)</sup>
1654
1655setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
1656
1657设置铃声模式,使用callback方式异步返回结果。
1658
1659> **说明:**
1660> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。
1661
1662**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1663
1664仅在静音和非静音状态切换时需要该权限。
1665
1666**系统能力:** SystemCapability.Multimedia.Audio.Communication
1667
1668**参数:**
1669
1670| 参数名   | 类型                            | 必填 | 说明                     |
1671| -------- | ------------------------------- | ---- | ------------------------ |
1672| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
1673| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
1674
1675**示例:**
1676
1677```ts
1678import { BusinessError } from '@ohos.base';
1679audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => {
1680  if (err) {
1681    console.error(`Failed to set the ringer mode.​ ${err}`);
1682    return;
1683  }
1684  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
1685});
1686```
1687
1688### setRingerMode<sup>(deprecated)</sup>
1689
1690setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
1691
1692设置铃声模式,使用Promise方式异步返回结果。
1693
1694> **说明:**
1695> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。
1696
1697
1698**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1699
1700仅在静音和非静音状态切换时需要该权限。
1701
1702**系统能力:** SystemCapability.Multimedia.Audio.Communication
1703
1704**参数:**
1705
1706| 参数名 | 类型                            | 必填 | 说明           |
1707| ------ | ------------------------------- | ---- | -------------- |
1708| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
1709
1710**返回值:**
1711
1712| 类型                | 说明                            |
1713| ------------------- | ------------------------------- |
1714| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1715
1716**示例:**
1717
1718```ts
1719audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
1720  console.info('Promise returned to indicate a successful setting of the ringer mode.');
1721});
1722```
1723
1724### getRingerMode<sup>(deprecated)</sup>
1725
1726getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
1727
1728获取铃声模式,使用callback方式异步返回结果。
1729
1730> **说明:**
1731> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
1732
1733**系统能力:** SystemCapability.Multimedia.Audio.Communication
1734
1735**参数:**
1736
1737| 参数名   | 类型                                                 | 必填 | 说明                     |
1738| -------- | ---------------------------------------------------- | ---- | ------------------------ |
1739| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
1740
1741**示例:**
1742
1743```ts
1744import { BusinessError } from '@ohos.base';
1745audioManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
1746  if (err) {
1747    console.error(`Failed to obtain the ringer mode.​ ${err}`);
1748    return;
1749  }
1750  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
1751});
1752```
1753
1754### getRingerMode<sup>(deprecated)</sup>
1755
1756getRingerMode(): Promise&lt;AudioRingMode&gt;
1757
1758获取铃声模式,使用Promise方式异步返回结果。
1759
1760> **说明:**
1761> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。
1762
1763**系统能力:** SystemCapability.Multimedia.Audio.Communication
1764
1765**返回值:**
1766
1767| 类型                                           | 说明                            |
1768| ---------------------------------------------- | ------------------------------- |
1769| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
1770
1771**示例:**
1772
1773```ts
1774audioManager.getRingerMode().then((value: audio.AudioRingMode) => {
1775  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
1776});
1777```
1778
1779### getDevices<sup>(deprecated)</sup>
1780
1781getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
1782
1783获取音频设备列表,使用callback方式异步返回结果。
1784
1785> **说明:**
1786> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
1787
1788**系统能力:** SystemCapability.Multimedia.Audio.Device
1789
1790**参数:**
1791
1792| 参数名     | 类型                                                         | 必填 | 说明                 |
1793| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
1794| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
1795| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
1796
1797**示例:**
1798```ts
1799import { BusinessError } from '@ohos.base';
1800audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
1801  if (err) {
1802    console.error(`Failed to obtain the device list. ${err}`);
1803    return;
1804  }
1805  console.info('Callback invoked to indicate that the device list is obtained.');
1806});
1807```
1808
1809### getDevices<sup>(deprecated)</sup>
1810
1811getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
1812
1813获取音频设备列表,使用Promise方式异步返回结果。
1814
1815> **说明:**
1816> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。
1817
1818**系统能力:** SystemCapability.Multimedia.Audio.Device
1819
1820**参数:**
1821
1822| 参数名     | 类型                      | 必填 | 说明             |
1823| ---------- | ------------------------- | ---- | ---------------- |
1824| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
1825
1826**返回值:**
1827
1828| 类型                                                         | 说明                      |
1829| ------------------------------------------------------------ | ------------------------- |
1830| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
1831
1832**示例:**
1833
1834```ts
1835audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => {
1836  console.info('Promise returned to indicate that the device list is obtained.');
1837});
1838```
1839
1840### setDeviceActive<sup>(deprecated)</sup>
1841
1842setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
1843
1844设置设备激活状态,使用callback方式异步返回结果。
1845
1846> **说明:**
1847> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
1848
1849**系统能力:** SystemCapability.Multimedia.Audio.Device
1850
1851**参数:**
1852
1853| 参数名     | 类型                                  | 必填 | 说明                     |
1854| ---------- | ------------------------------------- | ---- | ------------------------ |
1855| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
1856| active     | boolean                               | 是   | 设备激活状态。           |
1857| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
1858
1859**示例:**
1860
1861```ts
1862import { BusinessError } from '@ohos.base';
1863audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err: BusinessError) => {
1864  if (err) {
1865    console.error(`Failed to set the active status of the device. ${err}`);
1866    return;
1867  }
1868  console.info('Callback invoked to indicate that the device is set to the active status.');
1869});
1870```
1871
1872### setDeviceActive<sup>(deprecated)</sup>
1873
1874setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise&lt;void&gt;
1875
1876设置设备激活状态,使用Promise方式异步返回结果。
1877
1878> **说明:**
1879> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
1880
1881**系统能力:** SystemCapability.Multimedia.Audio.Device
1882
1883**参数:**
1884
1885| 参数名     | 类型                                  | 必填 | 说明               |
1886| ---------- | ------------------------------------- | ---- | ------------------ |
1887| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
1888| active     | boolean                               | 是   | 设备激活状态。     |
1889
1890**返回值:**
1891
1892| 类型                | 说明                            |
1893| ------------------- | ------------------------------- |
1894| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1895
1896**示例:**
1897
1898
1899```ts
1900audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
1901  console.info('Promise returned to indicate that the device is set to the active status.');
1902});
1903```
1904
1905### isDeviceActive<sup>(deprecated)</sup>
1906
1907isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
1908
1909获取指定设备的激活状态,使用callback方式异步返回结果。
1910
1911> **说明:**
1912> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
1913
1914**系统能力:** SystemCapability.Multimedia.Audio.Device
1915
1916**参数:**
1917
1918| 参数名     | 类型                                  | 必填 | 说明                     |
1919| ---------- | ------------------------------------- | ---- | ------------------------ |
1920| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
1921| callback   | AsyncCallback&lt;boolean&gt;          | 是   | 回调返回设备的激活状态。 |
1922
1923**示例:**
1924
1925```ts
1926import { BusinessError } from '@ohos.base';
1927audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
1928  if (err) {
1929    console.error(`Failed to obtain the active status of the device. ${err}`);
1930    return;
1931  }
1932  console.info('Callback invoked to indicate that the active status of the device is obtained.');
1933});
1934```
1935
1936### isDeviceActive<sup>(deprecated)</sup>
1937
1938isDeviceActive(deviceType: ActiveDeviceType): Promise&lt;boolean&gt;
1939
1940获取指定设备的激活状态,使用Promise方式异步返回结果。
1941
1942> **说明:**
1943> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。
1944
1945**系统能力:** SystemCapability.Multimedia.Audio.Device
1946
1947**参数:**
1948
1949| 参数名     | 类型                                  | 必填 | 说明               |
1950| ---------- | ------------------------------------- | ---- | ------------------ |
1951| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
1952
1953**返回值:**
1954
1955| Type                   | Description                     |
1956| ---------------------- | ------------------------------- |
1957| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
1958
1959**示例:**
1960
1961```ts
1962audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value: boolean) => {
1963  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
1964});
1965```
1966
1967### setMicrophoneMute<sup>(deprecated)</sup>
1968
1969setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1970
1971设置麦克风静音状态,使用callback方式异步返回结果。
1972
1973> **说明:**
1974> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
1975
1976**需要权限:** ohos.permission.MICROPHONE
1977
1978**系统能力:** SystemCapability.Multimedia.Audio.Device
1979
1980**参数:**
1981
1982| 参数名   | 类型                      | 必填 | 说明                                          |
1983| -------- | ------------------------- | ---- | --------------------------------------------- |
1984| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
1985| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
1986
1987**示例:**
1988
1989```ts
1990import { BusinessError } from '@ohos.base';
1991audioManager.setMicrophoneMute(true, (err: BusinessError) => {
1992  if (err) {
1993    console.error(`Failed to mute the microphone. ${err}`);
1994    return;
1995  }
1996  console.info('Callback invoked to indicate that the microphone is muted.');
1997});
1998```
1999
2000### setMicrophoneMute<sup>(deprecated)</sup>
2001
2002setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
2003
2004设置麦克风静音状态,使用Promise方式异步返回结果。
2005
2006> **说明:**
2007> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
2008
2009**需要权限:** ohos.permission.MICROPHONE
2010
2011**系统能力:** SystemCapability.Multimedia.Audio.Device
2012
2013**参数:**
2014
2015| 参数名 | 类型    | 必填 | 说明                                          |
2016| ------ | ------- | ---- | --------------------------------------------- |
2017| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |
2018
2019**返回值:**
2020
2021| 类型                | 说明                            |
2022| ------------------- | ------------------------------- |
2023| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
2024
2025**示例:**
2026
2027```ts
2028audioManager.setMicrophoneMute(true).then(() => {
2029  console.info('Promise returned to indicate that the microphone is muted.');
2030});
2031```
2032
2033### isMicrophoneMute<sup>(deprecated)</sup>
2034
2035isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
2036
2037获取麦克风静音状态,使用callback方式异步返回结果。
2038
2039> **说明:**
2040> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
2041
2042**需要权限:** ohos.permission.MICROPHONE
2043
2044**系统能力:** SystemCapability.Multimedia.Audio.Device
2045
2046**参数:**
2047
2048| 参数名   | 类型                         | 必填 | 说明                                                    |
2049| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
2050| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2051
2052**示例:**
2053
2054```ts
2055import { BusinessError } from '@ohos.base';
2056audioManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
2057  if (err) {
2058    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
2059    return;
2060  }
2061  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
2062});
2063```
2064
2065### isMicrophoneMute<sup>(deprecated)</sup>
2066
2067isMicrophoneMute(): Promise&lt;boolean&gt;
2068
2069获取麦克风静音状态,使用Promise方式异步返回结果。
2070
2071> **说明:**
2072> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
2073
2074**需要权限:** ohos.permission.MICROPHONE
2075
2076**系统能力:** SystemCapability.Multimedia.Audio.Device
2077
2078**返回值:**
2079
2080| 类型                   | 说明                                                         |
2081| ---------------------- | ------------------------------------------------------------ |
2082| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2083
2084**示例:**
2085
2086```ts
2087audioManager.isMicrophoneMute().then((value: boolean) => {
2088  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
2089});
2090```
2091
2092### on('volumeChange')<sup>(deprecated)</sup>
2093
2094on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
2095
2096> **说明:**
2097> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeManager中的[on('volumeChange')](#onvolumechange9)替代。
2098
2099监听系统音量变化事件。
2100
2101**系统接口:** 该接口为系统接口
2102
2103目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
2104
2105**系统能力:** SystemCapability.Multimedia.Audio.Volume
2106
2107**参数:**
2108
2109| 参数名   | 类型                                   | 必填 | 说明                                                         |
2110| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
2111| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'(系统音量变化事件,检测到系统音量改变时,触发该事件)。 |
2112| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
2113
2114**示例:**
2115
2116```ts
2117audioManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
2118  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
2119  console.info(`Volume level: ${volumeEvent.volume} `);
2120  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
2121});
2122```
2123
2124### on('ringerModeChange')<sup>(deprecated)</sup>
2125
2126on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
2127
2128监听铃声模式变化事件。
2129
2130> **说明:**
2131> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[on('ringerModeChange')](#onringermodechange9)替代。
2132
2133**系统接口:** 该接口为系统接口
2134
2135**系统能力:** SystemCapability.Multimedia.Audio.Communication
2136
2137**参数:**
2138
2139| 参数名   | 类型                                      | 必填 | 说明                                                         |
2140| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
2141| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
2142| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |
2143
2144**示例:**
2145
2146```ts
2147audioManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => {
2148  console.info(`Updated ringermode: ${ringerMode}`);
2149});
2150```
2151
2152### on('deviceChange')<sup>(deprecated)</sup>
2153
2154on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void
2155
2156设备更改。音频设备连接状态变化。
2157
2158> **说明:**
2159> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[on('deviceChange')](#ondevicechange9)替代。
2160
2161**系统能力:** SystemCapability.Multimedia.Audio.Device
2162
2163**参数:**
2164
2165| 参数名   | 类型                                                 | 必填 | 说明                                       |
2166| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
2167| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
2168| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
2169
2170**示例:**
2171
2172```ts
2173audioManager.on('deviceChange', (deviceChanged: audio.DeviceChangeAction) => {
2174  console.info(`device change type : ${deviceChanged.type} `);
2175  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
2176  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
2177  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
2178});
2179```
2180
2181### off('deviceChange')<sup>(deprecated)</sup>
2182
2183off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
2184
2185取消订阅音频设备连接变化事件。
2186
2187> **说明:**
2188> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[off('deviceChange')](#offdevicechange9)替代。
2189
2190**系统能力:** SystemCapability.Multimedia.Audio.Device
2191
2192**参数:**
2193
2194| 参数名   | 类型                                                | 必填 | 说明                                       |
2195| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
2196| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
2197| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
2198
2199**示例:**
2200
2201```ts
2202audioManager.off('deviceChange');
2203```
2204
2205### on('interrupt')
2206
2207on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void
2208
2209请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。
2210
2211与[on('audioInterrupt')](#onaudiointerrupt9)作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。
2212
2213**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2214
2215**参数:**
2216
2217| 参数名    | 类型                                          | 必填 | 说明                                                         |
2218| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
2219| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
2220| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
2221| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 是   | 音频打断事件回调方法。                                       |
2222
2223**示例:**
2224
2225```ts
2226import audio from '@ohos.multimedia.audio';
2227let interAudioInterrupt: audio.AudioInterrupt = {
2228  streamUsage:2,
2229  contentType:0,
2230  pauseWhenDucked:true
2231};
2232audioManager.on('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => {
2233  if (InterruptAction.actionType === 0) {
2234    console.info('An event to gain the audio focus starts.');
2235    console.info(`Focus gain event: ${InterruptAction} `);
2236  }
2237  if (InterruptAction.actionType === 1) {
2238    console.info('An audio interruption event starts.');
2239    console.info(`Audio interruption event: ${InterruptAction} `);
2240  }
2241});
2242```
2243
2244### off('interrupt')
2245
2246off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<InterruptAction>): void
2247
2248取消监听音频打断事件(删除监听事件,取消打断)。
2249
2250**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2251
2252**参数:**
2253
2254| 参数名    | 类型                                          | 必填 | 说明                                                         |
2255| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
2256| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
2257| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
2258| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 否   | 音频打断事件回调方法。                                       |
2259
2260**示例:**
2261
2262```ts
2263import audio from '@ohos.multimedia.audio';
2264let interAudioInterrupt: audio.AudioInterrupt = {
2265  streamUsage:2,
2266  contentType:0,
2267  pauseWhenDucked:true
2268};
2269audioManager.off('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => {
2270  if (InterruptAction.actionType === 0) {
2271    console.info('An event to release the audio focus starts.');
2272    console.info(`Focus release event: ${InterruptAction} `);
2273  }
2274});
2275```
2276
2277## AudioVolumeManager<sup>9+</sup>
2278
2279音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getvolumemanager9)获取AudioVolumeManager实例。
2280
2281### getVolumeGroupInfos<sup>9+</sup>
2282
2283getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos\>\): void
2284
2285获取音量组信息列表,使用callback方式异步返回结果。
2286
2287**系统接口:** 该接口为系统接口
2288
2289**系统能力:** SystemCapability.Multimedia.Audio.Volume
2290
2291**参数:**
2292
2293| 参数名     | 类型                                                         | 必填 | 说明                 |
2294| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
2295| networkId | string                                    | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。    |
2296| callback  | AsyncCallback&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 是   | 回调,返回音量组信息列表。 |
2297
2298**示例:**
2299```ts
2300import { BusinessError } from '@ohos.base';
2301audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err: BusinessError, value: audio.VolumeGroupInfos) => {
2302  if (err) {
2303    console.error(`Failed to obtain the volume group infos list. ${err}`);
2304    return;
2305  }
2306  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2307});
2308```
2309
2310### getVolumeGroupInfos<sup>9+</sup>
2311
2312getVolumeGroupInfos(networkId: string\): Promise<VolumeGroupInfos\>
2313
2314获取音量组信息列表,使用promise方式异步返回结果。
2315
2316**系统接口:** 该接口为系统接口
2317
2318**系统能力:** SystemCapability.Multimedia.Audio.Volume
2319
2320**参数:**
2321
2322| 参数名     | 类型               | 必填 | 说明                 |
2323| ---------- | ------------------| ---- | -------------------- |
2324| networkId | string             | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。   |
2325
2326**返回值:**
2327
2328| 类型                | 说明                          |
2329| ------------------- | ----------------------------- |
2330| Promise&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 音量组信息列表。 |
2331
2332**示例:**
2333
2334```ts
2335async function getVolumeGroupInfos(){
2336  let volumegroupinfos: audio.VolumeGroupInfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
2337  console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
2338}
2339```
2340
2341### getVolumeGroupInfosSync<sup>10+</sup>
2342
2343getVolumeGroupInfosSync(networkId: string\): VolumeGroupInfos
2344
2345获取音量组信息列表,同步返回结果。
2346
2347**系统接口:** 该接口为系统接口
2348
2349**系统能力:** SystemCapability.Multimedia.Audio.Volume
2350
2351**参数:**
2352
2353| 参数名     | 类型               | 必填 | 说明                 |
2354| ---------- | ------------------| ---- | -------------------- |
2355| networkId | string             | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。   |
2356
2357**返回值:**
2358
2359| 类型                | 说明                          |
2360| ------------------- | ----------------------------- |
2361| [VolumeGroupInfos](#volumegroupinfos9) | 音量组信息列表。 |
2362
2363**错误码:**
2364
2365以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2366
2367| 错误码ID | 错误信息 |
2368| ------- | --------------------------------------------|
2369| 6800101 | invalid parameter error              |
2370
2371**示例:**
2372
2373```ts
2374import { BusinessError } from '@ohos.base';
2375
2376try {
2377  let volumegroupinfos: audio.VolumeGroupInfos = audioVolumeManager.getVolumeGroupInfosSync(audio.LOCAL_NETWORK_ID);
2378  console.info(`Indicate that the volumeGroup list is obtained. ${JSON.stringify(volumegroupinfos)}`);
2379} catch (err) {
2380  let error = err as BusinessError;
2381  console.error(`Failed to obtain the volumeGroup list ${error}`);
2382}
2383```
2384
2385### getVolumeGroupManager<sup>9+</sup>
2386
2387getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void
2388
2389获取音频组管理器,使用callback方式异步返回结果。
2390
2391**系统能力:** SystemCapability.Multimedia.Audio.Volume
2392
2393**参数:**
2394
2395| 参数名     | 类型                                                         | 必填 | 说明                 |
2396| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
2397| groupId    | number                                    | 是   | 音量组id。     |
2398| callback   | AsyncCallback&lt;[AudioVolumeGroupManager](#audiovolumegroupmanager9)&gt; | 是   | 回调,返回一个音量组实例。 |
2399
2400**示例:**
2401
2402```ts
2403import { BusinessError } from '@ohos.base';
2404let groupid: number = audio.DEFAULT_VOLUME_GROUP_ID;
2405audioVolumeManager.getVolumeGroupManager(groupid, (err: BusinessError, value: audio.AudioVolumeGroupManager) => {
2406  if (err) {
2407    console.error(`Failed to obtain the volume group infos list. ${err}`);
2408    return;
2409  }
2410  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2411});
2412
2413```
2414
2415### getVolumeGroupManager<sup>9+</sup>
2416
2417getVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\>
2418
2419获取音频组管理器,使用promise方式异步返回结果。
2420
2421**系统能力:** SystemCapability.Multimedia.Audio.Volume
2422
2423**参数:**
2424
2425| 参数名     | 类型                                      | 必填 | 说明              |
2426| ---------- | ---------------------------------------- | ---- | ---------------- |
2427| groupId    | number                                   | 是   | 音量组id。     |
2428
2429**返回值:**
2430
2431| 类型                | 说明                          |
2432| ------------------- | ----------------------------- |
2433| Promise&lt; [AudioVolumeGroupManager](#audiovolumegroupmanager9) &gt; | 音量组实例。 |
2434
2435**示例:**
2436
2437```ts
2438import audio from '@ohos.multimedia.audio';
2439let groupid: number = audio.DEFAULT_VOLUME_GROUP_ID;
2440let audioVolumeGroupManager: audio.AudioVolumeGroupManager | undefined = undefined;
2441async function getVolumeGroupManager(){
2442  audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
2443  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2444}
2445```
2446
2447### getVolumeGroupManagerSync<sup>10+</sup>
2448
2449getVolumeGroupManagerSync(groupId: number\): AudioVolumeGroupManager
2450
2451获取音频组管理器,同步返回结果。
2452
2453**系统能力:** SystemCapability.Multimedia.Audio.Volume
2454
2455**参数:**
2456
2457| 参数名     | 类型                                      | 必填 | 说明              |
2458| ---------- | ---------------------------------------- | ---- | ---------------- |
2459| groupId    | number                                   | 是   | 音量组id。     |
2460
2461**返回值:**
2462
2463| 类型                | 说明                          |
2464| ------------------- | ----------------------------- |
2465| [AudioVolumeGroupManager](#audiovolumegroupmanager9) | 音量组实例。 |
2466
2467**错误码:**
2468
2469以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2470
2471| 错误码ID | 错误信息 |
2472| ------- | --------------------------------------------|
2473| 6800101 | invalid parameter error              |
2474
2475**示例:**
2476
2477```ts
2478import { BusinessError } from '@ohos.base';
2479
2480try {
2481  let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID);
2482  console.info(`Get audioVolumeGroupManager success.`);
2483} catch (err) {
2484  let error = err as BusinessError;
2485  console.error(`Failed to get audioVolumeGroupManager, error: ${error}`);
2486}
2487```
2488
2489### on('volumeChange')<sup>9+</sup>
2490
2491on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
2492
2493监听系统音量变化事件,使用callback方式异步返回结果。
2494
2495**系统能力:** SystemCapability.Multimedia.Audio.Volume
2496
2497**参数:**
2498
2499| 参数名   | 类型                                   | 必填 | 说明                                                         |
2500| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
2501| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'。 |
2502| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
2503
2504**错误码:**
2505
2506以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2507
2508| 错误码ID | 错误信息 |
2509| ------- | --------------------------------------------|
2510| 6800101 | if input parameter value error              |
2511
2512**示例:**
2513
2514```ts
2515audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => {
2516  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
2517  console.info(`Volume level: ${volumeEvent.volume} `);
2518  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
2519});
2520```
2521
2522## AudioVolumeGroupManager<sup>9+</sup>
2523
2524管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。
2525
2526### setVolume<sup>9+</sup>
2527
2528setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
2529
2530设置指定流的音量,使用callback方式异步返回结果。
2531
2532**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2533
2534仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2535
2536**系统接口:** 该接口为系统接口
2537
2538**系统能力:** SystemCapability.Multimedia.Audio.Volume
2539
2540**参数:**
2541
2542| 参数名     | 类型                                | 必填 | 说明                                                     |
2543| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
2544| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
2545| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
2546| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
2547
2548**示例:**
2549
2550```ts
2551import { BusinessError } from '@ohos.base';
2552audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => {
2553  if (err) {
2554    console.error(`Failed to set the volume. ${err}`);
2555    return;
2556  }
2557  console.info('Callback invoked to indicate a successful volume setting.');
2558});
2559```
2560
2561### setVolume<sup>9+</sup>
2562
2563setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
2564
2565设置指定流的音量,使用Promise方式异步返回结果。
2566
2567**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2568
2569仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2570
2571**系统接口:** 该接口为系统接口
2572
2573**系统能力:** SystemCapability.Multimedia.Audio.Volume
2574
2575**参数:**
2576
2577| 参数名     | 类型                                | 必填 | 说明                                                     |
2578| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
2579| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
2580| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
2581
2582**返回值:**
2583
2584| 类型                | 说明                          |
2585| ------------------- | ----------------------------- |
2586| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
2587
2588**示例:**
2589
2590```ts
2591audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
2592  console.info('Promise returned to indicate a successful volume setting.');
2593});
2594```
2595
2596### getVolume<sup>9+</sup>
2597
2598getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2599
2600获取指定流的音量,使用callback方式异步返回结果。
2601
2602**系统能力:** SystemCapability.Multimedia.Audio.Volume
2603
2604**参数:**
2605
2606| 参数名     | 类型                                | 必填 | 说明               |
2607| ---------- | ----------------------------------- | ---- | ------------------ |
2608| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
2609| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
2610
2611**示例:**
2612
2613```ts
2614import { BusinessError } from '@ohos.base';
2615audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
2616  if (err) {
2617    console.error(`Failed to obtain the volume. ${err}`);
2618    return;
2619  }
2620  console.info('Callback invoked to indicate that the volume is obtained.');
2621});
2622```
2623
2624### getVolume<sup>9+</sup>
2625
2626getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2627
2628获取指定流的音量,使用Promise方式异步返回结果。
2629
2630**系统能力:** SystemCapability.Multimedia.Audio.Volume
2631
2632**参数:**
2633
2634| 参数名     | 类型                                | 必填 | 说明         |
2635| ---------- | ----------------------------------- | ---- | ------------ |
2636| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2637
2638**返回值:**
2639
2640| 类型                  | 说明                      |
2641| --------------------- | ------------------------- |
2642| Promise&lt;number&gt; | Promise回调返回音量大小。 |
2643
2644**示例:**
2645
2646```ts
2647audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
2648  console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
2649});
2650```
2651
2652### getVolumeSync<sup>10+</sup>
2653
2654getVolumeSync(volumeType: AudioVolumeType): number;
2655
2656获取指定流的音量,同步返回结果。
2657
2658**系统能力:** SystemCapability.Multimedia.Audio.Volume
2659
2660**参数:**
2661
2662| 参数名     | 类型                                | 必填 | 说明         |
2663| ---------- | ----------------------------------- | ---- | ------------ |
2664| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2665
2666**返回值:**
2667
2668| 类型                  | 说明                      |
2669| --------------------- | ------------------------- |
2670| number | 返回音量大小。 |
2671
2672**错误码:**
2673
2674以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2675
2676| 错误码ID | 错误信息 |
2677| ------- | --------------------------------------------|
2678| 6800101 | invalid parameter error              |
2679
2680**示例:**
2681
2682```ts
2683import { BusinessError } from '@ohos.base';
2684
2685try {
2686  let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA);
2687  console.info(`Indicate that the volume is obtained ${value}.`);
2688} catch (err) {
2689  let error = err as BusinessError;
2690  console.info(`Failed to obtain the volume, error ${error}.`);
2691}
2692```
2693
2694### getMinVolume<sup>9+</sup>
2695
2696getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2697
2698获取指定流的最小音量,使用callback方式异步返回结果。
2699
2700**系统能力:** SystemCapability.Multimedia.Audio.Volume
2701
2702**参数:**
2703
2704| 参数名     | 类型                                | 必填 | 说明               |
2705| ---------- | ----------------------------------- | ---- | ------------------ |
2706| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
2707| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
2708
2709**示例:**
2710
2711```ts
2712import { BusinessError } from '@ohos.base';
2713audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
2714  if (err) {
2715    console.error(`Failed to obtain the minimum volume. ${err}`);
2716    return;
2717  }
2718  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
2719});
2720```
2721
2722### getMinVolume<sup>9+</sup>
2723
2724getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2725
2726获取指定流的最小音量,使用Promise方式异步返回结果。
2727
2728**系统能力:** SystemCapability.Multimedia.Audio.Volume
2729
2730**参数:**
2731
2732| 参数名     | 类型                                | 必填 | 说明         |
2733| ---------- | ----------------------------------- | ---- | ------------ |
2734| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2735
2736**返回值:**
2737
2738| 类型                  | 说明                      |
2739| --------------------- | ------------------------- |
2740| Promise&lt;number&gt; | Promise回调返回最小音量。 |
2741
2742**示例:**
2743
2744```ts
2745audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => {
2746  console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
2747});
2748```
2749
2750### getMinVolumeSync<sup>10+</sup>
2751
2752getMinVolumeSync(volumeType: AudioVolumeType): number;
2753
2754获取指定流的最小音量,同步返回结果。
2755
2756**系统能力:** SystemCapability.Multimedia.Audio.Volume
2757
2758**参数:**
2759
2760| 参数名     | 类型                                | 必填 | 说明         |
2761| ---------- | ----------------------------------- | ---- | ------------ |
2762| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2763
2764**返回值:**
2765
2766| 类型                  | 说明                      |
2767| --------------------- | ------------------------- |
2768| number | 返回最小音量。 |
2769
2770**错误码:**
2771
2772以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2773
2774| 错误码ID | 错误信息 |
2775| ------- | --------------------------------------------|
2776| 6800101 | invalid parameter error              |
2777
2778**示例:**
2779
2780```ts
2781import { BusinessError } from '@ohos.base';
2782
2783try {
2784  let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA);
2785  console.info(`Indicate that the minimum volume is obtained ${value}.`);
2786} catch (err) {
2787  let error = err as BusinessError;
2788  console.error(`Failed to obtain the minimum volume, error ${error}.`);
2789}
2790```
2791
2792### getMaxVolume<sup>9+</sup>
2793
2794getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
2795
2796获取指定流的最大音量,使用callback方式异步返回结果。
2797
2798**系统能力:** SystemCapability.Multimedia.Audio.Volume
2799
2800**参数:**
2801
2802| 参数名     | 类型                                | 必填 | 说明                   |
2803| ---------- | ----------------------------------- | ---- | ---------------------- |
2804| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
2805| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
2806
2807**示例:**
2808
2809```ts
2810import { BusinessError } from '@ohos.base';
2811audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => {
2812  if (err) {
2813    console.error(`Failed to obtain the maximum volume. ${err}`);
2814    return;
2815  }
2816  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
2817});
2818```
2819
2820### getMaxVolume<sup>9+</sup>
2821
2822getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
2823
2824获取指定流的最大音量,使用Promise方式异步返回结果。
2825
2826**系统能力:** SystemCapability.Multimedia.Audio.Volume
2827
2828**参数:**
2829
2830| 参数名     | 类型                                | 必填 | 说明         |
2831| ---------- | ----------------------------------- | ---- | ------------ |
2832| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2833
2834**返回值:**
2835
2836| 类型                  | 说明                          |
2837| --------------------- | ----------------------------- |
2838| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
2839
2840**示例:**
2841
2842```ts
2843audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => {
2844  console.info('Promised returned to indicate that the maximum volume is obtained.');
2845});
2846```
2847
2848### getMaxVolumeSync<sup>10+</sup>
2849
2850getMaxVolumeSync(volumeType: AudioVolumeType): number;
2851
2852获取指定流的最大音量,同步返回结果。
2853
2854**系统能力:** SystemCapability.Multimedia.Audio.Volume
2855
2856**参数:**
2857
2858| 参数名     | 类型                                | 必填 | 说明         |
2859| ---------- | ----------------------------------- | ---- | ------------ |
2860| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2861
2862**返回值:**
2863
2864| 类型                  | 说明                          |
2865| --------------------- | ----------------------------- |
2866| number | 返回最大音量大小。 |
2867
2868**错误码:**
2869
2870以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
2871
2872| 错误码ID | 错误信息 |
2873| ------- | --------------------------------------------|
2874| 6800101 | invalid parameter error              |
2875
2876**示例:**
2877
2878```ts
2879import { BusinessError } from '@ohos.base';
2880
2881try {
2882  let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA);
2883  console.info(`Indicate that the maximum volume is obtained. ${value}`);
2884} catch (err) {
2885  let error = err as BusinessError;
2886  console.error(`Failed to obtain the maximum volume, error ${error}.`);
2887}
2888```
2889
2890### mute<sup>9+</sup>
2891
2892mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
2893
2894设置指定音量流静音,使用callback方式异步返回结果。
2895
2896**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2897
2898仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2899
2900**系统接口:** 该接口为系统接口
2901
2902**系统能力:** SystemCapability.Multimedia.Audio.Volume
2903
2904**参数:**
2905
2906| 参数名     | 类型                                | 必填 | 说明                                  |
2907| ---------- | ----------------------------------- | ---- | ------------------------------------- |
2908| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
2909| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
2910| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
2911
2912**示例:**
2913
2914```ts
2915import { BusinessError } from '@ohos.base';
2916audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => {
2917  if (err) {
2918    console.error(`Failed to mute the stream. ${err}`);
2919    return;
2920  }
2921  console.info('Callback invoked to indicate that the stream is muted.');
2922});
2923```
2924
2925### mute<sup>9+</sup>
2926
2927mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
2928
2929设置指定音量流静音,使用Promise方式异步返回结果。
2930
2931**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2932
2933仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
2934
2935**系统接口:** 该接口为系统接口
2936
2937**系统能力:** SystemCapability.Multimedia.Audio.Volume
2938
2939**参数:**
2940
2941| 参数名     | 类型                                | 必填 | 说明                                  |
2942| ---------- | ----------------------------------- | ---- | ------------------------------------- |
2943| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
2944| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
2945
2946**返回值:**
2947
2948| 类型                | 说明                          |
2949| ------------------- | ----------------------------- |
2950| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
2951
2952**示例:**
2953
2954```ts
2955audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
2956  console.info('Promise returned to indicate that the stream is muted.');
2957});
2958```
2959
2960### isMute<sup>9+</sup>
2961
2962isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
2963
2964获取指定音量流是否被静音,使用callback方式异步返回结果。
2965
2966**系统能力:** SystemCapability.Multimedia.Audio.Volume
2967
2968**参数:**
2969
2970| 参数名     | 类型                                | 必填 | 说明                                            |
2971| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
2972| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
2973| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
2974
2975**示例:**
2976
2977```ts
2978import { BusinessError } from '@ohos.base';
2979audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
2980  if (err) {
2981    console.error(`Failed to obtain the mute status. ${err}`);
2982    return;
2983  }
2984  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
2985});
2986```
2987
2988### isMute<sup>9+</sup>
2989
2990isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
2991
2992获取指定音量流是否被静音,使用Promise方式异步返回结果。
2993
2994**系统能力:** SystemCapability.Multimedia.Audio.Volume
2995
2996**参数:**
2997
2998| 参数名     | 类型                                | 必填 | 说明         |
2999| ---------- | ----------------------------------- | ---- | ------------ |
3000| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
3001
3002**返回值:**
3003
3004| 类型                   | 说明                                                   |
3005| ---------------------- | ------------------------------------------------------ |
3006| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
3007
3008**示例:**
3009
3010```ts
3011audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
3012  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
3013});
3014```
3015
3016### isMuteSync<sup>10+</sup>
3017
3018isMuteSync(volumeType: AudioVolumeType): boolean
3019
3020获取指定音量流是否被静音,同步返回结果。
3021
3022**系统能力:** SystemCapability.Multimedia.Audio.Volume
3023
3024**参数:**
3025
3026| 参数名     | 类型                                | 必填 | 说明         |
3027| ---------- | ----------------------------------- | ---- | ------------ |
3028| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
3029
3030**返回值:**
3031
3032| 类型                   | 说明                                                   |
3033| ---------------------- | ------------------------------------------------------ |
3034| boolean | 返回流静音状态,true为静音,false为非静音。 |
3035
3036**错误码:**
3037
3038以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3039
3040| 错误码ID | 错误信息 |
3041| ------- | --------------------------------------------|
3042| 6800101 | invalid parameter error              |
3043
3044**示例:**
3045
3046```ts
3047import { BusinessError } from '@ohos.base';
3048
3049try {
3050  let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA);
3051  console.info(`Indicate that the mute status of the stream is obtained ${value}.`);
3052} catch (err) {
3053  let error = err as BusinessError;
3054  console.error(`Failed to obtain the mute status of the stream, error ${error}.`);
3055}
3056```
3057
3058### setRingerMode<sup>9+</sup>
3059
3060setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
3061
3062设置铃声模式,使用callback方式异步返回结果。
3063
3064**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3065
3066仅在静音和非静音状态切换时需要该权限。
3067
3068**系统接口:** 该接口为系统接口
3069
3070**系统能力:** SystemCapability.Multimedia.Audio.Volume
3071
3072**参数:**
3073
3074| 参数名   | 类型                            | 必填 | 说明                     |
3075| -------- | ------------------------------- | ---- | ------------------------ |
3076| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
3077| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
3078
3079**示例:**
3080
3081```ts
3082import { BusinessError } from '@ohos.base';
3083audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => {
3084  if (err) {
3085    console.error(`Failed to set the ringer mode.​ ${err}`);
3086    return;
3087  }
3088  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
3089});
3090```
3091
3092### setRingerMode<sup>9+</sup>
3093
3094setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
3095
3096设置铃声模式,使用Promise方式异步返回结果。
3097
3098**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3099
3100仅在静音和非静音状态切换时需要该权限。
3101
3102**系统接口:** 该接口为系统接口
3103
3104**系统能力:** SystemCapability.Multimedia.Audio.Volume
3105
3106**参数:**
3107
3108| 参数名 | 类型                            | 必填 | 说明           |
3109| ------ | ------------------------------- | ---- | -------------- |
3110| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
3111
3112**返回值:**
3113
3114| 类型                | 说明                            |
3115| ------------------- | ------------------------------- |
3116| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
3117
3118**示例:**
3119
3120```ts
3121audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
3122  console.info('Promise returned to indicate a successful setting of the ringer mode.');
3123});
3124```
3125
3126### getRingerMode<sup>9+</sup>
3127
3128getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
3129
3130获取铃声模式,使用callback方式异步返回结果。
3131
3132**系统能力:** SystemCapability.Multimedia.Audio.Volume
3133
3134**参数:**
3135
3136| 参数名   | 类型                                                 | 必填 | 说明                     |
3137| -------- | ---------------------------------------------------- | ---- | ------------------------ |
3138| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
3139
3140**示例:**
3141
3142```ts
3143import { BusinessError } from '@ohos.base';
3144audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => {
3145  if (err) {
3146    console.error(`Failed to obtain the ringer mode.​ ${err}`);
3147    return;
3148  }
3149  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
3150});
3151```
3152
3153### getRingerMode<sup>9+</sup>
3154
3155getRingerMode(): Promise&lt;AudioRingMode&gt;
3156
3157获取铃声模式,使用Promise方式异步返回结果。
3158
3159**系统能力:** SystemCapability.Multimedia.Audio.Volume
3160
3161**返回值:**
3162
3163| 类型                                           | 说明                            |
3164| ---------------------------------------------- | ------------------------------- |
3165| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
3166
3167**示例:**
3168
3169```ts
3170audioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => {
3171  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
3172});
3173```
3174
3175### getRingerModeSync<sup>10+</sup>
3176
3177getRingerModeSync(): AudioRingMode
3178
3179获取铃声模式,同步返回结果。
3180
3181**系统能力:** SystemCapability.Multimedia.Audio.Volume
3182
3183**返回值:**
3184
3185| 类型                                           | 说明                            |
3186| ---------------------------------------------- | ------------------------------- |
3187| [AudioRingMode](#audioringmode) | 返回系统的铃声模式。 |
3188
3189**示例:**
3190
3191```ts
3192import { BusinessError } from '@ohos.base';
3193
3194try {
3195  let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync();
3196  console.info(`Indicate that the ringer mode is obtained ${value}.`);
3197} catch (err) {
3198  let error = err as BusinessError;
3199  console.error(`Failed to obtain the ringer mode, error ${error}.`);
3200}
3201```
3202
3203### on('ringerModeChange')<sup>9+</sup>
3204
3205on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
3206
3207监听铃声模式变化事件。
3208
3209**系统能力:** SystemCapability.Multimedia.Audio.Volume
3210
3211**参数:**
3212
3213| 参数名   | 类型                                      | 必填 | 说明                                                         |
3214| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
3215| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
3216| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |
3217
3218**错误码:**
3219
3220以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3221
3222| 错误码ID | 错误信息 |
3223| ------- | --------------------------------------------|
3224| 6800101 | if input parameter value error              |
3225
3226**示例:**
3227
3228```ts
3229audioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => {
3230  console.info(`Updated ringermode: ${ringerMode}`);
3231});
3232```
3233### setMicrophoneMute<sup>9+</sup>
3234
3235setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
3236
3237设置麦克风静音状态,使用callback方式异步返回结果。
3238
3239**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
3240
3241**系统能力:** SystemCapability.Multimedia.Audio.Volume
3242
3243**参数:**
3244
3245| 参数名   | 类型                      | 必填 | 说明                                          |
3246| -------- | ------------------------- | ---- | --------------------------------------------- |
3247| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
3248| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
3249
3250**示例:**
3251
3252```ts
3253import { BusinessError } from '@ohos.base';
3254audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => {
3255  if (err) {
3256    console.error(`Failed to mute the microphone. ${err}`);
3257    return;
3258  }
3259  console.info('Callback invoked to indicate that the microphone is muted.');
3260});
3261```
3262
3263### setMicrophoneMute<sup>9+</sup>
3264
3265setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
3266
3267设置麦克风静音状态,使用Promise方式异步返回结果。
3268
3269**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
3270
3271**系统能力:** SystemCapability.Multimedia.Audio.Volume
3272
3273**参数:**
3274
3275| 参数名 | 类型    | 必填 | 说明                                          |
3276| ------ | ------- | ---- | --------------------------------------------- |
3277| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |
3278
3279**返回值:**
3280
3281| 类型                | 说明                            |
3282| ------------------- | ------------------------------- |
3283| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
3284
3285**示例:**
3286
3287```ts
3288audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
3289  console.info('Promise returned to indicate that the microphone is muted.');
3290});
3291```
3292
3293### isMicrophoneMute<sup>9+</sup>
3294
3295isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
3296
3297获取麦克风静音状态,使用callback方式异步返回结果。
3298
3299**系统能力:** SystemCapability.Multimedia.Audio.Volume
3300
3301**参数:**
3302
3303| 参数名   | 类型                         | 必填 | 说明                                                    |
3304| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
3305| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
3306
3307**示例:**
3308
3309```ts
3310import { BusinessError } from '@ohos.base';
3311audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => {
3312  if (err) {
3313    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
3314    return;
3315  }
3316  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
3317});
3318```
3319
3320### isMicrophoneMute<sup>9+</sup>
3321
3322isMicrophoneMute(): Promise&lt;boolean&gt;
3323
3324获取麦克风静音状态,使用Promise方式异步返回结果。
3325
3326**系统能力:** SystemCapability.Multimedia.Audio.Volume
3327
3328**返回值:**
3329
3330| 类型                   | 说明                                                         |
3331| ---------------------- | ------------------------------------------------------------ |
3332| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
3333
3334**示例:**
3335
3336```ts
3337audioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => {
3338  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
3339});
3340```
3341
3342### isMicrophoneMuteSync<sup>10+</sup>
3343
3344isMicrophoneMuteSync(): boolean
3345
3346获取麦克风静音状态,同步返回结果。
3347
3348**系统能力:** SystemCapability.Multimedia.Audio.Volume
3349
3350**返回值:**
3351
3352| 类型                   | 说明                                                         |
3353| ---------------------- | ------------------------------------------------------------ |
3354| boolean | 返回系统麦克风静音状态,true为静音,false为非静音。 |
3355
3356**示例:**
3357
3358```ts
3359import { BusinessError } from '@ohos.base';
3360
3361try {
3362  let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync();
3363  console.info(`Indicate that the mute status of the microphone is obtained ${value}.`);
3364} catch (err) {
3365  let error = err as BusinessError;
3366  console.error(`Failed to obtain the mute status of the microphone, error ${error}.`);
3367}
3368```
3369
3370### on('micStateChange')<sup>9+</sup>
3371
3372on(type: 'micStateChange', callback: Callback&lt;MicStateChangeEvent&gt;): void
3373
3374监听系统麦克风状态更改事件。
3375
3376目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
3377
3378**系统能力:** SystemCapability.Multimedia.Audio.Volume
3379
3380**参数:**
3381
3382| 参数名   | 类型                                   | 必填 | 说明                                                         |
3383| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
3384| type     | string                                 | 是   | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
3385| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是   | 回调方法,返回变更后的麦克风状态。                                                   |
3386
3387**错误码:**
3388
3389以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3390
3391| 错误码ID | 错误信息 |
3392| ------- | --------------------------------------------|
3393| 6800101 | if input parameter value error              |
3394
3395**示例:**
3396
3397```ts
3398audioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => {
3399  console.info(`Current microphone status is: ${micStateChange.mute} `);
3400});
3401```
3402
3403### isVolumeUnadjustable<sup>10+</sup>
3404
3405isVolumeUnadjustable(): boolean
3406
3407获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节,使用同步方式返回结果。
3408
3409**系统能力:** SystemCapability.Multimedia.Audio.Volume
3410
3411**返回值:**
3412
3413| 类型                   | 说明                                                   |
3414| ---------------------- | ------------------------------------------------------ |
3415| boolean            | 同步接口,返回固定音量模式开关状态,true为固定音量模式,false为非固定音量模式。 |
3416
3417**示例:**
3418
3419```ts
3420let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable();
3421console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`);
3422```
3423
3424### adjustVolumeByStep<sup>10+</sup>
3425
3426adjustVolumeByStep(adjustType: VolumeAdjustType, callback: AsyncCallback&lt;void&gt;): void
3427
3428调节当前最高优先级的流的音量,使音量值按步长加或减,使用callback方式异步返回结果。
3429
3430**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3431
3432仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
3433
3434**系统接口:** 该接口为系统接口
3435
3436**系统能力:** SystemCapability.Multimedia.Audio.Volume
3437
3438**参数:**
3439
3440| 参数名     | 类型                                | 必填 | 说明                                                     |
3441| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3442| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
3443| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
3444
3445**错误码:**
3446
3447以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3448
3449| 错误码ID | 错误信息 |
3450| ------- | --------------------------------------------|
3451| 6800101 | Invalid parameter error. Return by callback.                     |
3452| 6800301 | System error. Return by callback.                                |
3453
3454**示例:**
3455
3456```ts
3457import { BusinessError } from '@ohos.base';
3458audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP, (err: BusinessError) => {
3459  if (err) {
3460    console.error(`Failed to adjust the volume by step. ${err}`);
3461    return;
3462  } else {
3463    console.info('Success to adjust the volume by step.');
3464  }
3465});
3466```
3467### adjustVolumeByStep<sup>10+</sup>
3468
3469adjustVolumeByStep(adjustType: VolumeAdjustType): Promise&lt;void&gt;
3470
3471单步设置当前最高优先级的流的音量,使用Promise方式异步返回结果。
3472
3473**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3474
3475仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
3476
3477**系统接口:** 该接口为系统接口
3478
3479**系统能力:** SystemCapability.Multimedia.Audio.Volume
3480
3481**参数:**
3482
3483| 参数名     | 类型                                | 必填 | 说明                                                     |
3484| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3485| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
3486
3487**返回值:**
3488
3489| 类型                | 说明                          |
3490| ------------------- | ----------------------------- |
3491| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
3492
3493**错误码:**
3494
3495以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3496
3497| 错误码ID | 错误信息 |
3498| ------- | --------------------------------------------|
3499| 6800101 | Invalid parameter error. Return by promise.                     |
3500| 6800301 | System error. Return by promise.                                |
3501
3502**示例:**
3503
3504```ts
3505import { BusinessError } from '@ohos.base';
3506audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP).then(() => {
3507  console.info('Success to adjust the volume by step.');
3508}).catch((error: BusinessError) => {
3509  console.error('Fail to adjust the volume by step.');
3510});
3511```
3512
3513### adjustSystemVolumeByStep<sup>10+</sup>
3514
3515adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType, callback: AsyncCallback&lt;void&gt;): void
3516
3517单步设置指定流的音量,使用callback方式异步返回结果。
3518
3519**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3520
3521仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
3522
3523**系统接口:** 该接口为系统接口
3524
3525**系统能力:** SystemCapability.Multimedia.Audio.Volume
3526
3527**参数:**
3528
3529| 参数名     | 类型                                | 必填 | 说明                                                     |
3530| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3531| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
3532| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                       |
3533| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
3534
3535**错误码:**
3536
3537以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3538
3539| 错误码ID | 错误信息 |
3540| ------- | --------------------------------------------|
3541| 6800101 | Invalid parameter error. Return by callback.                     |
3542| 6800301 | System error. Return by callback.                                |
3543
3544**示例:**
3545
3546```ts
3547import { BusinessError } from '@ohos.base';
3548audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP, (err: BusinessError) => {
3549  if (err) {
3550    console.error(`Failed to adjust the system volume by step ${err}`);
3551  } else {
3552    console.info('Success to adjust the system volume by step.');
3553  }
3554});
3555```
3556### adjustSystemVolumeByStep<sup>10+</sup>
3557
3558adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType): Promise&lt;void&gt;
3559
3560单步设置指定流的音量,使用Promise方式异步返回结果。
3561
3562**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
3563
3564仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
3565
3566**系统接口:** 该接口为系统接口
3567
3568**系统能力:** SystemCapability.Multimedia.Audio.Volume
3569
3570**参数:**
3571
3572| 参数名     | 类型                                | 必填 | 说明                                                     |
3573| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3574| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
3575| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
3576
3577**返回值:**
3578
3579| 类型                | 说明                          |
3580| ------------------- | ----------------------------- |
3581| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
3582
3583**错误码:**
3584
3585以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3586
3587| 错误码ID | 错误信息 |
3588| ------- | --------------------------------------------|
3589| 6800101 | Invalid parameter error. Return by promise.                     |
3590| 6800301 | System error. Return by promise.                                |
3591
3592**示例:**
3593
3594```ts
3595import { BusinessError } from '@ohos.base';
3596audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP).then(() => {
3597  console.info('Success to adjust the system volume by step.');
3598}).catch((error: BusinessError) => {
3599  console.error('Fail to adjust the system volume by step.');
3600});
3601```
3602
3603### getSystemVolumeInDb<sup>10+</sup>
3604
3605getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback&lt;number&gt;): void
3606
3607获取音量增益dB值,使用callback方式异步返回结果。
3608
3609**系统能力:** SystemCapability.Multimedia.Audio.Volume
3610
3611**参数:**
3612
3613| 参数名     | 类型                                | 必填 | 说明                                                     |
3614| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3615| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
3616| volumeLevel | number                         | 是   | 音量等级。                                               |
3617| device     | [DeviceType](#devicetype)           | 是   | 设备类型。                                               |
3618| callback   | AsyncCallback&lt;number&gt;           | 是   | 回调返回对应的音量增益dB值。                              |
3619
3620**错误码:**
3621
3622以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3623
3624| 错误码ID | 错误信息 |
3625| ------- | --------------------------------------------|
3626| 6800101 | Invalid parameter error. Return by callback.                     |
3627| 6800301 | System error. Return by callback.                                |
3628
3629**示例:**
3630
3631```ts
3632import { BusinessError } from '@ohos.base';
3633audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => {
3634  if (err) {
3635    console.error(`Failed to get the volume DB. ${err}`);
3636  } else {
3637    console.info(`Success to get the volume DB. ${dB}`);
3638  }
3639});
3640```
3641### getSystemVolumeInDb<sup>10+</sup>
3642
3643getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise&lt;number&gt;
3644
3645获取音量增益dB值,使用Promise方式异步返回结果。
3646
3647**系统能力:** SystemCapability.Multimedia.Audio.Volume
3648
3649**参数:**
3650
3651| 参数名     | 类型                                | 必填 | 说明                                                     |
3652| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3653| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
3654| volumeLevel | number                              | 是   | 音量等级。                                             |
3655| device     | [DeviceType](#devicetype)           | 是   | 设备类型。                                               |
3656
3657**返回值:**
3658
3659| 类型                  | 说明                               |
3660| --------------------- | ---------------------------------- |
3661| Promise&lt;number&gt; | Promise回调返回对应的音量增益dB值。 |
3662
3663**错误码:**
3664
3665以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3666
3667| 错误码ID | 错误信息 |
3668| ------- | --------------------------------------------|
3669| 6800101 | Invalid parameter error. Return by promise.                     |
3670| 6800301 | System error. Return by promise.                                |
3671
3672**示例:**
3673
3674```ts
3675import { BusinessError } from '@ohos.base';
3676audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => {
3677  console.info(`Success to get the volume DB. ${value}`);
3678}).catch((error: BusinessError) => {
3679  console.error(`Fail to adjust the system volume by step. ${error}`);
3680});
3681```
3682
3683### getSystemVolumeInDbSync<sup>10+</sup>
3684
3685getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number
3686
3687获取音量增益dB值,同步返回结果。
3688
3689**系统能力:** SystemCapability.Multimedia.Audio.Volume
3690
3691**参数:**
3692
3693| 参数名     | 类型                                | 必填 | 说明                                                     |
3694| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
3695| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
3696| volumeLevel | number                              | 是   | 音量等级。                                             |
3697| device     | [DeviceType](#devicetype)           | 是   | 设备类型。                                               |
3698
3699**返回值:**
3700
3701| 类型                  | 说明                               |
3702| --------------------- | ---------------------------------- |
3703| number | 返回对应的音量增益dB值。 |
3704
3705**错误码:**
3706
3707以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
3708
3709| 错误码ID | 错误信息 |
3710| ------- | --------------------------------------------|
3711| 6800101 | invalid parameter error                     |
3712
3713**示例:**
3714
3715```ts
3716import { BusinessError } from '@ohos.base';
3717
3718try {
3719  let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER);
3720  console.info(`Success to get the volume DB. ${value}`);
3721} catch (err) {
3722  let error = err as BusinessError;
3723  console.error(`Fail to adjust the system volume by step. ${error}`);
3724}
3725```
3726
3727## AudioStreamManager<sup>9+</sup>
3728
3729管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。
3730
3731### getCurrentAudioRendererInfoArray<sup>9+</sup>
3732
3733getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeInfoArray&gt;): void
3734
3735获取当前音频渲染器的信息。使用callback异步回调。
3736
3737**系统能力**: SystemCapability.Multimedia.Audio.Renderer
3738
3739**参数:**
3740
3741| 参数名     | 类型                                 | 必填     | 说明                         |
3742| -------- | ----------------------------------- | -------- | --------------------------- |
3743| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是     |  回调函数,返回当前音频渲染器的信息。 |
3744
3745**示例:**
3746
3747```ts
3748import { BusinessError } from '@ohos.base';
3749audioStreamManager.getCurrentAudioRendererInfoArray(async (err: BusinessError, AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
3750  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
3751  if (err) {
3752    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
3753  } else {
3754    if (AudioRendererChangeInfoArray != null) {
3755      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
3756        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
3757        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
3758        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
3759        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
3760        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
3761        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
3762        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
3763        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
3764          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
3765          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
3766          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
3767          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
3768          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3769          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3770          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3771          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
3772        }
3773      }
3774    }
3775  }
3776});
3777```
3778
3779### getCurrentAudioRendererInfoArray<sup>9+</sup>
3780
3781getCurrentAudioRendererInfoArray(): Promise&lt;AudioRendererChangeInfoArray&gt;
3782
3783获取当前音频渲染器的信息。使用Promise异步回调。
3784
3785**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3786
3787**返回值:**
3788
3789| 类型                                                                              | 说明                                    |
3790| ---------------------------------------------------------------------------------| --------------------------------------- |
3791| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)>          | Promise对象,返回当前音频渲染器信息。      |
3792
3793**示例:**
3794
3795```ts
3796import { BusinessError } from '@ohos.base';
3797async function getCurrentAudioRendererInfoArray(){
3798  await audioStreamManager.getCurrentAudioRendererInfoArray().then((AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
3799    console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
3800    if (AudioRendererChangeInfoArray != null) {
3801      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
3802        let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
3803        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
3804        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
3805        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
3806        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
3807        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
3808        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
3809        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
3810          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
3811          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
3812          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
3813          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
3814          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3815          console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3816          console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3817          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
3818        }
3819      }
3820    }
3821  }).catch((err: BusinessError) => {
3822    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
3823  });
3824}
3825```
3826### getCurrentAudioRendererInfoArraySync<sup>10+</sup>
3827
3828getCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray
3829
3830获取当前音频渲染器的信息,同步返回结果。
3831
3832**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3833
3834**返回值:**
3835
3836| 类型                                                                              | 说明                                    |
3837| ---------------------------------------------------------------------------------| --------------------------------------- |
3838| [AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)          | 返回当前音频渲染器信息。      |
3839
3840**示例:**
3841
3842```ts
3843import { BusinessError } from '@ohos.base';
3844
3845try {
3846  let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync();
3847  console.info(`getCurrentAudioRendererInfoArraySync success.`);
3848  if (audioRendererChangeInfoArray != null) {
3849    for (let i = 0; i < audioRendererChangeInfoArray.length; i++) {
3850      let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i];
3851      console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
3852      console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
3853      console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
3854      console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
3855      console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
3856      console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
3857      for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
3858        console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
3859        console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
3860        console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
3861        console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
3862        console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
3863        console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
3864        console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
3865        console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
3866      }
3867    }
3868  }
3869} catch (err) {
3870  let error = err as BusinessError;
3871  console.error(`getCurrentAudioRendererInfoArraySync :ERROR: ${error}`);
3872}
3873```
3874
3875### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3876
3877getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeInfoArray&gt;): void
3878
3879获取当前音频采集器的信息。使用callback异步回调。
3880
3881**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3882
3883**参数:**
3884
3885| 参数名        | 类型                                 | 必填      | 说明                                                      |
3886| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
3887| callback   | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是    | 回调函数,返回当前音频采集器的信息。 |
3888
3889**示例:**
3890
3891```ts
3892import { BusinessError } from '@ohos.base';
3893audioStreamManager.getCurrentAudioCapturerInfoArray(async (err: BusinessError, AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
3894  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
3895  if (err) {
3896    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
3897  } else {
3898    if (AudioCapturerChangeInfoArray != null) {
3899      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3900        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3901        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3902        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3903        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3904        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3905        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3906          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3907          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3908          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3909          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3910          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3911          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3912          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3913          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
3914        }
3915      }
3916    }
3917  }
3918});
3919```
3920
3921### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3922
3923getCurrentAudioCapturerInfoArray(): Promise&lt;AudioCapturerChangeInfoArray&gt;
3924
3925获取当前音频采集器的信息。使用Promise异步回调。
3926
3927**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3928
3929**返回值:**
3930
3931| 类型                                                                         | 说明                                 |
3932| -----------------------------------------------------------------------------| ----------------------------------- |
3933| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)>      | Promise对象,返回当前音频渲染器信息。  |
3934
3935**示例:**
3936
3937```ts
3938import { BusinessError } from '@ohos.base';
3939async function getCurrentAudioCapturerInfoArray(){
3940  await audioStreamManager.getCurrentAudioCapturerInfoArray().then((AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => {
3941    console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
3942    if (AudioCapturerChangeInfoArray != null) {
3943      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
3944        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
3945        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
3946        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
3947        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3948        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
3949        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3950          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3951          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3952          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3953          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
3954          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
3955          console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
3956          console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
3957          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
3958        }
3959      }
3960    }
3961  }).catch((err: BusinessError) => {
3962    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
3963  });
3964}
3965```
3966### getCurrentAudioCapturerInfoArraySync<sup>10+</sup>
3967
3968getCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray
3969
3970获取当前音频采集器的信息,同步返回结果。
3971
3972**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3973
3974**返回值:**
3975
3976| 类型                                                                         | 说明                                 |
3977| -----------------------------------------------------------------------------| ----------------------------------- |
3978| [AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)      | 返回当前音频采集器信息。  |
3979
3980**示例:**
3981
3982```ts
3983import { BusinessError } from '@ohos.base';
3984
3985try {
3986  let audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync();
3987  console.info('getCurrentAudioCapturerInfoArraySync success.');
3988  if (audioCapturerChangeInfoArray != null) {
3989    for (let i = 0; i < audioCapturerChangeInfoArray.length; i++) {
3990      console.info(`StreamId for ${i} is: ${audioCapturerChangeInfoArray[i].streamId}`);
3991      console.info(`ClientUid for ${i} is: ${audioCapturerChangeInfoArray[i].clientUid}`);
3992      console.info(`Source for ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.source}`);
3993      console.info(`Flag  ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
3994      console.info(`State for ${i} is: ${audioCapturerChangeInfoArray[i].capturerState}`);
3995      for (let j = 0; j < audioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
3996        console.info(`Id: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
3997        console.info(`Type: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
3998        console.info(`Role: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
3999        console.info(`Name: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
4000        console.info(`Address: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
4001        console.info(`SampleRate: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
4002        console.info(`ChannelCount: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
4003        console.info(`ChannelMask: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
4004      }
4005    }
4006  }
4007} catch (err) {
4008  let error = err as BusinessError;
4009  console.error(`getCurrentAudioCapturerInfoArraySync ERROR: ${error}`);
4010}
4011```
4012
4013### on('audioRendererChange')<sup>9+</sup>
4014
4015on(type: 'audioRendererChange', callback: Callback&lt;AudioRendererChangeInfoArray&gt;): void
4016
4017监听音频渲染器更改事件。
4018
4019**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4020
4021**参数:**
4022
4023| 参数名      | 类型        | 必填      | 说明                                                                     |
4024| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
4025| type     | string     | 是        | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。     |
4026| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是  |  回调函数。        |
4027
4028**错误码:**
4029
4030以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4031
4032| 错误码ID | 错误信息 |
4033| ------- | --------------------------------------------|
4034| 6800101 | if input parameter value error              |
4035
4036**示例:**
4037
4038```ts
4039audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => {
4040  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
4041    let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
4042    console.info(`## RendererChange on is called for ${i} ##`);
4043    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
4044    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
4045    console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
4046    console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
4047    console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`);
4048    console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);
4049    for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
4050      console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
4051      console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
4052      console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
4053      console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
4054      console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
4055      console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
4056      console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
4057      console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`);
4058    }
4059  }
4060});
4061```
4062
4063### off('audioRendererChange')<sup>9+</sup>
4064
4065off(type: 'audioRendererChange'): void
4066
4067取消监听音频渲染器更改事件。
4068
4069**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4070
4071**参数:**
4072
4073| 参数名     | 类型     | 必填 | 说明              |
4074| -------- | ------- | ---- | ---------------- |
4075| type     | string  | 是   | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |
4076
4077**错误码:**
4078
4079以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4080
4081| 错误码ID | 错误信息 |
4082| ------- | --------------------------------------------|
4083| 6800101 | if input parameter value error              |
4084
4085**示例:**
4086
4087```ts
4088audioStreamManager.off('audioRendererChange');
4089console.info('######### RendererChange Off is called #########');
4090```
4091
4092### on('audioCapturerChange')<sup>9+</sup>
4093
4094on(type: 'audioCapturerChange', callback: Callback&lt;AudioCapturerChangeInfoArray&gt;): void
4095
4096监听音频采集器更改事件。
4097
4098**系统能力:** SystemCapability.Multimedia.Audio.Capturer
4099
4100**参数:**
4101
4102| 参数名     | 类型     | 必填      | 说明                                                                                           |
4103| -------- | ------- | --------- | ----------------------------------------------------------------------- |
4104| type     | string  | 是        | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。     |
4105| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是     | 回调函数。   |
4106
4107**错误码:**
4108
4109以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4110
4111| 错误码ID | 错误信息 |
4112| ------- | --------------------------------------------|
4113| 6800101 | if input parameter value error              |
4114
4115**示例:**
4116
4117```ts
4118audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) =>  {
4119  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
4120    console.info(`## CapChange on is called for element ${i} ##`);
4121    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
4122    console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
4123    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
4124    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
4125    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
4126    let devDescriptor: audio.AudioCapturerChangeInfo = AudioCapturerChangeInfoArray[i].deviceDescriptors;
4127    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
4128      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
4129      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
4130      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
4131      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
4132      console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
4133      console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
4134      console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
4135      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
4136    }
4137  }
4138});
4139```
4140
4141### off('audioCapturerChange')<sup>9+</sup>
4142
4143off(type: 'audioCapturerChange'): void;
4144
4145取消监听音频采集器更改事件。
4146
4147**系统能力:** SystemCapability.Multimedia.Audio.Capturer
4148
4149**参数:**
4150
4151| 参数名       | 类型     | 必填 | 说明                                                          |
4152| -------- | -------- | --- | ------------------------------------------------------------- |
4153| type     | string   |是   | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |
4154
4155**错误码:**
4156
4157以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4158
4159| 错误码ID | 错误信息 |
4160| ------- | --------------------------------------------|
4161| 6800101 | if input parameter value error              |
4162
4163**示例:**
4164
4165```ts
4166audioStreamManager.off('audioCapturerChange');
4167console.info('######### CapturerChange Off is called #########');
4168
4169```
4170
4171### isActive<sup>9+</sup>
4172
4173isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
4174
4175获取指定音频流是否为活跃状态,使用callback方式异步返回结果。
4176
4177**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4178
4179**参数:**
4180
4181| 参数名     | 类型                                | 必填 | 说明                                              |
4182| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
4183| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。                                      |
4184| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
4185
4186**示例:**
4187
4188```ts
4189import { BusinessError } from '@ohos.base';
4190audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => {
4191if (err) {
4192  console.error(`Failed to obtain the active status of the stream. ${err}`);
4193  return;
4194}
4195  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
4196});
4197```
4198
4199### isActive<sup>9+</sup>
4200
4201isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
4202
4203获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。
4204
4205**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4206
4207**参数:**
4208
4209| 参数名     | 类型                                | 必填 | 说明         |
4210| ---------- | ----------------------------------- | ---- | ------------ |
4211| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。 |
4212
4213**返回值:**
4214
4215| 类型                   | 说明                                                     |
4216| ---------------------- | -------------------------------------------------------- |
4217| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
4218
4219**示例:**
4220
4221```ts
4222audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => {
4223  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
4224});
4225```
4226
4227### isActiveSync<sup>10+</sup>
4228
4229isActiveSync(volumeType: AudioVolumeType): boolean
4230
4231获取指定音频流是否为活跃状态,同步返回结果。
4232
4233**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4234
4235**参数:**
4236
4237| 参数名     | 类型                                | 必填 | 说明         |
4238| ---------- | ----------------------------------- | ---- | ------------ |
4239| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。 |
4240
4241**返回值:**
4242
4243| 类型                   | 说明                                                     |
4244| ---------------------- | -------------------------------------------------------- |
4245| boolean | 返回流的活跃状态,true为活跃,false为不活跃。 |
4246
4247**错误码:**
4248
4249以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4250
4251| 错误码ID | 错误信息 |
4252| ------- | --------------------------------------------|
4253| 6800101 | invalid parameter error              |
4254
4255**示例:**
4256
4257```ts
4258import { BusinessError } from '@ohos.base';
4259
4260try {
4261  let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA);
4262  console.info(`Indicate that the active status of the stream is obtained ${value}.`);
4263} catch (err) {
4264  let error = err as BusinessError;
4265  console.error(`Failed to obtain the active status of the stream ${error}.`);
4266}
4267```
4268
4269### getAudioEffectInfoArray<sup>10+</sup>
4270
4271getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback&lt;AudioEffectInfoArray&gt;): void
4272
4273获取当前音效模式的信息。使用callback异步回调。
4274
4275**系统能力**: SystemCapability.Multimedia.Audio.Renderer
4276
4277**参数:**
4278
4279| 参数名    | 类型                                | 必填     | 说明                         |
4280| -------- | ----------------------------------- | -------- | --------------------------- |
4281| usage    | [StreamUsage](#streamusage)                                    | 是     |  音频流使用类型。                |
4282| callback | AsyncCallback<[AudioEffectInfoArray](#audioeffectinfoarray10)> | 是     |  回调函数,返回当前音效模式的信息。|
4283
4284**错误码:**
4285
4286以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4287
4288| 错误码ID | 错误信息 |
4289| ------- | --------------------------------------------|
4290| 6800101 | Invalid parameter error. Return by callback.|
4291
4292**示例:**
4293
4294```ts
4295import { BusinessError } from '@ohos.base';
4296audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA, async (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => {
4297  console.info('getAudioEffectInfoArray **** Get Callback Called ****');
4298  if (err) {
4299    console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
4300    return;
4301  } else {
4302    console.info(`The effect modes are: ${audioEffectInfoArray}`);
4303  }
4304});
4305```
4306
4307### getAudioEffectInfoArray<sup>10+</sup>
4308
4309getAudioEffectInfoArray(usage: StreamUsage): Promise&lt;AudioEffectInfoArray&gt;
4310
4311获取当前音效模式的信息。使用Promise异步回调。
4312
4313**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4314
4315**参数:**
4316
4317| 参数名    | 类型                                | 必填     | 说明                         |
4318| -------- | ----------------------------------- | -------- | --------------------------- |
4319| usage    | [StreamUsage](#streamusage)         | 是     |  音频流使用类型。               |
4320
4321**返回值:**
4322
4323| 类型                                                                      | 说明                                    |
4324| --------------------------------------------------------------------------| --------------------------------------- |
4325| Promise<[AudioEffectInfoArray](#audioeffectinfoarray10)>                  | Promise对象,返回当前音效模式的信息。      |
4326
4327**错误码:**
4328
4329以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4330
4331| 错误码ID | 错误信息 |
4332| ------- | --------------------------------------------|
4333| 6800101 | Invalid parameter error. Return by promise. |
4334
4335**示例:**
4336
4337```ts
4338import { BusinessError } from '@ohos.base';
4339audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => {
4340  console.info('getAudioEffectInfoArray ######### Get Promise is called ##########');
4341  console.info(`The effect modes are: ${audioEffectInfoArray}`);
4342}).catch((err: BusinessError) => {
4343  console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
4344});
4345```
4346
4347### getAudioEffectInfoArraySync<sup>10+</sup>
4348
4349getAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray
4350
4351获取当前音效模式的信息,同步返回结果。
4352
4353**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4354
4355**参数:**
4356
4357| 参数名    | 类型                                | 必填     | 说明                         |
4358| -------- | ----------------------------------- | -------- | --------------------------- |
4359| usage    | [StreamUsage](#streamusage)         | 是     |  音频流使用类型。               |
4360
4361**返回值:**
4362
4363| 类型                                                                      | 说明                                    |
4364| --------------------------------------------------------------------------| --------------------------------------- |
4365| [AudioEffectInfoArray](#audioeffectinfoarray10)                  | 返回当前音效模式的信息。      |
4366
4367**错误码:**
4368
4369以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4370
4371| 错误码ID | 错误信息 |
4372| ------- | --------------------------------------------|
4373| 6800101 | invalid parameter error |
4374
4375**示例:**
4376
4377```ts
4378import { BusinessError } from '@ohos.base';
4379
4380try {
4381  let audioEffectInfoArray: audio.AudioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MEDIA);
4382  console.info(`The effect modes are: ${audioEffectInfoArray}`);
4383} catch (err) {
4384  let error = err as BusinessError;
4385  console.error(`getAudioEffectInfoArraySync ERROR: ${error}`);
4386}
4387```
4388
4389## AudioRoutingManager<sup>9+</sup>
4390
4391音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。
4392
4393### getDevices<sup>9+</sup>
4394
4395getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
4396
4397获取音频设备列表,使用callback方式异步返回结果。
4398
4399**系统能力:** SystemCapability.Multimedia.Audio.Device
4400
4401**参数:**
4402
4403| 参数名     | 类型                                                         | 必填 | 说明                 |
4404| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
4405| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
4406| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
4407
4408**示例:**
4409
4410```ts
4411import { BusinessError } from '@ohos.base';
4412audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => {
4413  if (err) {
4414    console.error(`Failed to obtain the device list. ${err}`);
4415    return;
4416  }
4417  console.info('Callback invoked to indicate that the device list is obtained.');
4418});
4419```
4420
4421### getDevices<sup>9+</sup>
4422
4423getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
4424
4425获取音频设备列表,使用Promise方式异步返回结果。
4426
4427**系统能力:** SystemCapability.Multimedia.Audio.Device
4428
4429**参数:**
4430
4431| 参数名     | 类型                      | 必填 | 说明             |
4432| ---------- | ------------------------- | ---- | ---------------- |
4433| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
4434
4435**返回值:**
4436
4437| 类型                                                         | 说明                      |
4438| ------------------------------------------------------------ | ------------------------- |
4439| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
4440
4441**示例:**
4442
4443```ts
4444audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => {
4445  console.info('Promise returned to indicate that the device list is obtained.');
4446});
4447```
4448
4449### getDevicesSync<sup>10+</sup>
4450
4451getDevicesSync(deviceFlag: DeviceFlag): AudioDeviceDescriptors
4452
4453获取音频设备列表,同步返回结果。
4454
4455**系统能力:** SystemCapability.Multimedia.Audio.Device
4456
4457**参数:**
4458
4459| 参数名     | 类型                      | 必填 | 说明             |
4460| ---------- | ------------------------- | ---- | ---------------- |
4461| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
4462
4463**返回值:**
4464
4465| 类型                                                         | 说明                      |
4466| ------------------------------------------------------------ | ------------------------- |
4467| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回设备列表。 |
4468
4469**错误码:**
4470
4471以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4472
4473| 错误码ID | 错误信息 |
4474| ------- | --------------------------------------------|
4475| 6800101 | invalid parameter error              |
4476
4477**示例:**
4478
4479```ts
4480import { BusinessError } from '@ohos.base';
4481
4482try {
4483  let data: audio.AudioDeviceDescriptors = audioRoutingManager.getDevicesSync(audio.DeviceFlag.OUTPUT_DEVICES_FLAG);
4484  console.info(`Indicate that the device list is obtained ${data}`);
4485} catch (err) {
4486  let error = err as BusinessError;
4487  console.error(`Failed to obtain the device list. ${error}`);
4488}
4489```
4490
4491### on('deviceChange')<sup>9+</sup>
4492
4493on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction\>): void
4494
4495设备更改。音频设备连接状态变化。
4496
4497**系统能力:** SystemCapability.Multimedia.Audio.Device
4498
4499**参数:**
4500
4501| 参数名   | 类型                                                 | 必填 | 说明                                       |
4502| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
4503| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
4504| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
4505| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
4506
4507**错误码:**
4508
4509以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4510
4511| 错误码ID | 错误信息 |
4512| ------- | --------------------------------------------|
4513| 6800101 | if input parameter value error              |
4514
4515**示例:**
4516
4517```ts
4518audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => {
4519  console.info('device change type : ' + deviceChanged.type);
4520  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
4521  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
4522  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
4523});
4524```
4525
4526### off('deviceChange')<sup>9+</sup>
4527
4528off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
4529
4530取消订阅音频设备连接变化事件。
4531
4532**系统能力:** SystemCapability.Multimedia.Audio.Device
4533
4534**参数:**
4535
4536| 参数名   | 类型                                                | 必填 | 说明                                       |
4537| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
4538| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
4539| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
4540
4541**错误码:**
4542
4543以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4544
4545| 错误码ID | 错误信息 |
4546| ------- | --------------------------------------------|
4547| 6800101 | if input parameter value error              |
4548
4549**示例:**
4550
4551```ts
4552audioRoutingManager.off('deviceChange');
4553```
4554
4555### selectInputDevice<sup>9+</sup>
4556
4557selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
4558
4559选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。
4560
4561**系统接口:** 该接口为系统接口
4562
4563**系统能力:** SystemCapability.Multimedia.Audio.Device
4564
4565**参数:**
4566
4567| 参数名                       | 类型                                                         | 必填 | 说明                      |
4568| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
4569| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |
4570| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回选择输入设备结果。 |
4571
4572**示例:**
4573```ts
4574import audio from '@ohos.multimedia.audio';
4575import { BusinessError } from '@ohos.base';
4576let inputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
4577  deviceRole : audio.DeviceRole.INPUT_DEVICE,
4578  deviceType : audio.DeviceType.EARPIECE,
4579  id : 1,
4580  name : "",
4581  address : "",
4582  sampleRates : [44100],
4583  channelCounts : [2],
4584  channelMasks : [0],
4585  networkId : audio.LOCAL_NETWORK_ID,
4586  interruptGroupId : 1,
4587  volumeGroupId : 1,
4588  displayName : "",
4589}];
4590
4591async function selectInputDevice(){
4592  audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err: BusinessError) => {
4593    if (err) {
4594      console.error(`Result ERROR: ${err}`);
4595    } else {
4596      console.info('Select input devices result callback: SUCCESS');
4597    }
4598  });
4599}
4600```
4601
4602### selectInputDevice<sup>9+</sup>
4603
4604selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
4605
4606**系统接口:** 该接口为系统接口
4607
4608选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。
4609
4610**系统能力:** SystemCapability.Multimedia.Audio.Device
4611
4612**参数:**
4613
4614| 参数名                       | 类型                                                         | 必填 | 说明                      |
4615| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
4616| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |
4617
4618**返回值:**
4619
4620| 类型                  | 说明                         |
4621| --------------------- | --------------------------- |
4622| Promise&lt;void&gt;   | Promise返回选择输入设备结果。 |
4623
4624**示例:**
4625
4626```ts
4627import audio from '@ohos.multimedia.audio';
4628import { BusinessError } from '@ohos.base';
4629let inputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
4630  deviceRole : audio.DeviceRole.INPUT_DEVICE,
4631  deviceType : audio.DeviceType.EARPIECE,
4632  id : 1,
4633  name : "",
4634  address : "",
4635  sampleRates : [44100],
4636  channelCounts : [2],
4637  channelMasks : [0],
4638  networkId : audio.LOCAL_NETWORK_ID,
4639  interruptGroupId : 1,
4640  volumeGroupId : 1,
4641  displayName : "",
4642}];
4643
4644async function getRoutingManager(){
4645  audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
4646    console.info('Select input devices result promise: SUCCESS');
4647  }).catch((err: BusinessError) => {
4648    console.error(`Result ERROR: ${err}`);
4649  });
4650}
4651```
4652
4653### setCommunicationDevice<sup>9+</sup>
4654
4655setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
4656
4657设置通信设备激活状态,使用callback方式异步返回结果。
4658
4659**系统能力:** SystemCapability.Multimedia.Audio.Communication
4660
4661**参数:**
4662
4663| 参数名     | 类型                                  | 必填 | 说明                     |
4664| ---------- | ------------------------------------- | ---- | ------------------------ |
4665| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 音频设备类型。       |
4666| active     | boolean                               | 是   | 设备激活状态。           |
4667| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
4668
4669**示例:**
4670
4671```ts
4672import { BusinessError } from '@ohos.base';
4673audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err: BusinessError) => {
4674  if (err) {
4675    console.error(`Failed to set the active status of the device. ${err}`);
4676    return;
4677  }
4678  console.info('Callback invoked to indicate that the device is set to the active status.');
4679});
4680```
4681
4682### setCommunicationDevice<sup>9+</sup>
4683
4684setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise&lt;void&gt;
4685
4686设置通信设备激活状态,使用Promise方式异步返回结果。
4687
4688**系统能力:** SystemCapability.Multimedia.Audio.Communication
4689
4690**参数:**
4691
4692| 参数名     | 类型                                                   | 必填 | 说明               |
4693| ---------- | ----------------------------------------------------- | ---- | ------------------ |
4694| deviceType | [CommunicationDeviceType](#communicationdevicetype9)  | 是   | 活跃音频设备类型。 |
4695| active     | boolean                                               | 是   | 设备激活状态。     |
4696
4697**返回值:**
4698
4699| 类型                | 说明                            |
4700| ------------------- | ------------------------------- |
4701| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
4702
4703**示例:**
4704
4705```ts
4706audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
4707  console.info('Promise returned to indicate that the device is set to the active status.');
4708});
4709```
4710
4711### isCommunicationDeviceActive<sup>9+</sup>
4712
4713isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
4714
4715获取指定通信设备的激活状态,使用callback方式异步返回结果。
4716
4717**系统能力:** SystemCapability.Multimedia.Audio.Communication
4718
4719**参数:**
4720
4721| 参数名     | 类型                                                  | 必填 | 说明                     |
4722| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
4723| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。       |
4724| callback   | AsyncCallback&lt;boolean&gt;                         | 是   | 回调返回设备的激活状态。 |
4725
4726**示例:**
4727
4728```ts
4729import { BusinessError } from '@ohos.base';
4730audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err: BusinessError, value: boolean) => {
4731  if (err) {
4732    console.error(`Failed to obtain the active status of the device. ${err}`);
4733    return;
4734  }
4735  console.info('Callback invoked to indicate that the active status of the device is obtained.');
4736});
4737```
4738
4739### isCommunicationDeviceActive<sup>9+</sup>
4740
4741isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise&lt;boolean&gt;
4742
4743获取指定通信设备的激活状态,使用Promise方式异步返回结果。
4744
4745**系统能力:** SystemCapability.Multimedia.Audio.Communication
4746
4747**参数:**
4748
4749| 参数名     | 类型                                                  | 必填 | 说明               |
4750| ---------- | ---------------------------------------------------- | ---- | ------------------ |
4751| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。 |
4752
4753**返回值:**
4754
4755| Type                   | Description                     |
4756| ---------------------- | ------------------------------- |
4757| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
4758
4759**示例:**
4760
4761```ts
4762audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value: boolean) => {
4763  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
4764});
4765```
4766
4767### isCommunicationDeviceActiveSync<sup>10+</sup>
4768
4769isCommunicationDeviceActiveSync(deviceType: CommunicationDeviceType): boolean
4770
4771获取指定通信设备的激活状态,同步返回结果。
4772
4773**系统能力:** SystemCapability.Multimedia.Audio.Communication
4774
4775**参数:**
4776
4777| 参数名     | 类型                                                  | 必填 | 说明               |
4778| ---------- | ---------------------------------------------------- | ---- | ------------------ |
4779| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。 |
4780
4781**返回值:**
4782
4783| Type                   | Description                     |
4784| ---------------------- | ------------------------------- |
4785| boolean | 返回设备的激活状态。 |
4786
4787**错误码:**
4788
4789以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
4790
4791| 错误码ID | 错误信息 |
4792| ------- | --------------------------------------------|
4793| 6800101 | invalid parameter error              |
4794
4795**示例:**
4796
4797```ts
4798import { BusinessError } from '@ohos.base';
4799
4800try {
4801  let value: boolean = audioRoutingManager.isCommunicationDeviceActiveSync(audio.CommunicationDeviceType.SPEAKER);
4802  console.info(`Indicate that the active status of the device is obtained ${value}.`);
4803} catch (err) {
4804  let error = err as BusinessError;
4805  console.error(`Failed to obtain the active status of the device ${error}.`);
4806}
4807```
4808
4809### selectOutputDevice<sup>9+</sup>
4810
4811selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
4812
4813选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。
4814
4815**系统接口:** 该接口为系统接口
4816
4817**系统能力:** SystemCapability.Multimedia.Audio.Device
4818
4819**参数:**
4820
4821| 参数名                       | 类型                                                         | 必填 | 说明                      |
4822| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
4823| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
4824| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |
4825
4826**示例:**
4827```ts
4828import audio from '@ohos.multimedia.audio';
4829import { BusinessError } from '@ohos.base';
4830let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
4831  deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
4832  deviceType : audio.DeviceType.SPEAKER,
4833  id : 1,
4834  name : "",
4835  address : "",
4836  sampleRates : [44100],
4837  channelCounts : [2],
4838  channelMasks : [0],
4839  networkId : audio.LOCAL_NETWORK_ID,
4840  interruptGroupId : 1,
4841  volumeGroupId : 1,
4842  displayName : "",
4843}];
4844
4845async function selectOutputDevice(){
4846  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err: BusinessError) => {
4847    if (err) {
4848      console.error(`Result ERROR: ${err}`);
4849    } else {
4850      console.info('Select output devices result callback: SUCCESS'); }
4851  });
4852}
4853```
4854
4855### selectOutputDevice<sup>9+</sup>
4856
4857selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
4858
4859**系统接口:** 该接口为系统接口
4860
4861选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。
4862
4863**系统能力:** SystemCapability.Multimedia.Audio.Device
4864
4865**参数:**
4866
4867| 参数名                       | 类型                                                         | 必填 | 说明                      |
4868| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
4869| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
4870
4871**返回值:**
4872
4873| 类型                  | 说明                         |
4874| --------------------- | --------------------------- |
4875| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |
4876
4877**示例:**
4878
4879```ts
4880import audio from '@ohos.multimedia.audio';
4881import { BusinessError } from '@ohos.base';
4882let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
4883  deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
4884  deviceType : audio.DeviceType.SPEAKER,
4885  id : 1,
4886  name : "",
4887  address : "",
4888  sampleRates : [44100],
4889  channelCounts : [2],
4890  channelMasks : [0],
4891  networkId : audio.LOCAL_NETWORK_ID,
4892  interruptGroupId : 1,
4893  volumeGroupId : 1,
4894  displayName : "",
4895}];
4896
4897async function selectOutputDevice(){
4898  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
4899    console.info('Select output devices result promise: SUCCESS');
4900  }).catch((err: BusinessError) => {
4901    console.error(`Result ERROR: ${err}`);
4902  });
4903}
4904```
4905
4906### selectOutputDeviceByFilter<sup>9+</sup>
4907
4908selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
4909
4910**系统接口:** 该接口为系统接口
4911
4912根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。
4913
4914**系统能力:** SystemCapability.Multimedia.Audio.Device
4915
4916**参数:**
4917
4918| 参数名                       | 类型                                                         | 必填 | 说明                      |
4919| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
4920| filter                      | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
4921| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
4922| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |
4923
4924**示例:**
4925```ts
4926import audio from '@ohos.multimedia.audio';
4927import { BusinessError } from '@ohos.base';
4928let outputAudioRendererFilter: audio.AudioRendererFilter = {
4929  uid : 20010041,
4930  rendererInfo : {
4931    content : audio.ContentType.CONTENT_TYPE_MUSIC,
4932    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4933    rendererFlags : 0
4934  },
4935  rendererId : 0
4936};
4937
4938let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
4939  deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
4940  deviceType : audio.DeviceType.SPEAKER,
4941  id : 1,
4942  name : "",
4943  address : "",
4944  sampleRates : [44100],
4945  channelCounts : [2],
4946  channelMasks : [0],
4947  networkId : audio.LOCAL_NETWORK_ID,
4948  interruptGroupId : 1,
4949  volumeGroupId : 1,
4950  displayName : "",
4951}];
4952
4953async function selectOutputDeviceByFilter(){
4954  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err: BusinessError) => {
4955    if (err) {
4956      console.error(`Result ERROR: ${err}`);
4957    } else {
4958      console.info('Select output devices by filter result callback: SUCCESS'); }
4959  });
4960}
4961```
4962
4963### selectOutputDeviceByFilter<sup>9+</sup>
4964
4965selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
4966
4967**系统接口:** 该接口为系统接口
4968
4969根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。
4970
4971**系统能力:** SystemCapability.Multimedia.Audio.Device
4972
4973**参数:**
4974
4975| 参数名                 | 类型                                                         | 必填 | 说明                      |
4976| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
4977| filter                | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
4978| outputAudioDevices    | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
4979
4980**返回值:**
4981
4982| 类型                  | 说明                         |
4983| --------------------- | --------------------------- |
4984| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |
4985
4986**示例:**
4987
4988```ts
4989import audio from '@ohos.multimedia.audio';
4990import { BusinessError } from '@ohos.base';
4991let outputAudioRendererFilter: audio.AudioRendererFilter = {
4992  uid : 20010041,
4993  rendererInfo : {
4994    content : audio.ContentType.CONTENT_TYPE_MUSIC,
4995    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4996    rendererFlags : 0
4997  },
4998  rendererId : 0
4999};
5000
5001let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{
5002  deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
5003  deviceType : audio.DeviceType.SPEAKER,
5004  id : 1,
5005  name : "",
5006  address : "",
5007  sampleRates : [44100],
5008  channelCounts : [2],
5009  channelMasks : [0],
5010  networkId : audio.LOCAL_NETWORK_ID,
5011  interruptGroupId : 1,
5012  volumeGroupId : 1,
5013  displayName : "",
5014}];
5015
5016async function selectOutputDeviceByFilter(){
5017  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
5018    console.info('Select output devices by filter result promise: SUCCESS');
5019  }).catch((err: BusinessError) => {
5020    console.error(`Result ERROR: ${err}`);
5021  })
5022}
5023```
5024
5025### getPreferOutputDeviceForRendererInfo<sup>10+</sup>
5026
5027getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
5028
5029根据音频信息,返回优先级最高的输出设备,使用callback方式异步返回结果。
5030
5031**系统能力:** SystemCapability.Multimedia.Audio.Device
5032
5033**参数:**
5034
5035| 参数名                       | 类型                                                         | 必填 | 说明                      |
5036| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
5037| rendererInfo                | [AudioRendererInfo](#audiorendererinfo8)                     | 是   | 表示渲染器信息。             |
5038| callback                    | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;  | 是   | 回调,返回优先级最高的输出设备信息。 |
5039
5040**错误码:**
5041
5042以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5043
5044| 错误码ID | 错误信息                                           |
5045| ------- |--------------------------------------------------|
5046| 6800101 | Input parameter value error. Return by callback. |
5047| 6800301 | System error. Return by callback.                |
5048
5049**示例:**
5050```ts
5051import audio from '@ohos.multimedia.audio';
5052import { BusinessError } from '@ohos.base';
5053let rendererInfo: audio.AudioRendererInfo = {
5054  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
5055  rendererFlags : 0
5056}
5057
5058async function getPreferOutputDevice() {
5059  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
5060    if (err) {
5061      console.error(`Result ERROR: ${err}`);
5062    } else {
5063      console.info(`device descriptor: ${desc}`);
5064    }
5065  });
5066}
5067```
5068
5069### getPreferOutputDeviceForRendererInfo<sup>10+</sup>
5070getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise&lt;AudioDeviceDescriptors&gt;
5071
5072根据音频信息,返回优先级最高的输出设备,使用promise方式异步返回结果。
5073
5074**系统能力:** SystemCapability.Multimedia.Audio.Device
5075
5076**参数:**
5077
5078| 参数名                 | 类型                                                         | 必填 | 说明                      |
5079| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
5080| rendererInfo          | [AudioRendererInfo](#audiorendererinfo8)                     | 是   | 表示渲染器信息。            |
5081
5082**返回值:**
5083
5084| 类型                  | 说明                         |
5085| --------------------- | --------------------------- |
5086| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;   | Promise返回优先级最高的输出设备信息。 |
5087
5088**错误码:**
5089
5090以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5091
5092| 错误码ID | 错误信息                                          |
5093| ------- |-------------------------------------------------|
5094| 6800101 | Input parameter value error. Return by promise. |
5095| 6800301 | System error. Return by promise.                |
5096
5097**示例:**
5098
5099```ts
5100import audio from '@ohos.multimedia.audio';
5101import { BusinessError } from '@ohos.base';
5102let rendererInfo: audio.AudioRendererInfo = {
5103  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
5104  rendererFlags : 0
5105}
5106
5107async function getPreferOutputDevice() {
5108  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc: audio.AudioDeviceDescriptors) => {
5109    console.info(`device descriptor: ${desc}`);
5110  }).catch((err: BusinessError) => {
5111    console.error(`Result ERROR: ${err}`);
5112  })
5113}
5114```
5115### getPreferredOutputDeviceForRendererInfoSync<sup>10+</sup>
5116getPreferredOutputDeviceForRendererInfoSync(rendererInfo: AudioRendererInfo): AudioDeviceDescriptors
5117
5118根据音频信息,返回优先级最高的输出设备,同步返回结果。
5119
5120**系统能力:** SystemCapability.Multimedia.Audio.Device
5121
5122**参数:**
5123
5124| 参数名                 | 类型                                                         | 必填 | 说明                      |
5125| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
5126| rendererInfo          | [AudioRendererInfo](#audiorendererinfo8)                     | 是   | 表示渲染器信息。            |
5127
5128**返回值:**
5129
5130| 类型                  | 说明                         |
5131| --------------------- | --------------------------- |
5132| [AudioDeviceDescriptors](#audiodevicedescriptors)   | 返回优先级最高的输出设备信息。 |
5133
5134**错误码:**
5135
5136以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5137
5138| 错误码ID | 错误信息 |
5139| ------- | --------------------------------------------|
5140| 6800101 | invalid parameter error.   |
5141
5142**示例:**
5143
5144```ts
5145import audio from '@ohos.multimedia.audio';
5146import { BusinessError } from '@ohos.base';
5147
5148let rendererInfo: audio.AudioRendererInfo = {
5149  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
5150  rendererFlags : 0
5151}
5152
5153try {
5154  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredOutputDeviceForRendererInfoSync(rendererInfo);
5155  console.info(`device descriptor: ${desc}`);
5156} catch (err) {
5157  let error = err as BusinessError;
5158  console.error(`Result ERROR: ${error}`);
5159}
5160```
5161
5162### on('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup>
5163
5164on(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors\>): void
5165
5166订阅最高优先级输出设备变化事件,使用callback获取最高优先级输出设备。
5167
5168**系统能力:** SystemCapability.Multimedia.Audio.Device
5169
5170**参数:**
5171
5172| 参数名   | 类型                                                 | 必填 | 说明                                                      |
5173| :------- | :--------------------------------------------------- | :--- |:--------------------------------------------------------|
5174| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' |
5175| rendererInfo  | [AudioRendererInfo](#audiorendererinfo8)        | 是   | 表示渲染器信息。                                                |
5176| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是   | 获取优先级最高的输出设备信息。                                         |
5177
5178**错误码:**
5179
5180以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5181
5182| 错误码ID | 错误信息 |
5183| ------- | --------------------------------------------|
5184| 6800101 | if input parameter value error              |
5185
5186**示例:**
5187
5188```ts
5189import audio from '@ohos.multimedia.audio';
5190let rendererInfo: audio.AudioRendererInfo = {
5191  usage : audio.StreamUsage.STREAM_USAGE_MUSIC,
5192  rendererFlags : 0
5193}
5194
5195audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => {
5196  console.info(`device descriptor: ${desc}`);
5197});
5198```
5199
5200### off('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup>
5201
5202off(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors\>): void
5203
5204取消订阅最高优先级输出音频设备变化事件。
5205
5206**系统能力:** SystemCapability.Multimedia.Audio.Device
5207
5208**参数:**
5209
5210| 参数名   | 类型                                                | 必填 | 说明                                       |
5211| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
5212| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' |
5213| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否   | 监听方法的回调函数。                         |
5214
5215**错误码:**
5216
5217以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5218
5219| 错误码ID | 错误信息 |
5220| ------- | --------------------------------------------|
5221| 6800101 | if input parameter value error              |
5222
5223**示例:**
5224
5225```ts
5226audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo');
5227```
5228
5229### getPreferredInputDeviceForCapturerInfo<sup>10+</sup>
5230
5231getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
5232
5233根据音频信息,返回优先级最高的输入设备,使用callback方式异步返回结果。
5234
5235**系统能力:** SystemCapability.Multimedia.Audio.Device
5236
5237**参数:**
5238
5239| 参数名                       | 类型                                                         | 必填 | 说明                      |
5240| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
5241| capturerInfo                | [AudioCapturerInfo](#audiocapturerinfo8)                     | 是   | 表示采集器信息。             |
5242| callback                    | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;  | 是   | 回调,返回优先级最高的输入设备信息。 |
5243
5244**错误码:**
5245
5246以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5247
5248| 错误码ID | 错误信息 |
5249| ------- | --------------------------------------------|
5250| 6800101 | Invalid parameter error. Return by callback.|
5251| 6800301 | System error. Return by callback.           |
5252
5253**示例:**
5254```ts
5255import audio from '@ohos.multimedia.audio';
5256import { BusinessError } from '@ohos.base';
5257let capturerInfo: audio.AudioCapturerInfo = {
5258  source: audio.SourceType.SOURCE_TYPE_MIC,
5259  capturerFlags: 0
5260}
5261
5262audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => {
5263  if (err) {
5264    console.error(`Result ERROR: ${err}`);
5265  } else {
5266    console.info(`device descriptor: ${desc}`);
5267  }
5268});
5269```
5270
5271### getPreferredInputDeviceForCapturerInfo<sup>10+</sup>
5272
5273getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo): Promise&lt;AudioDeviceDescriptors&gt;
5274
5275根据音频信息,返回优先级最高的输入设备,使用promise方式异步返回结果。
5276
5277**系统能力:** SystemCapability.Multimedia.Audio.Device
5278
5279**参数:**
5280
5281| 参数名                 | 类型                                                         | 必填 | 说明                      |
5282| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
5283| capturerInfo          | [AudioCapturerInfo](#audiocapturerinfo8)                     | 是   | 表示采集器信息。            |
5284
5285**返回值:**
5286
5287| 类型                  | 说明                         |
5288| --------------------- | --------------------------- |
5289| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;   | Promise返回优先级最高的输入设备信息。 |
5290
5291**错误码:**
5292
5293以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5294
5295| 错误码ID | 错误信息 |
5296| ------- | --------------------------------------------|
5297| 6800101 | Invalid parameter error. Return by promise. |
5298| 6800301 | System error. Return by promise.            |
5299
5300**示例:**
5301
5302```ts
5303import audio from '@ohos.multimedia.audio';
5304import { BusinessError } from '@ohos.base';
5305let capturerInfo: audio.AudioCapturerInfo = {
5306  source: audio.SourceType.SOURCE_TYPE_MIC,
5307  capturerFlags: 0
5308}
5309
5310audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo).then((desc: audio.AudioDeviceDescriptors) => {
5311  console.info(`device descriptor: ${desc}`);
5312}).catch((err: BusinessError) => {
5313  console.error(`Result ERROR: ${err}`);
5314});
5315```
5316
5317### getPreferredInputDeviceForCapturerInfoSync<sup>10+</sup>
5318
5319getPreferredInputDeviceForCapturerInfoSync(capturerInfo: AudioCapturerInfo): AudioDeviceDescriptors
5320
5321根据音频信息,返回优先级最高的输入设备,同步返回结果。
5322
5323**系统能力:** SystemCapability.Multimedia.Audio.Device
5324
5325**参数:**
5326
5327| 参数名                 | 类型                                                         | 必填 | 说明                      |
5328| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
5329| capturerInfo          | [AudioCapturerInfo](#audiocapturerinfo8)                     | 是   | 表示采集器信息。            |
5330
5331**返回值:**
5332
5333| 类型                  | 说明                         |
5334| --------------------- | --------------------------- |
5335| [AudioDeviceDescriptors](#audiodevicedescriptors)   | 返回优先级最高的输入设备信息。 |
5336
5337**错误码:**
5338
5339以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5340
5341| 错误码ID | 错误信息 |
5342| ------- | --------------------------------------------|
5343| 6800101 | invalid parameter error               |
5344
5345**示例:**
5346
5347```ts
5348import audio from '@ohos.multimedia.audio';
5349import { BusinessError } from '@ohos.base';
5350
5351let capturerInfo: audio.AudioCapturerInfo = {
5352  source: audio.SourceType.SOURCE_TYPE_MIC,
5353  capturerFlags: 0
5354}
5355
5356try {
5357  let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredInputDeviceForCapturerInfoSync(capturerInfo);
5358  console.info(`device descriptor: ${desc}`);
5359} catch (err) {
5360  let error = err as BusinessError;
5361  console.error(`Result ERROR: ${error}`);
5362}
5363```
5364
5365### on('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup>
5366
5367on(type: 'preferredInputDeviceChangeForCapturerInfo', capturerInfo: AudioCapturerInfo, callback: Callback<AudioDeviceDescriptors\>): void
5368
5369订阅最高优先级输入设备变化事件,使用callback获取最高优先级输入设备。
5370
5371**系统能力:** SystemCapability.Multimedia.Audio.Device
5372
5373**参数:**
5374
5375| 参数名   | 类型                                                 | 必填 | 说明                                       |
5376| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
5377| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'preferredInputDeviceChangeForCapturerInfo' |
5378| capturerInfo  | [AudioCapturerInfo](#audiocapturerinfo8)        | 是   | 表示采集器信息。              |
5379| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是   | 获取优先级最高的输入设备信息。                         |
5380
5381**错误码:**
5382
5383以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5384
5385| 错误码ID | 错误信息 |
5386| ------- | --------------------------------------------|
5387| 6800101 | if input parameter value error              |
5388
5389**示例:**
5390
5391```ts
5392import audio from '@ohos.multimedia.audio';
5393let capturerInfo: audio.AudioCapturerInfo = {
5394  source: audio.SourceType.SOURCE_TYPE_MIC,
5395  capturerFlags: 0
5396}
5397
5398audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, (desc: audio.AudioDeviceDescriptors) => {
5399  console.info(`device descriptor: ${desc}`);
5400});
5401```
5402
5403### off('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup>
5404
5405off(type: 'preferredInputDeviceChangeForCapturerInfo', callback?: Callback<AudioDeviceDescriptors\>): void
5406
5407取消订阅最高优先级输入音频设备变化事件。
5408
5409**系统能力:** SystemCapability.Multimedia.Audio.Device
5410
5411**参数:**
5412
5413| 参数名   | 类型                                                | 必填 | 说明                                       |
5414| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
5415| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'preferredInputDeviceChangeForCapturerInfo' |
5416| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否   | 监听方法的回调函数。                         |
5417
5418**错误码:**
5419
5420以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5421
5422| 错误码ID | 错误信息 |
5423| ------- | --------------------------------------------|
5424| 6800101 | if input parameter value error              |
5425
5426**示例:**
5427
5428```ts
5429audioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo');
5430```
5431
5432## AudioRendererChangeInfoArray<sup>9+</sup>
5433
5434数组类型,AudioRenderChangeInfo数组,只读。
5435
5436**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5437
5438## AudioRendererChangeInfo<sup>9+</sup>
5439
5440描述音频渲染器更改信息。
5441
5442**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5443
5444| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
5445| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
5446| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
5447| clientUid          | number                                    | 是   | 否   | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口。 |
5448| rendererInfo       | [AudioRendererInfo](#audiorendererinfo8)  | 是   | 否   | 音频渲染器信息。               |
5449| rendererState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
5450| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
5451
5452**示例:**
5453
5454```ts
5455import audio from '@ohos.multimedia.audio';
5456
5457const audioManager = audio.getAudioManager();
5458let audioStreamManager = audioManager.getStreamManager();
5459let resultFlag = false;
5460
5461audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
5462  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
5463    console.info(`## RendererChange on is called for ${i} ##`);
5464    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
5465    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
5466    console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
5467    console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
5468    console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
5469    console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`);
5470    let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
5471    for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
5472      console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
5473      console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
5474      console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
5475      console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
5476      console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
5477      console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
5478      console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
5479      console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
5480    }
5481    if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
5482      resultFlag = true;
5483      console.info(`ResultFlag for ${i} is: ${resultFlag}`);
5484    }
5485  }
5486});
5487```
5488
5489
5490## AudioCapturerChangeInfoArray<sup>9+</sup>
5491
5492数组类型,AudioCapturerChangeInfo数组,只读。
5493
5494**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5495
5496## AudioCapturerChangeInfo<sup>9+</sup>
5497
5498描述音频采集器更改信息。
5499
5500**系统能力:** SystemCapability.Multimedia.Audio.Capturer
5501
5502| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
5503| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
5504| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
5505| clientUid          | number                                    | 是   | 否   | 音频采集器客户端应用程序的Uid。<br/>此接口为系统接口。 |
5506| capturerInfo       | [AudioCapturerInfo](#audiocapturerinfo8)  | 是   | 否   | 音频采集器信息。               |
5507| capturerState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
5508| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
5509
5510**示例:**
5511
5512```ts
5513import audio from '@ohos.multimedia.audio';
5514
5515const audioManager = audio.getAudioManager();
5516let audioStreamManager = audioManager.getStreamManager();
5517
5518let resultFlag = false;
5519audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
5520  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
5521    console.info(`## CapChange on is called for element ${i} ##`);
5522    console.info(`StrId for  ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
5523    console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
5524    console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
5525    console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
5526    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
5527    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
5528    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
5529      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
5530      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
5531      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
5532      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
5533      console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
5534      console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
5535      console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
5536      console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`);
5537    }
5538    if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
5539      resultFlag = true;
5540      console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
5541    }
5542  }
5543});
5544```
5545
5546## AudioEffectInfoArray<sup>10+</sup>
5547
5548待查询ContentType和StreamUsage组合场景下的音效模式数组类型,[AudioEffectMode](#audioeffectmode10)数组,只读。
5549
5550## AudioDeviceDescriptors
5551
5552设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。
5553
5554## AudioDeviceDescriptor
5555
5556描述音频设备。
5557
5558**系统能力:** SystemCapability.Multimedia.Audio.Device
5559
5560| 名称                          | 类型                       | 可读 | 可写 | 说明       |
5561| ----------------------------- | -------------------------- | ---- | ---- | ---------- |
5562| deviceRole                    | [DeviceRole](#devicerole)  | 是   | 否   | 设备角色。 |
5563| deviceType                    | [DeviceType](#devicetype)  | 是   | 否   | 设备类型。 |
5564| id<sup>9+</sup>               | number                     | 是   | 否   | 设备id,唯一。  |
5565| name<sup>9+</sup>             | string                     | 是   | 否   | 设备名称。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 |
5566| address<sup>9+</sup>          | string                     | 是   | 否   | 设备地址。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 |
5567| sampleRates<sup>9+</sup>      | Array&lt;number&gt;        | 是   | 否   | 支持的采样率。 |
5568| channelCounts<sup>9+</sup>    | Array&lt;number&gt;        | 是   | 否   | 支持的通道数。 |
5569| channelMasks<sup>9+</sup>     | Array&lt;number&gt;        | 是   | 否   | 支持的通道掩码。 |
5570| displayName<sup>10+</sup>     | string                     | 是   | 否   | 设备显示名。 |
5571| networkId<sup>9+</sup>        | string                     | 是   | 否   | 设备组网的ID。<br/>此接口为系统接口。 |
5572| interruptGroupId<sup>9+</sup> | number                     | 是   | 否   | 设备所处的焦点组ID。<br/>此接口为系统接口。 |
5573| volumeGroupId<sup>9+</sup>    | number                     | 是   | 否   | 设备所处的音量组ID。<br/>此接口为系统接口。 |
5574
5575**示例:**
5576
5577```ts
5578import audio from '@ohos.multimedia.audio';
5579
5580function displayDeviceProp(value: audio.AudioDeviceDescriptor) {
5581  deviceRoleValue = value.deviceRole;
5582  deviceTypeValue = value.deviceType;
5583}
5584
5585let deviceRoleValue: audio.DeviceRole | undefined = undefined;;
5586let deviceTypeValue: audio.DeviceType | undefined = undefined;;
5587audio.getAudioManager().getDevices(1).then((value: audio.AudioDeviceDescriptors) => {
5588  console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
5589  value.forEach(displayDeviceProp);
5590  if (deviceTypeValue != undefined && deviceRoleValue != undefined){
5591    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
5592  } else {
5593    console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
5594  }
5595});
5596```
5597
5598## AudioRendererFilter<sup>9+</sup>
5599
5600过滤条件类。在调用selectOutputDeviceByFilter接口前,需要先创建AudioRendererFilter实例。
5601
5602**系统接口:** 该接口为系统接口
5603
5604| 名称          | 类型                                     | 必填 | 说明          |
5605| -------------| ---------------------------------------- | ---- | -------------- |
5606| uid          | number                                   |  否  | 表示应用ID。<br> **系统能力:** SystemCapability.Multimedia.Audio.Core|
5607| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) |  否  | 表示渲染器信息。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
5608| rendererId   | number                                   |  否  | 音频流唯一id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
5609
5610**示例:**
5611
5612```ts
5613import audio from '@ohos.multimedia.audio';
5614let outputAudioRendererFilter: audio.AudioRendererFilter = {
5615  uid : 20010041,
5616  rendererInfo : {
5617    content : audio.ContentType.CONTENT_TYPE_MUSIC,
5618    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
5619    rendererFlags : 0
5620  },
5621  rendererId : 0
5622};
5623```
5624
5625## AudioRenderer<sup>8+</sup>
5626
5627提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。
5628
5629### 属性
5630
5631**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5632
5633| 名称  | 类型                     | 可读 | 可写 | 说明               |
5634| ----- | -------------------------- | ---- | ---- | ------------------ |
5635| state<sup>8+</sup> | [AudioState](#audiostate8) | 是   | 否   | 音频渲染器的状态。 |
5636
5637**示例:**
5638
5639```ts
5640import audio from '@ohos.multimedia.audio';
5641let state: audio.AudioState = audioRenderer.state;
5642```
5643
5644### getRendererInfo<sup>8+</sup>
5645
5646getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
5647
5648获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
5649
5650**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5651
5652**参数:**
5653
5654| 参数名   | 类型                                                     | 必填 | 说明                   |
5655| :------- | :------------------------------------------------------- | :--- | :--------------------- |
5656| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是   | 返回音频渲染器的信息。 |
5657
5658**示例:**
5659
5660```ts
5661import { BusinessError } from '@ohos.base';
5662audioRenderer.getRendererInfo((err: BusinessError, rendererInfo: audio.AudioRendererInfo) => {
5663  console.info('Renderer GetRendererInfo:');
5664  console.info(`Renderer content: ${rendererInfo.content}`);
5665  console.info(`Renderer usage: ${rendererInfo.usage}`);
5666  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
5667});
5668```
5669
5670### getRendererInfo<sup>8+</sup>
5671
5672getRendererInfo(): Promise<AudioRendererInfo\>
5673
5674获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
5675
5676**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5677
5678**返回值:**
5679
5680| 类型                                               | 说明                            |
5681| -------------------------------------------------- | ------------------------------- |
5682| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频渲染器信息。 |
5683
5684**示例:**
5685
5686```ts
5687import { BusinessError } from '@ohos.base';
5688audioRenderer.getRendererInfo().then((rendererInfo: audio.AudioRendererInfo) => {
5689  console.info('Renderer GetRendererInfo:');
5690  console.info(`Renderer content: ${rendererInfo.content}`);
5691  console.info(`Renderer usage: ${rendererInfo.usage}`);
5692  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
5693}).catch((err: BusinessError) => {
5694  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
5695});
5696```
5697
5698### getRendererInfoSync<sup>10+</sup>
5699
5700getRendererInfoSync(): AudioRendererInfo
5701
5702获取当前被创建的音频渲染器的信息,同步返回结果。
5703
5704**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5705
5706**返回值:**
5707
5708| 类型                                               | 说明                            |
5709| -------------------------------------------------- | ------------------------------- |
5710| [AudioRendererInfo](#audiorendererinfo8) | 返回音频渲染器信息。 |
5711
5712**示例:**
5713
5714```ts
5715import { BusinessError } from '@ohos.base';
5716
5717try {
5718  let rendererInfo: audio.AudioRendererInfo = audioRenderer.getRendererInfoSync();
5719  console.info(`Renderer content: ${rendererInfo.content}`);
5720  console.info(`Renderer usage: ${rendererInfo.usage}`);
5721  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
5722} catch (err) {
5723  let error = err as BusinessError;
5724  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${error}`);
5725}
5726```
5727
5728### getStreamInfo<sup>8+</sup>
5729
5730getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
5731
5732获取音频流信息,使用callback方式异步返回结果。
5733
5734**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5735
5736**参数:**
5737
5738| 参数名   | 类型                                                 | 必填 | 说明                 |
5739| :------- | :--------------------------------------------------- | :--- | :------------------- |
5740| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 回调返回音频流信息。 |
5741
5742**示例:**
5743
5744```ts
5745import { BusinessError } from '@ohos.base';
5746audioRenderer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
5747  console.info('Renderer GetStreamInfo:');
5748  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
5749  console.info(`Renderer channel: ${streamInfo.channels}`);
5750  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
5751  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
5752});
5753```
5754
5755### getStreamInfo<sup>8+</sup>
5756
5757getStreamInfo(): Promise<AudioStreamInfo\>
5758
5759获取音频流信息,使用Promise方式异步返回结果。
5760
5761**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5762
5763**返回值:**
5764
5765| 类型                                           | 说明                   |
5766| :--------------------------------------------- | :--------------------- |
5767| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise返回音频流信息. |
5768
5769**示例:**
5770
5771```ts
5772import { BusinessError } from '@ohos.base';
5773audioRenderer.getStreamInfo().then((streamInfo: audio.AudioStreamInfo) => {
5774  console.info('Renderer GetStreamInfo:');
5775  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
5776  console.info(`Renderer channel: ${streamInfo.channels}`);
5777  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
5778  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
5779}).catch((err: BusinessError) => {
5780  console.error(`ERROR: ${err}`);
5781});
5782```
5783
5784### getStreamInfoSync<sup>10+</sup>
5785
5786getStreamInfoSync(): AudioStreamInfo
5787
5788获取音频流信息,同步返回结果。
5789
5790**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5791
5792**返回值:**
5793
5794| 类型                                           | 说明                   |
5795| :--------------------------------------------- | :--------------------- |
5796| [AudioStreamInfo](#audiostreaminfo8) | 返回音频流信息. |
5797
5798**示例:**
5799
5800```ts
5801import { BusinessError } from '@ohos.base';
5802
5803try {
5804  let streamInfo: audio.AudioStreamInfo = audioRenderer.getStreamInfoSync();
5805  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
5806  console.info(`Renderer channel: ${streamInfo.channels}`);
5807  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
5808  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
5809} catch (err) {
5810  let error = err as BusinessError;
5811  console.error(`ERROR: ${error}`);
5812}
5813```
5814
5815### getAudioStreamId<sup>9+</sup>
5816
5817getAudioStreamId(callback: AsyncCallback<number\>): void
5818
5819获取音频流id,使用callback方式异步返回结果。
5820
5821**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5822
5823**参数:**
5824
5825| 参数名   | 类型                                                 | 必填 | 说明                 |
5826| :------- | :--------------------------------------------------- | :--- | :------------------- |
5827| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
5828
5829**示例:**
5830
5831```ts
5832import { BusinessError } from '@ohos.base';
5833audioRenderer.getAudioStreamId((err: BusinessError, streamid: number) => {
5834  console.info(`Renderer GetStreamId: ${streamid}`);
5835});
5836```
5837
5838### getAudioStreamId<sup>9+</sup>
5839
5840getAudioStreamId(): Promise<number\>
5841
5842获取音频流id,使用Promise方式异步返回结果。
5843
5844**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5845
5846**返回值:**
5847
5848| 类型                                           | 说明                   |
5849| :--------------------------------------------- | :--------------------- |
5850| Promise<number\> | Promise返回音频流id。 |
5851
5852**示例:**
5853
5854```ts
5855import { BusinessError } from '@ohos.base';
5856audioRenderer.getAudioStreamId().then((streamid: number) => {
5857  console.info(`Renderer getAudioStreamId: ${streamid}`);
5858}).catch((err: BusinessError) => {
5859  console.error(`ERROR: ${err}`);
5860});
5861```
5862
5863### getAudioStreamIdSync<sup>10+</sup>
5864
5865getAudioStreamIdSync(): number
5866
5867获取音频流id,同步返回结果。
5868
5869**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5870
5871**返回值:**
5872
5873| 类型                                           | 说明                   |
5874| :--------------------------------------------- | :--------------------- |
5875| number | 返回音频流id。 |
5876
5877**示例:**
5878
5879```ts
5880import { BusinessError } from '@ohos.base';
5881
5882try {
5883  let streamid: number = audioRenderer.getAudioStreamIdSync();
5884  console.info(`Renderer getAudioStreamIdSync: ${streamid}`);
5885} catch (err) {
5886  let error = err as BusinessError;
5887  console.error(`ERROR: ${error}`);
5888}
5889```
5890
5891### setAudioEffectMode<sup>10+</sup>
5892
5893setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback\<void>): void
5894
5895设置当前音效模式。使用callback方式异步返回结果。
5896
5897**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5898
5899**参数:**
5900
5901| 参数名   | 类型                                     | 必填 | 说明                     |
5902| -------- | ---------------------------------------- | ---- | ------------------------ |
5903| mode     | [AudioEffectMode](#audioeffectmode10)    | 是   | 音效模式。               |
5904| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。  |
5905
5906**错误码:**
5907
5908以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5909
5910| 错误码ID | 错误信息 |
5911| ------- | ----------------------------------------------|
5912| 6800101 | Invalid parameter error. Return by callback.  |
5913
5914**示例:**
5915
5916```ts
5917import { BusinessError } from '@ohos.base';
5918audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err: BusinessError) => {
5919  if (err) {
5920    console.error('Failed to set params');
5921  } else {
5922    console.info('Callback invoked to indicate a successful audio effect mode setting.');
5923  }
5924});
5925```
5926
5927### setAudioEffectMode<sup>10+</sup>
5928
5929setAudioEffectMode(mode: AudioEffectMode): Promise\<void>
5930
5931设置当前音效模式。使用Promise方式异步返回结果。
5932
5933**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5934
5935**参数:**
5936
5937| 参数名 | 类型                                     | 必填 | 说明         |
5938| ------ | ---------------------------------------- | ---- | ------------ |
5939| mode   | [AudioEffectMode](#audioeffectmode10)   | 是   | 音效模式。 |
5940
5941**返回值:**
5942
5943| 类型           | 说明                      |
5944| -------------- | ------------------------- |
5945| Promise\<void> | Promise用于返回执行结果。 |
5946
5947**错误码:**
5948
5949以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
5950
5951| 错误码ID | 错误信息 |
5952| ------- | ---------------------------------------------|
5953| 6800101 | Invalid parameter error. Return by promise.  |
5954
5955**示例:**
5956
5957```ts
5958import { BusinessError } from '@ohos.base';
5959audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => {
5960  console.info('setAudioEffectMode SUCCESS');
5961}).catch((err: BusinessError) => {
5962  console.error(`ERROR: ${err}`);
5963});
5964```
5965
5966### getAudioEffectMode<sup>10+</sup>
5967
5968getAudioEffectMode(callback: AsyncCallback\<AudioEffectMode>): void
5969
5970获取当前音效模式。使用callback方式异步返回结果。
5971
5972**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5973
5974**参数:**
5975
5976| 参数名   | 类型                                                    | 必填 | 说明               |
5977| -------- | ------------------------------------------------------- | ---- | ------------------ |
5978| callback | AsyncCallback<[AudioEffectMode](#audioeffectmode10)> | 是   | 回调返回当前音效模式。 |
5979
5980**示例:**
5981
5982```ts
5983import { BusinessError } from '@ohos.base';
5984audioRenderer.getAudioEffectMode((err: BusinessError, effectmode: audio.AudioEffectMode) => {
5985  if (err) {
5986    console.error('Failed to get params');
5987  } else {
5988    console.info(`getAudioEffectMode: ${effectmode}`);
5989  }
5990});
5991```
5992
5993### getAudioEffectMode<sup>10+</sup>
5994
5995getAudioEffectMode(): Promise\<AudioEffectMode>
5996
5997获取当前音效模式。使用Promise方式异步返回结果。
5998
5999**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6000
6001**返回值:**
6002
6003| 类型                                              | 说明                      |
6004| ------------------------------------------------- | ------------------------- |
6005| Promise<[AudioEffectMode](#audioeffectmode10)> | Promise回调返回当前音效模式。 |
6006
6007**示例:**
6008
6009```ts
6010import { BusinessError } from '@ohos.base';
6011audioRenderer.getAudioEffectMode().then((effectmode: audio.AudioEffectMode) => {
6012  console.info(`getAudioEffectMode: ${effectmode}`);
6013}).catch((err: BusinessError) => {
6014  console.error(`ERROR: ${err}`);
6015});
6016```
6017
6018### start<sup>8+</sup>
6019
6020start(callback: AsyncCallback<void\>): void
6021
6022启动音频渲染器。使用callback方式异步返回结果。
6023
6024**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6025
6026**参数:**
6027
6028| 参数名   | 类型                 | 必填 | 说明       |
6029| -------- | -------------------- | ---- | ---------- |
6030| callback | AsyncCallback\<void> | 是   | 回调函数。 |
6031
6032**示例:**
6033
6034```ts
6035import { BusinessError } from '@ohos.base';
6036audioRenderer.start((err: BusinessError) => {
6037  if (err) {
6038    console.error('Renderer start failed.');
6039  } else {
6040    console.info('Renderer start success.');
6041  }
6042});
6043```
6044
6045### start<sup>8+</sup>
6046
6047start(): Promise<void\>
6048
6049启动音频渲染器。使用Promise方式异步返回结果。
6050
6051**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6052
6053**返回值:**
6054
6055| 类型           | 说明                      |
6056| -------------- | ------------------------- |
6057| Promise\<void> | Promise方式异步返回结果。 |
6058
6059**示例:**
6060
6061```ts
6062import { BusinessError } from '@ohos.base';
6063audioRenderer.start().then(() => {
6064  console.info('Renderer started');
6065}).catch((err: BusinessError) => {
6066  console.error(`ERROR: ${err}`);
6067});
6068```
6069
6070### pause<sup>8+</sup>
6071
6072pause(callback: AsyncCallback\<void>): void
6073
6074暂停渲染。使用callback方式异步返回结果。
6075
6076**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6077
6078**参数:**
6079
6080| 参数名   | 类型                 | 必填 | 说明             |
6081| -------- | -------------------- | ---- | ---------------- |
6082| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
6083
6084**示例:**
6085
6086```ts
6087import { BusinessError } from '@ohos.base';
6088audioRenderer.pause((err: BusinessError) => {
6089  if (err) {
6090    console.error('Renderer pause failed');
6091  } else {
6092    console.info('Renderer paused.');
6093  }
6094});
6095```
6096
6097### pause<sup>8+</sup>
6098
6099pause(): Promise\<void>
6100
6101暂停渲染。使用Promise方式异步返回结果。
6102
6103**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6104
6105**返回值:**
6106
6107| 类型           | 说明                      |
6108| -------------- | ------------------------- |
6109| Promise\<void> | Promise方式异步返回结果。 |
6110
6111**示例:**
6112
6113```ts
6114import { BusinessError } from '@ohos.base';
6115audioRenderer.pause().then(() => {
6116  console.info('Renderer paused');
6117}).catch((err: BusinessError) => {
6118  console.error(`ERROR: ${err}`);
6119});
6120```
6121
6122### drain<sup>8+</sup>
6123
6124drain(callback: AsyncCallback\<void>): void
6125
6126检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
6127
6128**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6129
6130**参数:**
6131
6132| 参数名   | 类型                 | 必填 | 说明             |
6133| -------- | -------------------- | ---- | ---------------- |
6134| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
6135
6136**示例:**
6137
6138```ts
6139import { BusinessError } from '@ohos.base';
6140audioRenderer.drain((err: BusinessError) => {
6141  if (err) {
6142    console.error('Renderer drain failed');
6143  } else {
6144    console.info('Renderer drained.');
6145  }
6146});
6147```
6148
6149### drain<sup>8+</sup>
6150
6151drain(): Promise\<void>
6152
6153检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
6154
6155**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6156
6157**返回值:**
6158
6159| 类型           | 说明                      |
6160| -------------- | ------------------------- |
6161| Promise\<void> | Promise方式异步返回结果。 |
6162
6163**示例:**
6164
6165```ts
6166import { BusinessError } from '@ohos.base';
6167audioRenderer.drain().then(() => {
6168  console.info('Renderer drained successfully');
6169}).catch((err: BusinessError) => {
6170  console.error(`ERROR: ${err}`);
6171});
6172```
6173
6174### stop<sup>8+</sup>
6175
6176stop(callback: AsyncCallback\<void>): void
6177
6178停止渲染。使用callback方式异步返回结果。
6179
6180**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6181
6182**参数:**
6183
6184| 参数名   | 类型                 | 必填 | 说明             |
6185| -------- | -------------------- | ---- | ---------------- |
6186| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
6187
6188**示例:**
6189
6190```ts
6191import { BusinessError } from '@ohos.base';
6192audioRenderer.stop((err: BusinessError) => {
6193  if (err) {
6194    console.error('Renderer stop failed');
6195  } else {
6196    console.info('Renderer stopped.');
6197  }
6198});
6199```
6200
6201### stop<sup>8+</sup>
6202
6203stop(): Promise\<void>
6204
6205停止渲染。使用Promise方式异步返回结果。
6206
6207**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6208
6209**返回值:**
6210
6211| 类型           | 说明                      |
6212| -------------- | ------------------------- |
6213| Promise\<void> | Promise方式异步返回结果。 |
6214
6215**示例:**
6216
6217```ts
6218import { BusinessError } from '@ohos.base';
6219audioRenderer.stop().then(() => {
6220  console.info('Renderer stopped successfully');
6221}).catch((err: BusinessError) => {
6222  console.error(`ERROR: ${err}`);
6223});
6224```
6225
6226### release<sup>8+</sup>
6227
6228release(callback: AsyncCallback\<void>): void
6229
6230释放音频渲染器。使用callback方式异步返回结果。
6231
6232**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6233
6234**参数:**
6235
6236| 参数名   | 类型                 | 必填 | 说明             |
6237| -------- | -------------------- | ---- | ---------------- |
6238| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
6239
6240**示例:**
6241
6242```ts
6243import { BusinessError } from '@ohos.base';
6244audioRenderer.release((err: BusinessError) => {
6245  if (err) {
6246    console.error('Renderer release failed');
6247  } else {
6248    console.info('Renderer released.');
6249  }
6250});
6251```
6252
6253### release<sup>8+</sup>
6254
6255release(): Promise\<void>
6256
6257释放渲染器。使用Promise方式异步返回结果。
6258
6259**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6260
6261**返回值:**
6262
6263| 类型           | 说明                      |
6264| -------------- | ------------------------- |
6265| Promise\<void> | Promise方式异步返回结果。 |
6266
6267**示例:**
6268
6269```ts
6270import { BusinessError } from '@ohos.base';
6271audioRenderer.release().then(() => {
6272  console.info('Renderer released successfully');
6273}).catch((err: BusinessError) => {
6274  console.error(`ERROR: ${err}`);
6275});
6276```
6277
6278### write<sup>8+</sup>
6279
6280write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void
6281
6282写入缓冲区。使用callback方式异步返回结果。
6283
6284**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6285
6286**参数:**
6287
6288| 参数名   | 类型                   | 必填 | 说明                                                |
6289| -------- | ---------------------- | ---- | --------------------------------------------------- |
6290| buffer   | ArrayBuffer            | 是   | 要写入缓冲区的数据。                                |
6291| callback | AsyncCallback\<number> | 是   | 回调如果成功,返回写入的字节数,否则返回errorcode。 |
6292
6293**示例:**
6294
6295```ts
6296import { BusinessError } from '@ohos.base';
6297let bufferSize: number;
6298class Options {
6299  offset?: number;
6300  length?: number;
6301}
6302audioRenderer.getBufferSize().then((data: number)=> {
6303  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
6304  bufferSize = data;
6305  console.info(`Buffer size: ${bufferSize}`);
6306  let path = getContext().cacheDir;
6307  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
6308  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
6309  fs.stat(filePath).then(async (stat: fs.Stat) => {
6310    let buf = new ArrayBuffer(bufferSize);
6311    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
6312    for (let i = 0;i < len; i++) {
6313      let options: Options = {
6314        offset: i * bufferSize,
6315        length: bufferSize
6316      }
6317      let readsize: number = await fs.read(file.fd, buf, options)
6318      let writeSize: number = await new Promise((resolve,reject)=>{
6319        audioRenderer.write(buf,(err: BusinessError, writeSize: number)=>{
6320          if(err){
6321            reject(err)
6322          }else{
6323            resolve(writeSize)
6324          }
6325        })
6326      })
6327    }
6328  });
6329  }).catch((err: BusinessError) => {
6330    console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
6331});
6332
6333
6334```
6335
6336### write<sup>8+</sup>
6337
6338write(buffer: ArrayBuffer): Promise\<number>
6339
6340写入缓冲区。使用Promise方式异步返回结果。
6341
6342**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6343
6344**返回值:**
6345
6346| 类型             | 说明                                                         |
6347| ---------------- | ------------------------------------------------------------ |
6348| Promise\<number> | Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。 |
6349
6350**示例:**
6351
6352```ts
6353import { BusinessError } from '@ohos.base';
6354let bufferSize: number;
6355class Options {
6356  offset?: number;
6357  length?: number;
6358}
6359audioRenderer.getBufferSize().then((data: number) => {
6360  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
6361  bufferSize = data;
6362  console.info(`BufferSize: ${bufferSize}`);
6363  let path = getContext().cacheDir;
6364  let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
6365  let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
6366  fs.stat(filePath).then(async (stat: fs.Stat) => {
6367    let buf = new ArrayBuffer(bufferSize);
6368    let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
6369    for (let i = 0;i < len; i++) {
6370      let options: Options = {
6371        offset: i * bufferSize,
6372        length: bufferSize
6373      }
6374      let readsize: number = await fs.read(file.fd, buf, options)
6375      try{
6376        let writeSize: number = await audioRenderer.write(buf);
6377      } catch(err) {
6378        let error = err as BusinessError;
6379        console.error(`audioRenderer.write err: ${error}`);
6380      }
6381    }
6382  });
6383  }).catch((err: BusinessError) => {
6384    console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
6385});
6386```
6387
6388### getAudioTime<sup>8+</sup>
6389
6390getAudioTime(callback: AsyncCallback\<number>): void
6391
6392获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
6393
6394**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6395
6396**参数:**
6397
6398| 参数名   | 类型                   | 必填 | 说明             |
6399| -------- | ---------------------- | ---- | ---------------- |
6400| callback | AsyncCallback\<number> | 是   | 回调返回时间戳。 |
6401
6402**示例:**
6403
6404```ts
6405import { BusinessError } from '@ohos.base';
6406audioRenderer.getAudioTime((err: BusinessError, timestamp: number) => {
6407  console.info(`Current timestamp: ${timestamp}`);
6408});
6409```
6410
6411### getAudioTime<sup>8+</sup>
6412
6413getAudioTime(): Promise\<number>
6414
6415获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
6416
6417**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6418
6419**返回值:**
6420
6421| 类型             | 描述                    |
6422| ---------------- | ----------------------- |
6423| Promise\<number> | Promise回调返回时间戳。 |
6424
6425**示例:**
6426
6427```ts
6428import { BusinessError } from '@ohos.base';
6429audioRenderer.getAudioTime().then((timestamp: number) => {
6430  console.info(`Current timestamp: ${timestamp}`);
6431}).catch((err: BusinessError) => {
6432  console.error(`ERROR: ${err}`);
6433});
6434```
6435
6436### getAudioTimeSync<sup>10+</sup>
6437
6438getAudioTimeSync(): number
6439
6440获取时间戳(从 1970 年 1 月 1 日开始),同步返回结果。
6441
6442**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6443
6444**返回值:**
6445
6446| 类型             | 描述                    |
6447| ---------------- | ----------------------- |
6448| number | 返回时间戳。 |
6449
6450**示例:**
6451
6452```ts
6453import { BusinessError } from '@ohos.base';
6454
6455try {
6456  let timestamp: number = audioRenderer.getAudioTimeSync();
6457  console.info(`Current timestamp: ${timestamp}`);
6458} catch (err) {
6459  let error = err as BusinessError;
6460  console.error(`ERROR: ${error}`);
6461}
6462```
6463
6464### getBufferSize<sup>8+</sup>
6465
6466getBufferSize(callback: AsyncCallback\<number>): void
6467
6468获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
6469
6470**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6471
6472**参数:**
6473
6474| 参数名   | 类型                   | 必填 | 说明                 |
6475| -------- | ---------------------- | ---- | -------------------- |
6476| callback | AsyncCallback\<number> | 是   | 回调返回缓冲区大小。 |
6477
6478**示例:**
6479
6480```ts
6481import { BusinessError } from '@ohos.base';
6482let bufferSize: number;
6483audioRenderer.getBufferSize((err: BusinessError, data: number) => {
6484  if (err) {
6485    console.error('getBufferSize error');
6486  } else {
6487    console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
6488    bufferSize = data;
6489  }
6490});
6491```
6492
6493### getBufferSize<sup>8+</sup>
6494
6495getBufferSize(): Promise\<number>
6496
6497获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
6498
6499**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6500
6501**返回值:**
6502
6503| 类型             | 说明                        |
6504| ---------------- | --------------------------- |
6505| Promise\<number> | promise回调返回缓冲区大小。 |
6506
6507**示例:**
6508
6509```ts
6510import { BusinessError } from '@ohos.base';
6511let bufferSize: number;
6512audioRenderer.getBufferSize().then((data: number) => {
6513  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
6514  bufferSize = data;
6515}).catch((err: BusinessError) => {
6516  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
6517});
6518```
6519
6520### getBufferSizeSync<sup>10+</sup>
6521
6522getBufferSizeSync(): number
6523
6524获取音频渲染器的最小缓冲区大小,同步返回结果。
6525
6526**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6527
6528**返回值:**
6529
6530| 类型             | 说明                        |
6531| ---------------- | --------------------------- |
6532| number | 返回缓冲区大小。 |
6533
6534**示例:**
6535
6536```ts
6537import { BusinessError } from '@ohos.base';
6538
6539let bufferSize: number = 0;
6540try {
6541  bufferSize = audioRenderer.getBufferSizeSync();
6542  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${bufferSize}`);
6543} catch (err) {
6544  let error = err as BusinessError;
6545  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${error}`);
6546}
6547```
6548
6549### setRenderRate<sup>8+</sup>
6550
6551setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
6552
6553设置音频渲染速率。使用callback方式异步返回结果。
6554
6555**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6556
6557**参数:**
6558
6559| 参数名   | 类型                                     | 必填 | 说明                     |
6560| -------- | ---------------------------------------- | ---- | ------------------------ |
6561| rate     | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。             |
6562| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。 |
6563
6564**示例:**
6565
6566```ts
6567import { BusinessError } from '@ohos.base';
6568audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err: BusinessError) => {
6569  if (err) {
6570    console.error('Failed to set params');
6571  } else {
6572    console.info('Callback invoked to indicate a successful render rate setting.');
6573  }
6574});
6575```
6576
6577### setRenderRate<sup>8+</sup>
6578
6579setRenderRate(rate: AudioRendererRate): Promise\<void>
6580
6581设置音频渲染速率。使用Promise方式异步返回结果。
6582
6583**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6584
6585**参数:**
6586
6587| 参数名 | 类型                                     | 必填 | 说明         |
6588| ------ | ---------------------------------------- | ---- | ------------ |
6589| rate   | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。 |
6590
6591**返回值:**
6592
6593| 类型           | 说明                      |
6594| -------------- | ------------------------- |
6595| Promise\<void> | Promise用于返回执行结果。 |
6596
6597**示例:**
6598
6599```ts
6600import { BusinessError } from '@ohos.base';
6601audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
6602  console.info('setRenderRate SUCCESS');
6603}).catch((err: BusinessError) => {
6604  console.error(`ERROR: ${err}`);
6605});
6606```
6607
6608### getRenderRate<sup>8+</sup>
6609
6610getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
6611
6612获取当前渲染速率。使用callback方式异步返回结果。
6613
6614**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6615
6616**参数:**
6617
6618| 参数名   | 类型                                                    | 必填 | 说明               |
6619| -------- | ------------------------------------------------------- | ---- | ------------------ |
6620| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是   | 回调返回渲染速率。 |
6621
6622**示例:**
6623
6624```ts
6625import { BusinessError } from '@ohos.base';
6626audioRenderer.getRenderRate((err: BusinessError, renderrate: audio.AudioRendererRate) => {
6627  console.info(`getRenderRate: ${renderrate}`);
6628});
6629```
6630
6631### getRenderRate<sup>8+</sup>
6632
6633getRenderRate(): Promise\<AudioRendererRate>
6634
6635获取当前渲染速率。使用Promise方式异步返回结果。
6636
6637**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6638
6639**返回值:**
6640
6641| 类型                                              | 说明                      |
6642| ------------------------------------------------- | ------------------------- |
6643| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 |
6644
6645**示例:**
6646
6647```ts
6648import { BusinessError } from '@ohos.base';
6649audioRenderer.getRenderRate().then((renderRate: audio.AudioRendererRate) => {
6650  console.info(`getRenderRate: ${renderRate}`);
6651}).catch((err: BusinessError) => {
6652  console.error(`ERROR: ${err}`);
6653});
6654```
6655
6656### getRenderRateSync<sup>10+</sup>
6657
6658getRenderRateSync(): AudioRendererRate
6659
6660获取当前渲染速率,同步返回结果。
6661
6662**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6663
6664**返回值:**
6665
6666| 类型                                              | 说明                      |
6667| ------------------------------------------------- | ------------------------- |
6668| [AudioRendererRate](#audiorendererrate8) | 返回渲染速率。 |
6669
6670**示例:**
6671
6672```ts
6673import { BusinessError } from '@ohos.base';
6674
6675try {
6676  let renderRate: audio.AudioRendererRate = audioRenderer.getRenderRateSync();
6677  console.info(`getRenderRate: ${renderRate}`);
6678} catch (err) {
6679  let error = err as BusinessError;
6680  console.error(`ERROR: ${error}`);
6681}
6682```
6683
6684### setInterruptMode<sup>9+</sup>
6685
6686setInterruptMode(mode: InterruptMode): Promise&lt;void&gt;
6687
6688设置应用的焦点模型。使用Promise异步回调。
6689
6690**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
6691
6692**参数:**
6693
6694| 参数名     | 类型                                | 必填   | 说明        |
6695| ---------- | ---------------------------------- | ------ | ---------- |
6696| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |
6697
6698**返回值:**
6699
6700| 类型                | 说明                          |
6701| ------------------- | ----------------------------- |
6702| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
6703
6704**示例:**
6705
6706```ts
6707import { BusinessError } from '@ohos.base';
6708let mode = 0;
6709audioRenderer.setInterruptMode(mode).then(() => {
6710  console.info('setInterruptMode Success!');
6711}).catch((err: BusinessError) => {
6712  console.error(`setInterruptMode Fail: ${err}`);
6713});
6714```
6715### setInterruptMode<sup>9+</sup>
6716
6717setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void
6718
6719设置应用的焦点模型。使用Callback回调返回执行结果。
6720
6721**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
6722
6723**参数:**
6724
6725| 参数名   | 类型                                | 必填   | 说明            |
6726| ------- | ----------------------------------- | ------ | -------------- |
6727|mode     | [InterruptMode](#interruptmode9)     | 是     | 焦点模型。|
6728|callback | AsyncCallback\<void>                 | 是     |回调返回执行结果。|
6729
6730**示例:**
6731
6732```ts
6733import { BusinessError } from '@ohos.base';
6734let mode = 1;
6735audioRenderer.setInterruptMode(mode, (err: BusinessError) => {
6736  if(err){
6737    console.error(`setInterruptMode Fail: ${err}`);
6738  }
6739  console.info('setInterruptMode Success!');
6740});
6741```
6742
6743### setInterruptModeSync<sup>10+</sup>
6744
6745setInterruptModeSync(mode: InterruptMode): void
6746
6747设置应用的焦点模型,同步设置。
6748
6749**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
6750
6751**参数:**
6752
6753| 参数名     | 类型                                | 必填   | 说明        |
6754| ---------- | ---------------------------------- | ------ | ---------- |
6755| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |
6756
6757**错误码:**
6758
6759以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
6760
6761| 错误码ID | 错误信息 |
6762| ------- | --------------------------------------------|
6763| 6800101 | invalid parameter error              |
6764
6765**示例:**
6766
6767```ts
6768import { BusinessError } from '@ohos.base';
6769
6770try {
6771  audioRenderer.setInterruptModeSync(0);
6772  console.info('setInterruptMode Success!');
6773} catch (err) {
6774  let error = err as BusinessError;
6775  console.error(`setInterruptMode Fail: ${error}`);
6776}
6777```
6778
6779### setVolume<sup>9+</sup>
6780
6781setVolume(volume: number): Promise&lt;void&gt;
6782
6783设置应用的音量。使用Promise异步回调。
6784
6785**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6786
6787**参数:**
6788
6789| 参数名     | 类型    | 必填   | 说明                 |
6790| ---------- | ------- | ------ | ------------------- |
6791| volume     | number  | 是     | 音量值范围为0.0-1.0。 |
6792
6793**返回值:**
6794
6795| 类型                | 说明                          |
6796| ------------------- | ----------------------------- |
6797| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
6798
6799**示例:**
6800
6801```ts
6802import { BusinessError } from '@ohos.base';
6803audioRenderer.setVolume(0.5).then(() => {
6804  console.info('setVolume Success!');
6805}).catch((err: BusinessError) => {
6806  console.error(`setVolume Fail: ${err}`);
6807});
6808```
6809### setVolume<sup>9+</sup>
6810
6811setVolume(volume: number, callback: AsyncCallback\<void>): void
6812
6813设置应用的音量。使用Callback回调返回执行结果。
6814
6815**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6816
6817**参数:**
6818
6819| 参数名  | 类型       | 必填   | 说明                 |
6820| ------- | -----------| ------ | ------------------- |
6821|volume   | number     | 是     | 音量值范围为0.0-1.0。 |
6822|callback | AsyncCallback\<void> | 是     |回调返回执行结果。|
6823
6824**示例:**
6825
6826```ts
6827import { BusinessError } from '@ohos.base';
6828audioRenderer.setVolume(0.5, (err: BusinessError) => {
6829  if(err){
6830    console.error(`setVolume Fail: ${err}`);
6831  }
6832  console.info('setVolume Success!');
6833});
6834```
6835
6836### getMinStreamVolume<sup>10+</sup>
6837
6838getMinStreamVolume(callback: AsyncCallback&lt;number&gt;): void
6839
6840获取应用基于音频流的最小音量。使用Callback回调返回。
6841
6842**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6843
6844**参数:**
6845
6846| 参数名  | 类型       | 必填   | 说明                 |
6847| ------- | -----------| ------ | ------------------- |
6848|callback |AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流最小音量(音量范围0-1)。|
6849
6850**示例:**
6851
6852```ts
6853import { BusinessError } from '@ohos.base';
6854audioRenderer.getMinStreamVolume((err: BusinessError, minVolume: number) => {
6855  if (err) {
6856    console.error(`getMinStreamVolume error: ${err}`);
6857  } else {
6858    console.info(`getMinStreamVolume Success! ${minVolume}`);
6859  }
6860});
6861```
6862### getMinStreamVolume<sup>10+</sup>
6863
6864getMinStreamVolume(): Promise&lt;number&gt;
6865
6866获取应用基于音频流的最小音量。使用Promise异步回调。
6867
6868**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6869
6870**返回值:**
6871
6872| 类型                | 说明                          |
6873| ------------------- | ----------------------------- |
6874| Promise&lt;number&gt;| Promise回调返回音频流最小音量(音量范围0-1)。|
6875
6876**示例:**
6877
6878```ts
6879import { BusinessError } from '@ohos.base';
6880audioRenderer.getMinStreamVolume().then((value: number) => {
6881  console.info(`Get min stream volume Success! ${value}`);
6882}).catch((err: BusinessError) => {
6883  console.error(`Get min stream volume Fail: ${err}`);
6884});
6885```
6886
6887### getMinStreamVolumeSync<sup>10+</sup>
6888
6889getMinStreamVolumeSync(): number
6890
6891获取应用基于音频流的最小音量,同步返回结果。
6892
6893**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6894
6895**返回值:**
6896
6897| 类型                | 说明                          |
6898| ------------------- | ----------------------------- |
6899| number| 返回音频流最小音量(音量范围0-1)。|
6900
6901**示例:**
6902
6903```ts
6904import { BusinessError } from '@ohos.base';
6905
6906try {
6907  let value: number = audioRenderer.getMinStreamVolumeSync();
6908  console.info(`Get min stream volume Success! ${value}`);
6909} catch (err) {
6910  let error = err as BusinessError;
6911  console.error(`Get min stream volume Fail: ${error}`);
6912}
6913```
6914
6915### getMaxStreamVolume<sup>10+</sup>
6916
6917getMaxStreamVolume(callback: AsyncCallback&lt;number&gt;): void
6918
6919获取应用基于音频流的最大音量。使用Callback回调返回。
6920
6921**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6922
6923**参数:**
6924
6925| 参数名  | 类型       | 必填   | 说明                 |
6926| ------- | -----------| ------ | ------------------- |
6927|callback | AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流最大音量(音量范围0-1)。|
6928
6929**示例:**
6930
6931```ts
6932import { BusinessError } from '@ohos.base';
6933audioRenderer.getMaxStreamVolume((err: BusinessError, maxVolume: number) => {
6934  if (err) {
6935    console.error(`getMaxStreamVolume Fail: ${err}`);
6936  } else {
6937    console.info(`getMaxStreamVolume Success! ${maxVolume}`);
6938  }
6939});
6940```
6941### getMaxStreamVolume<sup>10+</sup>
6942
6943getMaxStreamVolume(): Promise&lt;number&gt;
6944
6945获取应用基于音频流的最大音量。使用Promise异步回调。
6946
6947**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6948
6949**返回值:**
6950
6951| 类型                | 说明                          |
6952| ------------------- | ----------------------------- |
6953| Promise&lt;number&gt;| Promise回调返回音频流最大音量(音量范围0-1)。|
6954
6955**示例:**
6956
6957```ts
6958import { BusinessError } from '@ohos.base';
6959audioRenderer.getMaxStreamVolume().then((value: number) => {
6960  console.info(`Get max stream volume Success! ${value}`);
6961}).catch((err: BusinessError) => {
6962  console.error(`Get max stream volume Fail: ${err}`);
6963});
6964```
6965
6966### getMaxStreamVolumeSync<sup>10+</sup>
6967
6968getMaxStreamVolumeSync(): number
6969
6970获取应用基于音频流的最大音量,同步返回结果。
6971
6972**系统能力:** SystemCapability.Multimedia.Audio.Renderer
6973
6974**返回值:**
6975
6976| 类型                | 说明                          |
6977| ------------------- | ----------------------------- |
6978| number| 返回音频流最大音量(音量范围0-1)。|
6979
6980**示例:**
6981
6982```ts
6983import { BusinessError } from '@ohos.base';
6984
6985try {
6986  let value: number = audioRenderer.getMaxStreamVolumeSync();
6987  console.info(`Get max stream volume Success! ${value}`);
6988} catch (err) {
6989  let error = err as BusinessError;
6990  console.error(`Get max stream volume Fail: ${error}`);
6991}
6992```
6993
6994### getUnderflowCount<sup>10+</sup>
6995
6996getUnderflowCount(callback: AsyncCallback&lt;number&gt;): void
6997
6998获取当前播放音频流的欠载音频帧数量。使用Callback回调返回。
6999
7000**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7001
7002**参数:**
7003
7004| 参数名  | 类型       | 必填   | 说明                 |
7005| ------- | -----------| ------ | ------------------- |
7006|callback | AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流的欠载音频帧数量。|
7007
7008**示例:**
7009
7010```ts
7011import { BusinessError } from '@ohos.base';
7012audioRenderer.getUnderflowCount((err: BusinessError, underflowCount: number) => {
7013  if (err) {
7014    console.error(`getUnderflowCount Fail: ${err}`);
7015  } else {
7016    console.info(`getUnderflowCount Success! ${underflowCount}`);
7017  }
7018});
7019```
7020### getUnderflowCount<sup>10+</sup>
7021
7022getUnderflowCount(): Promise&lt;number&gt;
7023
7024获取当前播放音频流的欠载音频帧数量。使用Promise异步回调。
7025
7026**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7027
7028**返回值:**
7029
7030| 类型                | 说明                          |
7031| ------------------- | ----------------------------- |
7032| Promise&lt;number&gt;| Promise回调返回音频流的欠载音频帧数量。|
7033
7034**示例:**
7035
7036```ts
7037import { BusinessError } from '@ohos.base';
7038audioRenderer.getUnderflowCount().then((value: number) => {
7039  console.info(`Get underflow count Success! ${value}`);
7040}).catch((err: BusinessError) => {
7041  console.error(`Get underflow count Fail: ${err}`);
7042});
7043```
7044
7045### getUnderflowCountSync<sup>10+</sup>
7046
7047getUnderflowCountSync(): number
7048
7049获取当前播放音频流的欠载音频帧数量,同步返回数据。
7050
7051**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7052
7053**返回值:**
7054
7055| 类型                | 说明                          |
7056| ------------------- | ----------------------------- |
7057| number| 返回音频流的欠载音频帧数量。|
7058
7059**示例:**
7060
7061```ts
7062import { BusinessError } from '@ohos.base';
7063
7064try {
7065  let value: number = audioRenderer.getUnderflowCountSync();
7066  console.info(`Get underflow count Success! ${value}`);
7067} catch (err) {
7068  let error = err as BusinessError;
7069  console.error(`Get underflow count Fail: ${error}`);
7070}
7071```
7072
7073### getCurrentOutputDevices<sup>10+</sup>
7074
7075getCurrentOutputDevices(callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
7076
7077获取音频流输出设备描述符。使用Callback回调返回。
7078
7079**系统能力:** SystemCapability.Multimedia.Audio.Device
7080
7081**参数:**
7082
7083| 参数名  | 类型       | 必填   | 说明                 |
7084| ------- | -----------| ------ | ------------------- |
7085|callback | AsyncCallback&lt;AudioDeviceDescriptors&gt; | 是     |Callback回调返回音频流的输出设备描述符。|
7086
7087**示例:**
7088
7089```ts
7090import { BusinessError } from '@ohos.base';
7091audioRenderer.getCurrentOutputDevices((err: BusinessError, deviceInfo: audio.AudioDeviceDescriptors) => {
7092  if (err) {
7093    console.error(`getCurrentOutputDevices Fail: ${err}`);
7094  } else {
7095    for (let i = 0; i < deviceInfo.length; i++) {
7096      console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
7097      console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
7098      console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
7099      console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
7100      console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
7101      console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
7102      console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
7103      console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
7104    }
7105  }
7106});
7107```
7108### getCurrentOutputDevices<sup>10+</sup>
7109
7110getCurrentOutputDevices(): Promise&lt;AudioDeviceDescriptors&gt;
7111
7112获取音频流输出设备描述符。使用Promise异步回调。
7113
7114**系统能力:** SystemCapability.Multimedia.Audio.Device
7115
7116**返回值:**
7117
7118| 类型                | 说明                          |
7119| ------------------- | ----------------------------- |
7120| Promise&lt;AudioDeviceDescriptors&gt;| Promise回调返回音频流的输出设备描述信息 |
7121
7122**示例:**
7123
7124```ts
7125import { BusinessError } from '@ohos.base';
7126audioRenderer.getCurrentOutputDevices().then((deviceInfo: audio.AudioDeviceDescriptors) => {
7127  for (let i = 0; i < deviceInfo.length; i++) {
7128    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
7129    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
7130    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
7131    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
7132    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
7133    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
7134    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
7135    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
7136  }
7137}).catch((err: BusinessError) => {
7138  console.error(`Get current output devices Fail: ${err}`);
7139});
7140```
7141
7142### getCurrentOutputDevicesSync<sup>10+</sup>
7143
7144getCurrentOutputDevicesSync(): AudioDeviceDescriptors
7145
7146获取音频流输出设备描述符,同步返回结果。
7147
7148**系统能力:** SystemCapability.Multimedia.Audio.Device
7149
7150**返回值:**
7151
7152| 类型                | 说明                          |
7153| ------------------- | ----------------------------- |
7154| AudioDeviceDescriptors | 返回音频流的输出设备描述信息 |
7155
7156**示例:**
7157
7158```ts
7159import { BusinessError } from '@ohos.base';
7160
7161try {
7162  let deviceInfo: audio.AudioDeviceDescriptors = audioRenderer.getCurrentOutputDevicesSync();
7163  for (let i = 0; i < deviceInfo.length; i++) {
7164    console.info(`DeviceInfo id: ${deviceInfo[i].id}`);
7165    console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`);
7166    console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`);
7167    console.info(`DeviceInfo name: ${deviceInfo[i].name}`);
7168    console.info(`DeviceInfo address: ${deviceInfo[i].address}`);
7169    console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`);
7170    console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`);
7171    console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`);
7172  }
7173} catch (err) {
7174  let error = err as BusinessError;
7175  console.error(`Get current output devices Fail: ${error}`);
7176}
7177```
7178
7179### on('audioInterrupt')<sup>9+</sup>
7180
7181on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void
7182
7183监听音频中断事件。使用callback获取中断事件。
7184
7185与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioRenderer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
7186
7187**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
7188
7189**参数:**
7190
7191| 参数名   | 类型                                         | 必填 | 说明                                                         |
7192| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
7193| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频渲染被中断。) |
7194| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是   | 被监听的中断事件的回调。                                     |
7195
7196**错误码:**
7197
7198以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
7199
7200| 错误码ID | 错误信息 |
7201| ------- | --------------------------------------------|
7202| 6800101 | if input parameter value error              |
7203
7204**示例:**
7205
7206```ts
7207import audio from '@ohos.multimedia.audio';
7208
7209let isPlaying: boolean; // 标识符,表示是否正在渲染
7210let isDucked: boolean; // 标识符,表示是否被降低音量
7211onAudioInterrupt();
7212
7213async function onAudioInterrupt(){
7214  audioRenderer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
7215    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
7216      // 由系统进行操作,强制打断音频渲染,应用需更新自身状态及显示内容等
7217      switch (interruptEvent.hintType) {
7218        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
7219          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent
7220          console.info('Force paused. Update playing status and stop writing');
7221          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
7222          break;
7223        case audio.InterruptHint.INTERRUPT_HINT_STOP:
7224          // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发
7225          console.info('Force stopped. Update playing status and stop writing');
7226          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
7227          break;
7228        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
7229          // 音频流已被降低音量渲染
7230          console.info('Force ducked. Update volume status');
7231          isDucked = true; // 简化处理,代表应用更新音量状态的若干操作
7232          break;
7233        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
7234          // 音频流已被恢复正常音量渲染
7235          console.info('Force ducked. Update volume status');
7236          isDucked = false; // 简化处理,代表应用更新音量状态的若干操作
7237          break;
7238        default:
7239          console.info('Invalid interruptEvent');
7240          break;
7241      }
7242    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
7243      // 由应用进行操作,应用可以自主选择打断或忽略
7244      switch (interruptEvent.hintType) {
7245        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
7246          // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染)
7247          console.info('Resume force paused renderer or ignore');
7248          // 若选择继续渲染,需在此处主动执行开始渲染的若干操作
7249          break;
7250        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
7251          // 建议应用暂停渲染
7252          console.info('Choose to pause or ignore');
7253          // 若选择暂停渲染,需在此处主动执行暂停渲染的若干操作
7254          break;
7255        case audio.InterruptHint.INTERRUPT_HINT_STOP:
7256          // 建议应用停止渲染
7257          console.info('Choose to stop or ignore');
7258          // 若选择停止渲染,需在此处主动执行停止渲染的若干操作
7259          break;
7260        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
7261          // 建议应用降低音量渲染
7262          console.info('Choose to duck or ignore');
7263          // 若选择降低音量渲染,需在此处主动执行降低音量渲染的若干操作
7264          break;
7265        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
7266          // 建议应用恢复正常音量渲染
7267          console.info('Choose to unduck or ignore');
7268          // 若选择恢复正常音量渲染,需在此处主动执行恢复正常音量渲染的若干操作
7269          break;
7270        default:
7271          break;
7272      }
7273    }
7274  });
7275}
7276```
7277
7278### on('markReach')<sup>8+</sup>
7279
7280on(type: 'markReach', frame: number, callback: Callback&lt;number&gt;): void
7281
7282订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
7283
7284**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7285
7286**参数:**
7287
7288| 参数名   | 类型                     | 必填 | 说明                                      |
7289| :------- | :----------------------- | :--- | :---------------------------------------- |
7290| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。 |
7291| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。         |
7292| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                    |
7293
7294**示例:**
7295
7296```ts
7297audioRenderer.on('markReach', 1000, (position: number) => {
7298  if (position == 1000) {
7299    console.info('ON Triggered successfully');
7300  }
7301});
7302```
7303
7304
7305### off('markReach') <sup>8+</sup>
7306
7307off(type: 'markReach'): void
7308
7309取消订阅标记事件。
7310
7311**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7312
7313**参数:**
7314
7315| 参数名 | 类型   | 必填 | 说明                                              |
7316| :----- | :----- | :--- | :------------------------------------------------ |
7317| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
7318
7319**示例:**
7320
7321```ts
7322audioRenderer.off('markReach');
7323```
7324
7325### on('periodReach') <sup>8+</sup>
7326
7327on(type: 'periodReach', frame: number, callback: Callback&lt;number&gt;): void
7328
7329订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。
7330
7331**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7332
7333**参数:**
7334
7335| 参数名   | 类型                     | 必填 | 说明                                        |
7336| :------- | :----------------------- | :--- | :------------------------------------------ |
7337| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
7338| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。           |
7339| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                      |
7340
7341**示例:**
7342
7343```ts
7344audioRenderer.on('periodReach', 1000, (position: number) => {
7345  if (position == 1000) {
7346    console.info('ON Triggered successfully');
7347  }
7348});
7349```
7350
7351### off('periodReach') <sup>8+</sup>
7352
7353off(type: 'periodReach'): void
7354
7355取消订阅标记事件。
7356
7357**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7358
7359**参数:**
7360
7361| 参数名 | 类型   | 必填 | 说明                                                |
7362| :----- | :----- | :--- | :-------------------------------------------------- |
7363| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
7364
7365**示例:**
7366
7367```ts
7368audioRenderer.off('periodReach')
7369```
7370
7371### on('stateChange') <sup>8+</sup>
7372
7373on(type: 'stateChange', callback: Callback<AudioState\>): void
7374
7375订阅监听状态变化。
7376
7377**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7378
7379**参数:**
7380
7381| 参数名   | 类型                       | 必填 | 说明                                        |
7382| :------- | :------------------------- | :--- | :------------------------------------------ |
7383| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
7384| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
7385
7386**示例:**
7387
7388```ts
7389audioRenderer.on('stateChange', (state: audio.AudioState) => {
7390  if (state == 1) {
7391    console.info('audio renderer state is: STATE_PREPARED');
7392  }
7393  if (state == 2) {
7394    console.info('audio renderer state is: STATE_RUNNING');
7395  }
7396});
7397```
7398
7399### on('outputDeviceChange') <sup>10+</sup>
7400
7401on(type: 'outputDeviceChange', callback: Callback\<AudioDeviceDescriptors>): void;
7402
7403订阅监听音频输出设备变化。
7404
7405**系统能力:** SystemCapability.Multimedia.Audio.Device
7406
7407**参数:**
7408
7409| 参数名   | 类型                       | 必填 | 说明                                        |
7410| :------- | :------------------------- | :--- | :------------------------------------------ |
7411| type     | string                     | 是   | 事件回调类型,支持的事件为:'outputDeviceChange'。 |
7412| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是   | 返回监听的音频设备变化。                            |
7413
7414**错误码:**
7415
7416| 错误码ID | 错误信息 |
7417| ------- | --------------------------------------------|
7418| 6800101 | if input parameter value error.              |
7419
7420**示例:**
7421
7422```ts
7423audioRenderer.on('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => {
7424  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
7425  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
7426  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
7427});
7428```
7429### off('outputDeviceChange') <sup>10+</sup>
7430
7431off(type: 'outputDeviceChange', callback?: Callback\<AudioDeviceDescriptors>): void;
7432
7433取消订阅监听音频输出设备变化。
7434
7435**系统能力:** SystemCapability.Multimedia.Audio.Device
7436
7437**参数:**
7438
7439| 参数名   | 类型                       | 必填 | 说明                                        |
7440| :------- | :------------------------- | :--- | :------------------------------------------ |
7441| type     | string                     | 是   | 事件回调类型,支持的事件为:'outputDeviceChange'。 |
7442| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否   | 取消监听的音频设备变化。                            |
7443
7444**错误码:**
7445
7446| 错误码ID | 错误信息 |
7447| ------- | --------------------------------------------|
7448| 6800101 | if input parameter value error.              |
7449
7450**示例:**
7451
7452```ts
7453audioRenderer.off('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => {
7454  console.info(`DeviceInfo id: ${deviceInfo[0].id}`);
7455  console.info(`DeviceInfo name: ${deviceInfo[0].name}`);
7456  console.info(`DeviceInfo address: ${deviceInfo[0].address}`);
7457});
7458```
7459
7460## AudioCapturer<sup>8+</sup>
7461
7462提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
7463
7464### 属性
7465
7466**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7467
7468| 名称  | 类型                     | 可读 | 可写 | 说明             |
7469| :---- | :------------------------- | :--- | :--- | :--------------- |
7470| state<sup>8+</sup>  | [AudioState](#audiostate8) | 是 | 否   | 音频采集器状态。 |
7471
7472**示例:**
7473
7474```ts
7475import audio from '@ohos.multimedia.audio';
7476let state: audio.AudioState = audioCapturer.state;
7477```
7478
7479### getCapturerInfo<sup>8+</sup>
7480
7481getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
7482
7483获取采集器信息。使用callback方式异步返回结果。
7484
7485**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7486
7487**参数:**
7488
7489| 参数名   | 类型                              | 必填 | 说明                                 |
7490| :------- | :-------------------------------- | :--- | :----------------------------------- |
7491| callback | AsyncCallback<AudioCapturerInfo\> | 是   | 使用callback方式异步返回采集器信息。 |
7492
7493**示例:**
7494
7495```ts
7496import { BusinessError } from '@ohos.base';
7497audioCapturer.getCapturerInfo((err: BusinessError, capturerInfo: audio.AudioCapturerInfo) => {
7498  if (err) {
7499    console.error('Failed to get capture info');
7500  } else {
7501    console.info('Capturer getCapturerInfo:');
7502    console.info(`Capturer source: ${capturerInfo.source}`);
7503    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
7504  }
7505});
7506```
7507
7508
7509### getCapturerInfo<sup>8+</sup>
7510
7511getCapturerInfo(): Promise<AudioCapturerInfo\>
7512
7513获取采集器信息。使用Promise方式异步返回结果。
7514
7515**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7516
7517**返回值:**
7518
7519| 类型                                              | 说明                                |
7520| :------------------------------------------------ | :---------------------------------- |
7521| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 |
7522
7523**示例:**
7524
7525```ts
7526import { BusinessError } from '@ohos.base';
7527audioCapturer.getCapturerInfo().then((audioParamsGet: audio.AudioCapturerInfo) => {
7528  if (audioParamsGet != undefined) {
7529    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
7530    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
7531    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
7532  } else {
7533    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
7534    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
7535  }
7536}).catch((err: BusinessError) => {
7537  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
7538})
7539```
7540
7541### getCapturerInfoSync<sup>10+</sup>
7542
7543getCapturerInfoSync(): AudioCapturerInfo
7544
7545获取采集器信息,同步返回结果。
7546
7547**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7548
7549**返回值:**
7550
7551| 类型                                              | 说明                                |
7552| :------------------------------------------------ | :---------------------------------- |
7553| [AudioCapturerInfo](#audiocapturerinfo) | 返回采集器信息。 |
7554
7555**示例:**
7556
7557```ts
7558import { BusinessError } from '@ohos.base';
7559
7560try {
7561  let audioParamsGet: audio.AudioCapturerInfo = audioCapturer.getCapturerInfoSync();
7562  console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
7563  console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
7564} catch (err) {
7565  let error = err as BusinessError;
7566  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${error}`);
7567}
7568```
7569
7570### getStreamInfo<sup>8+</sup>
7571
7572getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
7573
7574获取采集器流信息。使用callback方式异步返回结果。
7575
7576**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7577
7578**参数:**
7579
7580| 参数名   | 类型                                                 | 必填 | 说明                             |
7581| :------- | :--------------------------------------------------- | :--- | :------------------------------- |
7582| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 使用callback方式异步返回流信息。 |
7583
7584**示例:**
7585
7586```ts
7587import { BusinessError } from '@ohos.base';
7588audioCapturer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => {
7589  if (err) {
7590    console.error('Failed to get stream info');
7591  } else {
7592    console.info('Capturer GetStreamInfo:');
7593    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
7594    console.info(`Capturer channel: ${streamInfo.channels}`);
7595    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
7596    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
7597  }
7598});
7599```
7600
7601### getStreamInfo<sup>8+</sup>
7602
7603getStreamInfo(): Promise<AudioStreamInfo\>
7604
7605获取采集器流信息。使用Promise方式异步返回结果。
7606
7607**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7608
7609**返回值:**
7610
7611| 类型                                           | 说明                            |
7612| :--------------------------------------------- | :------------------------------ |
7613| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | 使用Promise方式异步返回流信息。 |
7614
7615**示例:**
7616
7617```ts
7618import { BusinessError } from '@ohos.base';
7619audioCapturer.getStreamInfo().then((audioParamsGet: audio.AudioStreamInfo) => {
7620  console.info('getStreamInfo:');
7621  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
7622  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
7623  console.info(`channels: ${audioParamsGet.channels}`);
7624  console.info(`encodingType: ${audioParamsGet.encodingType}`);
7625}).catch((err: BusinessError) => {
7626  console.error(`getStreamInfo :ERROR: ${err}`);
7627});
7628```
7629
7630### getStreamInfoSync<sup>10+</sup>
7631
7632getStreamInfoSync(): AudioStreamInfo
7633
7634获取采集器流信息,同步返回结果。
7635
7636**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7637
7638**返回值:**
7639
7640| 类型                                           | 说明                            |
7641| :--------------------------------------------- | :------------------------------ |
7642| [AudioStreamInfo](#audiostreaminfo8) | 返回流信息。 |
7643
7644**示例:**
7645
7646```ts
7647import { BusinessError } from '@ohos.base';
7648
7649try {
7650  let audioParamsGet: audio.AudioStreamInfo = audioCapturer.getStreamInfoSync();
7651  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
7652  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
7653  console.info(`channels: ${audioParamsGet.channels}`);
7654  console.info(`encodingType: ${audioParamsGet.encodingType}`);
7655} catch (err) {
7656  let error = err as BusinessError;
7657  console.error(`getStreamInfo :ERROR: ${error}`);
7658}
7659```
7660
7661### getAudioStreamId<sup>9+</sup>
7662
7663getAudioStreamId(callback: AsyncCallback<number\>): void
7664
7665获取音频流id,使用callback方式异步返回结果。
7666
7667**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7668
7669**参数:**
7670
7671| 参数名   | 类型                                                 | 必填 | 说明                 |
7672| :------- | :--------------------------------------------------- | :--- | :------------------- |
7673| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
7674
7675**示例:**
7676
7677```ts
7678import { BusinessError } from '@ohos.base';
7679audioCapturer.getAudioStreamId((err: BusinessError, streamid: number) => {
7680  console.info(`audioCapturer GetStreamId: ${streamid}`);
7681});
7682```
7683
7684### getAudioStreamId<sup>9+</sup>
7685
7686getAudioStreamId(): Promise<number\>
7687
7688获取音频流id,使用Promise方式异步返回结果。
7689
7690**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7691
7692**返回值:**
7693
7694| 类型             | 说明                   |
7695| :----------------| :--------------------- |
7696| Promise<number\> | Promise返回音频流id。 |
7697
7698**示例:**
7699
7700```ts
7701import { BusinessError } from '@ohos.base';
7702audioCapturer.getAudioStreamId().then((streamid: number) => {
7703  console.info(`audioCapturer getAudioStreamId: ${streamid}`);
7704}).catch((err: BusinessError) => {
7705  console.error(`ERROR: ${err}`);
7706});
7707```
7708
7709### getAudioStreamIdSync<sup>10+</sup>
7710
7711getAudioStreamIdSync(): number
7712
7713获取音频流id,同步返回结果。
7714
7715**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7716
7717**返回值:**
7718
7719| 类型             | 说明                   |
7720| :----------------| :--------------------- |
7721| number | 返回音频流id。 |
7722
7723**示例:**
7724
7725```ts
7726import { BusinessError } from '@ohos.base';
7727
7728try {
7729  let streamid: number = audioCapturer.getAudioStreamIdSync();
7730  console.info(`audioCapturer getAudioStreamIdSync: ${streamid}`);
7731} catch (err) {
7732  let error = err as BusinessError;
7733  console.error(`ERROR: ${error}`);
7734}
7735```
7736
7737### start<sup>8+</sup>
7738
7739start(callback: AsyncCallback<void\>): void
7740
7741启动音频采集器。使用callback方式异步返回结果。
7742
7743**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7744
7745**参数:**
7746
7747| 参数名   | 类型                 | 必填 | 说明                           |
7748| :------- | :------------------- | :--- | :----------------------------- |
7749| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
7750
7751**示例:**
7752
7753```ts
7754import { BusinessError } from '@ohos.base';
7755audioCapturer.start((err: BusinessError) => {
7756  if (err) {
7757    console.error('Capturer start failed.');
7758  } else {
7759    console.info('Capturer start success.');
7760  }
7761});
7762```
7763
7764
7765### start<sup>8+</sup>
7766
7767start(): Promise<void\>
7768
7769启动音频采集器。使用Promise方式异步返回结果。
7770
7771**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7772
7773**返回值:**
7774
7775| 类型           | 说明                          |
7776| :------------- | :---------------------------- |
7777| Promise<void\> | 使用Promise方式异步返回结果。 |
7778
7779**示例:**
7780
7781```ts
7782import { BusinessError } from '@ohos.base';
7783audioCapturer.start().then(() => {
7784  console.info('AudioFrameworkRecLog: ---------START---------');
7785  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
7786  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
7787  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
7788  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
7789    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
7790  }
7791}).catch((err: BusinessError) => {
7792  console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
7793});
7794```
7795
7796### stop<sup>8+</sup>
7797
7798stop(callback: AsyncCallback<void\>): void
7799
7800停止采集。使用callback方式异步返回结果。
7801
7802**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7803
7804**参数:**
7805
7806| 参数名   | 类型                 | 必填 | 说明                           |
7807| :------- | :------------------- | :--- | :----------------------------- |
7808| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
7809
7810**示例:**
7811
7812```ts
7813import { BusinessError } from '@ohos.base';
7814audioCapturer.stop((err: BusinessError) => {
7815  if (err) {
7816    console.error('Capturer stop failed');
7817  } else {
7818    console.info('Capturer stopped.');
7819  }
7820});
7821```
7822
7823
7824### stop<sup>8+</sup>
7825
7826stop(): Promise<void\>
7827
7828停止采集。使用Promise方式异步返回结果。
7829
7830**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7831
7832**返回值:**
7833
7834| 类型           | 说明                          |
7835| :------------- | :---------------------------- |
7836| Promise<void\> | 使用Promise方式异步返回结果。 |
7837
7838**示例:**
7839
7840```ts
7841import { BusinessError } from '@ohos.base';
7842audioCapturer.stop().then(() => {
7843  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
7844  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
7845  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
7846    console.info('AudioFrameworkRecLog: State is Stopped:');
7847  }
7848}).catch((err: BusinessError) => {
7849  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
7850});
7851```
7852
7853### release<sup>8+</sup>
7854
7855release(callback: AsyncCallback<void\>): void
7856
7857释放采集器。使用callback方式异步返回结果。
7858
7859**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7860
7861**参数:**
7862
7863| 参数名   | 类型                 | 必填 | 说明                                |
7864| :------- | :------------------- | :--- | :---------------------------------- |
7865| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
7866
7867**示例:**
7868
7869```ts
7870import { BusinessError } from '@ohos.base';
7871audioCapturer.release((err: BusinessError) => {
7872  if (err) {
7873    console.error('capturer release failed');
7874  } else {
7875    console.info('capturer released.');
7876  }
7877});
7878```
7879
7880
7881### release<sup>8+</sup>
7882
7883release(): Promise<void\>
7884
7885释放采集器。使用Promise方式异步返回结果。
7886
7887**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7888
7889**返回值:**
7890
7891| 类型           | 说明                          |
7892| :------------- | :---------------------------- |
7893| Promise<void\> | 使用Promise方式异步返回结果。 |
7894
7895**示例:**
7896
7897```ts
7898import { BusinessError } from '@ohos.base';
7899audioCapturer.release().then(() => {
7900  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
7901  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
7902  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
7903}).catch((err: BusinessError) => {
7904  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
7905});
7906```
7907
7908### read<sup>8+</sup>
7909
7910read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void
7911
7912读入缓冲区。使用callback方式异步返回结果。
7913
7914**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7915
7916**参数:**
7917
7918| 参数名         | 类型                        | 必填 | 说明                             |
7919| :------------- | :-------------------------- | :--- | :------------------------------- |
7920| size           | number                      | 是   | 读入的字节数。                   |
7921| isBlockingRead | boolean                     | 是   | 是否阻塞读操作。                 |
7922| callback       | AsyncCallback<ArrayBuffer\> | 是   | 使用callback方式异步返回缓冲区。 |
7923
7924**示例:**
7925
7926```ts
7927import { BusinessError } from '@ohos.base';
7928let bufferSize: number = 0;
7929audioCapturer.getBufferSize().then((data: number) => {
7930  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
7931  bufferSize = data;
7932}).catch((err: BusinessError) => {
7933  console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
7934});
7935audioCapturer.read(bufferSize, true, (err: BusinessError, buffer: number) => {
7936  if (!err) {
7937    console.info('Success in reading the buffer data');
7938  }
7939});
7940```
7941
7942### read<sup>8+</sup>
7943
7944read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
7945
7946读入缓冲区。使用Promise方式异步返回结果。
7947
7948**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7949
7950**参数:**
7951
7952| 参数名         | 类型    | 必填 | 说明             |
7953| :------------- | :------ | :--- | :--------------- |
7954| size           | number  | 是   | 读入的字节数。   |
7955| isBlockingRead | boolean | 是   | 是否阻塞读操作。 |
7956
7957**返回值:**
7958
7959| 类型                  | 说明                                                   |
7960| :-------------------- | :----------------------------------------------------- |
7961| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
7962
7963**示例:**
7964
7965```ts
7966import { BusinessError } from '@ohos.base';
7967let bufferSize: number = 0;
7968audioCapturer.getBufferSize().then((data: number) => {
7969  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
7970  bufferSize = data;
7971}).catch((err: BusinessError) => {
7972  console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
7973});
7974console.info(`Buffer size: ${bufferSize}`);
7975audioCapturer.read(bufferSize, true).then((buffer: number) => {
7976  console.info('buffer read successfully');
7977}).catch((err: BusinessError) => {
7978  console.info(`ERROR : ${err}`);
7979});
7980```
7981
7982### getAudioTime<sup>8+</sup>
7983
7984getAudioTime(callback: AsyncCallback<number\>): void
7985
7986获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
7987
7988**系统能力:** SystemCapability.Multimedia.Audio.Capturer
7989
7990**参数:**
7991
7992| 参数名   | 类型                   | 必填 | 说明                           |
7993| :------- | :--------------------- | :--- | :----------------------------- |
7994| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回结果。 |
7995
7996**示例:**
7997
7998```ts
7999import { BusinessError } from '@ohos.base';
8000audioCapturer.getAudioTime((err: BusinessError, timestamp: number) => {
8001  console.info(`Current timestamp: ${timestamp}`);
8002});
8003```
8004
8005### getAudioTime<sup>8+</sup>
8006
8007getAudioTime(): Promise<number\>
8008
8009获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
8010
8011**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8012
8013**返回值:**
8014
8015| 类型             | 说明                          |
8016| :--------------- | :---------------------------- |
8017| Promise<number\> | 使用Promise方式异步返回结果。 |
8018
8019**示例:**
8020
8021```ts
8022import { BusinessError } from '@ohos.base';
8023audioCapturer.getAudioTime().then((audioTime: number) => {
8024  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
8025}).catch((err: BusinessError) => {
8026  console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
8027});
8028```
8029
8030### getAudioTimeSync<sup>10+</sup>
8031
8032getAudioTimeSync(): number
8033
8034获取时间戳(从1970年1月1日开始),单位为纳秒,同步返回结果。
8035
8036**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8037
8038**返回值:**
8039
8040| 类型             | 说明                          |
8041| :--------------- | :---------------------------- |
8042| number | 返回时间戳。 |
8043
8044**示例:**
8045
8046```ts
8047import { BusinessError } from '@ohos.base';
8048
8049try {
8050  let audioTime: number = audioCapturer.getAudioTimeSync();
8051  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : Success ${audioTime}`);
8052} catch (err) {
8053  let error = err as BusinessError;
8054  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : ERROR : ${error}`);
8055}
8056```
8057
8058### getBufferSize<sup>8+</sup>
8059
8060getBufferSize(callback: AsyncCallback<number\>): void
8061
8062获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
8063
8064**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8065
8066**参数:**
8067
8068| 参数名   | 类型                   | 必填 | 说明                                 |
8069| :------- | :--------------------- | :--- | :----------------------------------- |
8070| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回缓冲区大小。 |
8071
8072**示例:**
8073
8074```ts
8075import { BusinessError } from '@ohos.base';
8076audioCapturer.getBufferSize((err: BusinessError, bufferSize: number) => {
8077  if (!err) {
8078    console.info(`BufferSize : ${bufferSize}`);
8079    audioCapturer.read(bufferSize, true).then((buffer: number) => {
8080      console.info(`Buffer read is ${buffer}`);
8081    }).catch((err: BusinessError) => {
8082      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
8083    });
8084  }
8085});
8086```
8087
8088### getBufferSize<sup>8+</sup>
8089
8090getBufferSize(): Promise<number\>
8091
8092获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
8093
8094**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8095
8096**返回值:**
8097
8098| 类型             | 说明                                |
8099| :--------------- | :---------------------------------- |
8100| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 |
8101
8102**示例:**
8103
8104```ts
8105import { BusinessError } from '@ohos.base';
8106let bufferSize: number = 0;
8107audioCapturer.getBufferSize().then((data: number) => {
8108  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
8109  bufferSize = data;
8110}).catch((err: BusinessError) => {
8111  console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
8112});
8113```
8114
8115### getBufferSizeSync<sup>10+</sup>
8116
8117getBufferSizeSync(): number
8118
8119获取采集器合理的最小缓冲区大小,同步返回结果。
8120
8121**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8122
8123**返回值:**
8124
8125| 类型             | 说明                                |
8126| :--------------- | :---------------------------------- |
8127| number | 返回缓冲区大小。 |
8128
8129**示例:**
8130
8131```ts
8132import { BusinessError } from '@ohos.base';
8133
8134let bufferSize: number = 0;
8135try {
8136  bufferSize = audioCapturer.getBufferSizeSync();
8137  console.info(`AudioFrameworkRecLog: getBufferSizeSync :SUCCESS ${bufferSize}`);
8138} catch (err) {
8139  let error = err as BusinessError;
8140  console.info(`AudioFrameworkRecLog: getBufferSizeSync :ERROR : ${error}`);
8141}
8142```
8143
8144### on('audioInterrupt')<sup>10+</sup>
8145
8146on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void
8147
8148监听音频中断事件。使用callback获取中断事件。
8149
8150与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioCapturer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
8151
8152**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
8153
8154**参数:**
8155
8156| 参数名   | 类型                                         | 必填 | 说明                                                         |
8157| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
8158| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频采集被中断。) |
8159| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是   | 被监听的中断事件的回调。                                     |
8160
8161**错误码:**
8162
8163以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
8164
8165| 错误码ID | 错误信息 |
8166| ------- | --------------------------------------------|
8167| 6800101 | if input parameter value error              |
8168
8169**示例:**
8170
8171```ts
8172import audio from '@ohos.multimedia.audio';
8173let isCapturing: boolean; // 标识符,表示是否正在采集
8174onAudioInterrupt();
8175
8176async function onAudioInterrupt(){
8177  audioCapturer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => {
8178    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
8179      // 由系统进行操作,强制打断音频采集,应用需更新自身状态及显示内容等
8180      switch (interruptEvent.hintType) {
8181        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
8182          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent
8183          console.info('Force paused. Update capturing status and stop reading');
8184          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作
8185          break;
8186        case audio.InterruptHint.INTERRUPT_HINT_STOP:
8187          // 音频流已被停止,永久失去焦点,若想恢复采集,需用户主动触发
8188          console.info('Force stopped. Update capturing status and stop reading');
8189          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作
8190          break;
8191        default:
8192          console.info('Invalid interruptEvent');
8193          break;
8194      }
8195    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
8196      // 由应用进行操作,应用可以自主选择打断或忽略
8197      switch (interruptEvent.hintType) {
8198        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
8199          // 建议应用继续采集(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复采集)
8200          console.info('Resume force paused renderer or ignore');
8201          // 若选择继续采集,需在此处主动执行开始采集的若干操作
8202          break;
8203        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
8204          // 建议应用暂停采集
8205          console.info('Choose to pause or ignore');
8206          // 若选择暂停采集,需在此处主动执行暂停采集的若干操作
8207          break;
8208        case audio.InterruptHint.INTERRUPT_HINT_STOP:
8209          // 建议应用停止采集
8210          console.info('Choose to stop or ignore');
8211          // 若选择停止采集,需在此处主动执行停止采集的若干操作
8212          break;
8213        default:
8214          break;
8215      }
8216    }
8217  });
8218}
8219```
8220
8221### off('audioInterrupt')<sup>10+</sup>
8222
8223off(type: 'audioInterrupt'): void
8224
8225取消订阅音频中断事件。
8226
8227**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
8228
8229**参数:**
8230
8231| 参数名   | 类型                                         | 必填 | 说明                                                         |
8232| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
8233| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt' |
8234
8235**错误码:**
8236
8237以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。
8238
8239| 错误码ID | 错误信息 |
8240| ------- | --------------------------------------------|
8241| 6800101 | if input parameter value error              |
8242
8243**示例:**
8244
8245```ts
8246audioCapturer.off('audioInterrupt');
8247```
8248
8249
8250### on('markReach')<sup>8+</sup>
8251
8252on(type: 'markReach', frame: number, callback: Callback&lt;number&gt;): void
8253
8254订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
8255
8256**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8257
8258**参数:**
8259
8260| 参数名   | 类型                     | 必填 | 说明                                       |
8261| :------- | :----------------------  | :--- | :----------------------------------------- |
8262| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。  |
8263| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。           |
8264| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调。 |
8265
8266**示例:**
8267
8268```ts
8269audioCapturer.on('markReach', 1000, (position: number) => {
8270  if (position == 1000) {
8271    console.info('ON Triggered successfully');
8272  }
8273});
8274```
8275
8276### off('markReach')<sup>8+</sup>
8277
8278off(type: 'markReach'): void
8279
8280取消订阅标记到达的事件。
8281
8282**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8283
8284**参数:**
8285
8286| 参数名 | 类型   | 必填 | 说明                                          |
8287| :----- | :----- | :--- | :-------------------------------------------- |
8288| type   | string | 是   | 取消事件回调类型,支持的事件为:'markReach'。 |
8289
8290**示例:**
8291
8292```ts
8293audioCapturer.off('markReach');
8294```
8295
8296### on('periodReach')<sup>8+</sup>
8297
8298on(type: 'periodReach', frame: number, callback: Callback&lt;number&gt;): void
8299
8300订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。
8301
8302**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8303
8304**参数:**
8305
8306| 参数名   | 类型                     | 必填 | 说明                                        |
8307| :------- | :----------------------- | :--- | :------------------------------------------ |
8308| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
8309| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。            |
8310| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调    |
8311
8312**示例:**
8313
8314```ts
8315audioCapturer.on('periodReach', 1000, (position: number) => {
8316  if (position == 1000) {
8317    console.info('ON Triggered successfully');
8318  }
8319});
8320```
8321
8322### off('periodReach')<sup>8+</sup>
8323
8324off(type: 'periodReach'): void
8325
8326取消订阅标记到达的事件。
8327
8328**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8329
8330**参数:**
8331
8332| 参数名 | 类型   | 必填 | 说明                                            |
8333| :----- | :----- | :--- | :---------------------------------------------- |
8334| type   | string | 是  | 取消事件回调类型,支持的事件为:'periodReach'。 |
8335
8336**示例:**
8337
8338```ts
8339audioCapturer.off('periodReach')
8340```
8341
8342### on('stateChange') <sup>8+</sup>
8343
8344on(type: 'stateChange', callback: Callback<AudioState\>): void
8345
8346订阅监听状态变化。
8347
8348**系统能力:** SystemCapability.Multimedia.Audio.Capturer
8349
8350**参数:**
8351
8352| 参数名   | 类型                       | 必填 | 说明                                        |
8353| :------- | :------------------------- | :--- | :------------------------------------------ |
8354| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
8355| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
8356
8357**示例:**
8358
8359```ts
8360audioCapturer.on('stateChange', (state: audio.AudioState) => {
8361  if (state == 1) {
8362    console.info('audio capturer state is: STATE_PREPARED');
8363  }
8364  if (state == 2) {
8365    console.info('audio capturer state is: STATE_RUNNING');
8366  }
8367});
8368```
8369
8370## ToneType<sup>9+</sup>
8371
8372枚举,播放器的音调类型。
8373
8374**系统接口:** 该接口为系统接口
8375
8376**系统能力:** SystemCapability.Multimedia.Audio.Tone
8377
8378| 名称                                              |  值    | 说明                          |
8379| :------------------------------------------------ | :----- | :----------------------------|
8380| TONE_TYPE_DIAL_0                                  | 0      | 键0的DTMF音。                 |
8381| TONE_TYPE_DIAL_1                                  | 1      | 键1的DTMF音。                 |
8382| TONE_TYPE_DIAL_2                                  | 2      | 键2的DTMF音。                 |
8383| TONE_TYPE_DIAL_3                                  | 3      | 键3的DTMF音。                 |
8384| TONE_TYPE_DIAL_4                                  | 4      | 键4的DTMF音。                 |
8385| TONE_TYPE_DIAL_5                                  | 5      | 键5的DTMF音。                 |
8386| TONE_TYPE_DIAL_6                                  | 6      | 键6的DTMF音。                 |
8387| TONE_TYPE_DIAL_7                                  | 7      | 键7的DTMF音。                 |
8388| TONE_TYPE_DIAL_8                                  | 8      | 键8的DTMF音。                 |
8389| TONE_TYPE_DIAL_9                                  | 9      | 键9的DTMF音。                 |
8390| TONE_TYPE_DIAL_S                                  | 10     | 键*的DTMF音。                 |
8391| TONE_TYPE_DIAL_P                                  | 11     | 键#的DTMF音。                 |
8392| TONE_TYPE_DIAL_A                                  | 12     | 键A的DTMF音。                 |
8393| TONE_TYPE_DIAL_B                                  | 13     | 键B的DTMF音。                 |
8394| TONE_TYPE_DIAL_C                                  | 14     | 键C的DTMF音。                 |
8395| TONE_TYPE_DIAL_D                                  | 15     | 键D的DTMF音。                 |
8396| TONE_TYPE_COMMON_SUPERVISORY_DIAL                 | 100    | 呼叫监管音调,拨号音。          |
8397| TONE_TYPE_COMMON_SUPERVISORY_BUSY                 | 101    | 呼叫监管音调,忙。              |
8398| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION           | 102    | 呼叫监管音调,拥塞。            |
8399| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK            | 103    | 呼叫监管音调,无线电 ACK。      |
8400| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE  | 104    | 呼叫监管音调,无线电不可用。     |
8401| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING         | 106    | 呼叫监管音调,呼叫等待。        |
8402| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE             | 107    | 呼叫监管音调,铃声。            |
8403| TONE_TYPE_COMMON_PROPRIETARY_BEEP                 | 200    | 专有声调,一般蜂鸣声。          |
8404| TONE_TYPE_COMMON_PROPRIETARY_ACK                  | 201    | 专有声调,ACK。                |
8405| TONE_TYPE_COMMON_PROPRIETARY_PROMPT               | 203    | 专有声调,PROMPT。             |
8406| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP          | 204    | 专有声调,双重蜂鸣声。          |
8407
8408## TonePlayer<sup>9+</sup>
8409
8410提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
8411
8412**系统接口:** 该接口为系统接口
8413
8414### load<sup>9+</sup>
8415
8416load(type: ToneType, callback: AsyncCallback&lt;void&gt;): void
8417
8418加载DTMF音调配置。使用callback方式异步返回结果。
8419
8420**系统接口:** 该接口为系统接口
8421
8422**系统能力:** SystemCapability.Multimedia.Audio.Tone
8423
8424**参数:**
8425
8426| 参数名          | 类型                        | 必填  | 说明                            |
8427| :--------------| :-------------------------- | :-----| :------------------------------ |
8428| type           | [ToneType](#tonetype9)       | 是    | 配置的音调类型。                 |
8429| callback       | AsyncCallback<void\>        | 是    | 使用callback方式异步返回结果。 |
8430
8431**示例:**
8432
8433```ts
8434import { BusinessError } from '@ohos.base';
8435tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err: BusinessError) => {
8436  if (err) {
8437    console.error(`callback call load failed error: ${err.message}`);
8438    return;
8439  } else {
8440    console.info('callback call load success');
8441  }
8442});
8443```
8444
8445### load<sup>9+</sup>
8446
8447load(type: ToneType): Promise&lt;void&gt;
8448
8449加载DTMF音调配置。使用Promise方式异步返回结果。
8450
8451**系统接口:** 该接口为系统接口
8452
8453**系统能力:** SystemCapability.Multimedia.Audio.Tone
8454
8455**参数:**
8456
8457| 参数名         | 类型                    | 必填  |  说明             |
8458| :------------- | :--------------------- | :---  | ---------------- |
8459| type           | [ToneType](#tonetype9)   | 是    | 配置的音调类型。  |
8460
8461**返回值:**
8462
8463| 类型            | 说明                        |
8464| :--------------| :-------------------------- |
8465| Promise<void\> | 使用Promise方式异步返回结果。 |
8466
8467**示例:**
8468
8469```ts
8470tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
8471  console.info('promise call load ');
8472}).catch(() => {
8473  console.error('promise call load fail');
8474});
8475```
8476
8477### start<sup>9+</sup>
8478
8479start(callback: AsyncCallback&lt;void&gt;): void
8480
8481启动DTMF音调播放。使用callback方式异步返回结果。
8482
8483**系统接口:** 该接口为系统接口
8484
8485**系统能力:** SystemCapability.Multimedia.Audio.Tone
8486
8487**参数:**
8488
8489| 参数名   | 类型                 | 必填 | 说明                           |
8490| :------- | :------------------- | :--- | :----------------------------- |
8491| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
8492
8493**示例:**
8494
8495```ts
8496import { BusinessError } from '@ohos.base';
8497tonePlayer.start((err: BusinessError) => {
8498  if (err) {
8499    console.error(`callback call start failed error: ${err.message}`);
8500    return;
8501  } else {
8502    console.info('callback call start success');
8503  }
8504});
8505```
8506
8507### start<sup>9+</sup>
8508
8509start(): Promise&lt;void&gt;
8510
8511启动DTMF音调播放。使用Promise方式异步返回结果。
8512
8513**系统接口:** 该接口为系统接口
8514
8515**系统能力:** SystemCapability.Multimedia.Audio.Tone
8516
8517**返回值:**
8518
8519| 类型           | 说明                          |
8520| :------------- | :---------------------------- |
8521| Promise<void\> | 使用Promise方式异步返回结果。 |
8522
8523**示例:**
8524
8525```ts
8526tonePlayer.start().then(() => {
8527  console.info('promise call start');
8528}).catch(() => {
8529  console.error('promise call start fail');
8530});
8531```
8532
8533### stop<sup>9+</sup>
8534
8535stop(callback: AsyncCallback&lt;void&gt;): void
8536
8537停止当前正在播放的音调。使用callback方式异步返回结果。
8538
8539**系统接口:** 该接口为系统接口
8540
8541**系统能力:** SystemCapability.Multimedia.Audio.Tone
8542
8543**参数:**
8544
8545| 参数名   | 类型                 | 必填 | 说明                           |
8546| :------- | :------------------- | :--- | :----------------------------- |
8547| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
8548
8549**示例:**
8550
8551```ts
8552import { BusinessError } from '@ohos.base';
8553tonePlayer.stop((err: BusinessError) => {
8554  if (err) {
8555    console.error(`callback call stop error: ${err.message}`);
8556    return;
8557  } else {
8558    console.error('callback call stop success ');
8559  }
8560});
8561```
8562
8563### stop<sup>9+</sup>
8564
8565stop(): Promise&lt;void&gt;
8566
8567停止当前正在播放的音调。使用Promise方式异步返回结果。
8568
8569**系统接口:** 该接口为系统接口
8570
8571**系统能力:** SystemCapability.Multimedia.Audio.Tone
8572
8573**返回值:**
8574
8575| 类型           | 说明                          |
8576| :------------- | :---------------------------- |
8577| Promise<void\> | 使用Promise方式异步返回结果。 |
8578
8579**示例:**
8580
8581```ts
8582tonePlayer.stop().then(() => {
8583  console.info('promise call stop finish');
8584}).catch(() => {
8585  console.error('promise call stop fail');
8586});
8587```
8588
8589### release<sup>9+</sup>
8590
8591release(callback: AsyncCallback&lt;void&gt;): void
8592
8593释放与此TonePlayer对象关联的资源。使用callback方式异步返回结果。
8594
8595**系统接口:** 该接口为系统接口
8596
8597**系统能力:** SystemCapability.Multimedia.Audio.Tone
8598
8599**参数:**
8600
8601| 参数名   | 类型                 | 必填 | 说明                            |
8602| :------- | :------------------- | :--- | :---------------------------- |
8603| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。  |
8604
8605**示例:**
8606
8607```ts
8608import { BusinessError } from '@ohos.base';
8609tonePlayer.release((err: BusinessError) => {
8610  if (err) {
8611    console.error(`callback call release failed error: ${err.message}`);
8612    return;
8613  } else {
8614    console.info('callback call release success ');
8615  }
8616});
8617```
8618
8619### release<sup>9+</sup>
8620
8621release(): Promise&lt;void&gt;
8622
8623释放与此TonePlayer对象关联的资源。使用Promise方式异步返回结果。
8624
8625**系统接口:** 该接口为系统接口
8626
8627**系统能力:** SystemCapability.Multimedia.Audio.Tone
8628
8629**返回值:**
8630
8631| 类型           | 说明                          |
8632| :------------- | :---------------------------- |
8633| Promise<void\> | 使用Promise方式异步返回结果。 |
8634
8635**示例:**
8636
8637```ts
8638tonePlayer.release().then(() => {
8639  console.info('promise call release');
8640}).catch(() => {
8641  console.error('promise call release fail');
8642});
8643```
8644
8645## ActiveDeviceType<sup>(deprecated)</sup>
8646
8647枚举,活跃设备类型。
8648
8649> **说明:**
8650>
8651> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。
8652
8653**系统能力:** SystemCapability.Multimedia.Audio.Device
8654
8655| 名称          |  值     | 说明                                                 |
8656| ------------- | ------ | ---------------------------------------------------- |
8657| SPEAKER       | 2      | 扬声器。                                             |
8658| BLUETOOTH_SCO | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |
8659
8660## InterruptActionType<sup>(deprecated)</sup>
8661
8662枚举,中断事件返回类型。
8663
8664> **说明:**
8665>
8666> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。
8667
8668**系统能力:** SystemCapability.Multimedia.Audio.Renderer
8669
8670| 名称           |  值     | 说明               |
8671| -------------- | ------ | ------------------ |
8672| TYPE_ACTIVATED | 0      | 表示触发焦点事件。 |
8673| TYPE_INTERRUPT | 1      | 表示音频打断事件。 |
8674
8675## AudioInterrupt<sup>(deprecated)</sup>
8676
8677音频监听事件传入的参数。
8678
8679> **说明:**
8680>
8681> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。
8682
8683**系统能力:** SystemCapability.Multimedia.Audio.Renderer
8684
8685| 名称            | 类型                        | 必填 | 说明                                                         |
8686| --------------- | --------------------------- | ----| ------------------------------------------------------------ |
8687| streamUsage     | [StreamUsage](#streamusage) | 是  | 音频流使用类型。                                             |
8688| contentType     | [ContentType](#contenttype) | 是  | 音频打断媒体类型。                                           |
8689| pauseWhenDucked | boolean                     | 是  | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
8690
8691## InterruptAction<sup>(deprecated)</sup>
8692
8693音频打断/获取焦点事件的回调方法。
8694
8695> **说明:**
8696>
8697> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。
8698
8699**系统能力:** SystemCapability.Multimedia.Audio.Renderer
8700
8701| 名称       | 类型                                        | 必填 | 说明                                                         |
8702| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
8703| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是   | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
8704| type       | [InterruptType](#interrupttype)             | 否   | 打断事件类型。                                               |
8705| hint       | [InterruptHint](#interrupthint)             | 否   | 打断事件提示。                                               |
8706| activated  | boolean                                     | 否   | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |
8707