js-apis-audio.md 262.3 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.multimedia.audio (音频管理)
2

Z
zengyawen 已提交
3
音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。
Z
zengyawen 已提交
4 5 6 7

该模块提供以下音频相关的常用功能:

- [AudioManager](#audiomanager):音频管理。
L
lwx1059628 已提交
8
- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。
9
- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。
10
- [TonePlayer](#toneplayer9):用于管理和播放DTMF(Dual Tone Multi Frequency,双音多频)音调,如拨号音、通话回铃音等。
Z
zengyawen 已提交
11

12 13
> **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
14

Z
zengyawen 已提交
15
## 导入模块
M
mamingshuai 已提交
16

J
jiao_yanlin 已提交
17
```js
M
mamingshuai 已提交
18 19 20
import audio from '@ohos.multimedia.audio';
```

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 32 33 34

**示例:**

```js
import audio from '@ohos.multimedia.audio';

const localNetworkId = audio.LOCAL_NETWORK_ID;
35 36 37 38
const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID;
const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID;
```

Z
zengyawen 已提交
39
## audio.getAudioManager
Z
zengyawen 已提交
40 41

getAudioManager(): AudioManager
M
mamingshuai 已提交
42 43 44

获取音频管理器。

Z
zengyawen 已提交
45 46
**系统能力:** SystemCapability.Multimedia.Audio.Core

M
mamingshuai 已提交
47
**返回值:**
48

Z
zengyawen 已提交
49 50
| 类型                          | 说明         |
| ----------------------------- | ------------ |
Z
zengyawen 已提交
51
| [AudioManager](#audiomanager) | 音频管理类。 |
M
mamingshuai 已提交
52 53

**示例:**
J
jiao_yanlin 已提交
54
```js
J
jiao_yanlin 已提交
55
let audioManager = audio.getAudioManager();
M
mamingshuai 已提交
56 57
```

Z
zengyawen 已提交
58 59
## audio.createAudioRenderer<sup>8+</sup>

M
magekkkk 已提交
60
createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void
Z
zengyawen 已提交
61

62
获取音频渲染器。使用callback方式异步返回结果。
Z
zengyawen 已提交
63 64 65

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

66
**参数:**
Z
zengyawen 已提交
67

H
update  
HelloCrease 已提交
68 69 70
| 参数名   | 类型                                            | 必填 | 说明             |
| -------- | ----------------------------------------------- | ---- | ---------------- |
| options  | [AudioRendererOptions](#audiorendereroptions8)  | 是   | 配置渲染器。     |
M
magekkkk 已提交
71
| callback | AsyncCallback<[AudioRenderer](#audiorenderer8)> | 是   | 音频渲染器对象。 |
L
lwx1059628 已提交
72 73 74

**示例:**

J
jiao_yanlin 已提交
75
```js
76
import featureAbility from '@ohos.ability.featureAbility';
77
import fs from '@ohos.file.fs';
L
lwx1059628 已提交
78
import audio from '@ohos.multimedia.audio';
79

J
jiao_yanlin 已提交
80
let audioStreamInfo = {
J
jiao_yanlin 已提交
81 82 83 84
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
L
lwx1059628 已提交
85 86
}

J
jiao_yanlin 已提交
87
let audioRendererInfo = {
J
jiao_yanlin 已提交
88 89
  content: audio.ContentType.CONTENT_TYPE_SPEECH,
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
J
jiao_yanlin 已提交
90
  rendererFlags: 0
L
lwx1059628 已提交
91 92
}

J
jiao_yanlin 已提交
93
let audioRendererOptions = {
J
jiao_yanlin 已提交
94 95
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
L
lwx1059628 已提交
96 97 98
}

audio.createAudioRenderer(audioRendererOptions,(err, data) => {
J
jiao_yanlin 已提交
99
  if (err) {
100
    console.error(`AudioRenderer Created: Error: ${err}`);
J
jiao_yanlin 已提交
101
  } else {
102
    console.info('AudioRenderer Created: Success: SUCCESS');
J
jiao_yanlin 已提交
103 104
    let audioRenderer = data;
  }
L
lwx1059628 已提交
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
});
```

## audio.createAudioRenderer<sup>8+</sup>

createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\>

获取音频渲染器。使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名  | 类型                                           | 必填 | 说明         |
| :------ | :--------------------------------------------- | :--- | :----------- |
| options | [AudioRendererOptions](#audiorendereroptions8) | 是   | 配置渲染器。 |

**返回值:**

| 类型                                      | 说明             |
| ----------------------------------------- | ---------------- |
126
| Promise<[AudioRenderer](#audiorenderer8)> | 音频渲染器对象。 |
Z
zengyawen 已提交
127 128 129

**示例:**

J
jiao_yanlin 已提交
130
```js
131
import featureAbility from '@ohos.ability.featureAbility';
132
import fs from '@ohos.file.fs';
L
lwx1059628 已提交
133 134
import audio from '@ohos.multimedia.audio';

J
jiao_yanlin 已提交
135
let audioStreamInfo = {
J
jiao_yanlin 已提交
136 137 138 139
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
Z
zengyawen 已提交
140 141
}

J
jiao_yanlin 已提交
142
let audioRendererInfo = {
J
jiao_yanlin 已提交
143 144
  content: audio.ContentType.CONTENT_TYPE_SPEECH,
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
J
jiao_yanlin 已提交
145
  rendererFlags: 0
Z
zengyawen 已提交
146 147
}

J
jiao_yanlin 已提交
148
let audioRendererOptions = {
J
jiao_yanlin 已提交
149 150
  streamInfo: audioStreamInfo,
  rendererInfo: audioRendererInfo
Z
zengyawen 已提交
151 152
}

J
jiao_yanlin 已提交
153
let audioRenderer;
L
lwx1059628 已提交
154
audio.createAudioRenderer(audioRendererOptions).then((data) => {
J
jiao_yanlin 已提交
155
  audioRenderer = data;
156
  console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS');
L
lwx1059628 已提交
157
}).catch((err) => {
158
  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
L
lwx1059628 已提交
159
});
Z
zengyawen 已提交
160
```
Z
zengyawen 已提交
161

L
lwx1059628 已提交
162 163 164 165 166 167 168 169
## audio.createAudioCapturer<sup>8+</sup>

createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void

获取音频采集器。使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Capturer

J
jiao_yanlin 已提交
170 171
**需要权限:** ohos.permission.MICROPHONE

L
lwx1059628 已提交
172 173
**参数:**

H
update  
HelloCrease 已提交
174 175
| 参数名   | 类型                                            | 必填 | 说明             |
| :------- | :---------------------------------------------- | :--- | :--------------- |
Z
zengyawen 已提交
176
| options  | [AudioCapturerOptions](#audiocaptureroptions8)  | 是   | 配置音频采集器。 |
M
magekkkk 已提交
177
| callback | AsyncCallback<[AudioCapturer](#audiocapturer8)> | 是   | 音频采集器对象。 |
L
lwx1059628 已提交
178 179 180

**示例:**

J
jiao_yanlin 已提交
181
```js
L
lwx1059628 已提交
182
import audio from '@ohos.multimedia.audio';
J
jiao_yanlin 已提交
183
let audioStreamInfo = {
J
jiao_yanlin 已提交
184 185 186 187
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
L
lwx1059628 已提交
188 189
}

J
jiao_yanlin 已提交
190
let audioCapturerInfo = {
J
jiao_yanlin 已提交
191
  source: audio.SourceType.SOURCE_TYPE_MIC,
J
jiao_yanlin 已提交
192
  capturerFlags: 0
L
lwx1059628 已提交
193 194
}

J
jiao_yanlin 已提交
195
let audioCapturerOptions = {
J
jiao_yanlin 已提交
196 197
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
L
lwx1059628 已提交
198 199
}

J
jiao_yanlin 已提交
200
audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
J
jiao_yanlin 已提交
201
  if (err) {
202
    console.error(`AudioCapturer Created : Error: ${err}`);
J
jiao_yanlin 已提交
203
  } else {
204
    console.info('AudioCapturer Created : Success : SUCCESS');
J
jiao_yanlin 已提交
205 206
    let audioCapturer = data;
  }
L
lwx1059628 已提交
207 208 209 210 211 212 213 214 215 216 217
});
```

## audio.createAudioCapturer<sup>8+</sup>

createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\>

获取音频采集器。使用promise 方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Capturer

J
jiao_yanlin 已提交
218 219
**需要权限:** ohos.permission.MICROPHONE

L
lwx1059628 已提交
220 221
**参数:**

Z
zengyawen 已提交
222 223 224
| 参数名  | 类型                                           | 必填 | 说明             |
| :------ | :--------------------------------------------- | :--- | :--------------- |
| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是   | 配置音频采集器。 |
L
lwx1059628 已提交
225 226 227 228 229

**返回值:**

| 类型                                      | 说明           |
| ----------------------------------------- | -------------- |
M
magekkkk 已提交
230
| Promise<[AudioCapturer](#audiocapturer8)> | 音频采集器对象 |
L
lwx1059628 已提交
231 232 233

**示例:**

J
jiao_yanlin 已提交
234
```js
L
lwx1059628 已提交
235 236
import audio from '@ohos.multimedia.audio';

J
jiao_yanlin 已提交
237
let audioStreamInfo = {
J
jiao_yanlin 已提交
238 239 240 241
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
  channels: audio.AudioChannel.CHANNEL_2,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
L
lwx1059628 已提交
242 243
}

J
jiao_yanlin 已提交
244
let audioCapturerInfo = {
J
jiao_yanlin 已提交
245
  source: audio.SourceType.SOURCE_TYPE_MIC,
J
jiao_yanlin 已提交
246
  capturerFlags: 0
L
lwx1059628 已提交
247 248
}

J
jiao_yanlin 已提交
249
let audioCapturerOptions = {
J
jiao_yanlin 已提交
250 251
  streamInfo: audioStreamInfo,
  capturerInfo: audioCapturerInfo
L
lwx1059628 已提交
252 253
}

J
jiao_yanlin 已提交
254
let audioCapturer;
R
rahul 已提交
255
audio.createAudioCapturer(audioCapturerOptions).then((data) => {
J
jiao_yanlin 已提交
256
  audioCapturer = data;
257
  console.info('AudioCapturer Created : Success : Stream Type: SUCCESS');
L
lwx1059628 已提交
258
}).catch((err) => {
259
  console.error(`AudioCapturer Created : ERROR : ${err}`);
L
lwx1059628 已提交
260
});
L
lwx1059628 已提交
261 262
```

263 264 265 266
## audio.createTonePlayer<sup>9+</sup>

createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback&lt;TonePlayer&gt;): void

267
创建DTMF播放器。使用callback方式异步返回结果。
268 269 270

**系统能力:** SystemCapability.Multimedia.Audio.Tone

271 272
**系统接口:** 该接口为系统接口

273
**参数:**
274 275 276

| 参数名   | 类型                                             | 必填 | 说明            |
| -------- | ----------------------------------------------- | ---- | -------------- |
277 278
| options  | [AudioRendererInfo](#audiorendererinfo8)        | 是   | 配置音频渲染器信息。|
| callback | AsyncCallback<[TonePlayer](#toneplayer9)>       | 是   | 回调函数,回调返回音频渲染器对象。|
279 280 281 282 283 284

**示例:**

```js
import audio from '@ohos.multimedia.audio';

J
jiao_yanlin 已提交
285
let audioRendererInfo = {
J
jiao_yanlin 已提交
286
  content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
J
jiao_yanlin 已提交
287 288
  usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
  rendererFlags : 0
289
}
J
jiao_yanlin 已提交
290
let tonePlayer;
291

292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
audio.createTonePlayer(audioRendererInfo, (err, data) => {
  console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`);
  if (err) {
    console.error(`callback call createTonePlayer return error: ${err.message}`);
  } else {
    console.info(`callback call createTonePlayer return data: ${data}`);
    tonePlayer = data;
  }
});
```

## audio.createTonePlayer<sup>9+</sup>

createTonePlayer(options: AudioRendererInfo): Promise&lt;TonePlayer&gt;

307
创建DTMF播放器。使用Promise方式异步返回结果。
308 309 310

**系统能力:** SystemCapability.Multimedia.Audio.Tone

311 312
**系统接口:** 该接口为系统接口

313 314 315 316 317 318 319 320
**参数:**

| 参数名  | 类型                                           | 必填 | 说明         |
| :------ | :---------------------------------------------| :--- | :----------- |
| options | [AudioRendererInfo](#audiorendererinfo8)      | 是   | 配置音频渲染器信息。 |

**返回值:**

321 322 323
| 类型                                      | 说明                             |
| ----------------------------------------- | -------------------------------- |
| Promise<[TonePlayer](#toneplayer9)>       | Promise对象,返回音频渲染器对象。   |
324 325 326 327 328

**示例:**

```js
import audio from '@ohos.multimedia.audio';
329
let tonePlayer;
330
async function createTonePlayerBefore(){
J
jiao_yanlin 已提交
331
  let audioRendererInfo = {
J
jiao_yanlin 已提交
332 333
    content : audio.ContentType.CONTENT_TYPE_SONIFICATION,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
334
    rendererFlags : 0
335
  }
J
jiao_yanlin 已提交
336
  tonePlayer = await audio.createTonePlayer(audioRendererInfo);
337
}
338 339
```

Z
zengyawen 已提交
340
## AudioVolumeType
M
mamingshuai 已提交
341

342
枚举,音频流类型。
M
mamingshuai 已提交
343

344
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
345

346
| 名称                         | 值      | 说明       |
Z
zengyawen 已提交
347 348 349 350
| ---------------------------- | ------ | ---------- |
| VOICE_CALL<sup>8+</sup>      | 0      | 语音电话。 |
| RINGTONE                     | 2      | 铃声。     |
| MEDIA                        | 3      | 媒体。     |
L
li-yifan2 已提交
351 352
| ALARM<sup>10+</sup>          | 4      | 闹钟。     |
| ACCESSIBILITY<sup>10+</sup>  | 5      | 无障碍。   |
Z
zengyawen 已提交
353
| VOICE_ASSISTANT<sup>8+</sup> | 9      | 语音助手。 |
L
li-yifan2 已提交
354
| ULTRASONIC<sup>10+</sup>     | 10     | 超声波。<br/>此接口为系统接口。|
355
| ALL<sup>9+</sup>             | 100    | 所有公共音频流。<br/>此接口为系统接口。|
Z
zengyawen 已提交
356

357 358 359 360 361 362 363 364
## InterruptRequestResultType<sup>9+</sup>

枚举,音频中断请求结果类型。

**系统能力:** SystemCapability.Multimedia.Audio.Interrupt

**系统接口:** 该接口为系统接口

365
| 名称                         | 值      | 说明       |
366 367 368 369
| ---------------------------- | ------ | ---------- |
| INTERRUPT_REQUEST_GRANT      | 0      | 请求音频中断成功。 |
| INTERRUPT_REQUEST_REJECT     | 1      | 请求音频中断失败,可能具有较高优先级类型。 |

370
## InterruptMode<sup>9+</sup>
371

372
枚举,焦点模型。
373

374
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
375

376
| 名称                         | 值      | 说明       |
377
| ---------------------------- | ------ | ---------- |
378 379
| SHARE_MODE                   | 0      | 共享焦点模式。 |
| INDEPENDENT_MODE             | 1      | 独立焦点模式。 |
380

Z
zengyawen 已提交
381
## DeviceFlag
M
mamingshuai 已提交
382

383
枚举,可获取的设备种类。
M
mamingshuai 已提交
384

385
**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
386

387
| 名称                            |  值     | 说明                                              |
388
| ------------------------------- | ------ | ------------------------------------------------- |
389
| NONE_DEVICES_FLAG<sup>9+</sup>  | 0      | 无 <br/>此接口为系统接口。        |
390 391 392
| OUTPUT_DEVICES_FLAG             | 1      | 输出设备。 |
| INPUT_DEVICES_FLAG              | 2      | 输入设备。 |
| ALL_DEVICES_FLAG                | 3      | 所有设备。 |
393 394 395
| DISTRIBUTED_OUTPUT_DEVICES_FLAG<sup>9+</sup> | 4   | 分布式输出设备。<br/>此接口为系统接口。  |
| DISTRIBUTED_INPUT_DEVICES_FLAG<sup>9+</sup>  | 8   | 分布式输入设备。<br/>此接口为系统接口。  |
| ALL_DISTRIBUTED_DEVICES_FLAG<sup>9+</sup>    | 12  | 分布式输入和输出设备。<br/>此接口为系统接口。  |
Z
zengyawen 已提交
396 397

## DeviceRole
M
mamingshuai 已提交
398

399
枚举,设备角色。
M
mamingshuai 已提交
400

401
**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
402

403
| 名称          |  值    | 说明           |
Z
zengyawen 已提交
404 405 406
| ------------- | ------ | -------------- |
| INPUT_DEVICE  | 1      | 输入设备角色。 |
| OUTPUT_DEVICE | 2      | 输出设备角色。 |
M
mamingshuai 已提交
407

Z
zengyawen 已提交
408 409 410
## DeviceType

枚举,设备类型。
M
magekkkk 已提交
411

412
**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
413

414
| 名称                 | 值     | 说明                                                      |
415 416 417 418 419 420 421 422 423 424 425
| ---------------------| ------ | --------------------------------------------------------- |
| INVALID              | 0      | 无效设备。                                                |
| EARPIECE             | 1      | 听筒。                                                    |
| SPEAKER              | 2      | 扬声器。                                                  |
| WIRED_HEADSET        | 3      | 有线耳机,带麦克风。                                      |
| WIRED_HEADPHONES     | 4      | 有线耳机,无麦克风。                                      |
| BLUETOOTH_SCO        | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。      |
| BLUETOOTH_A2DP       | 8      | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 |
| MIC                  | 15     | 麦克风。                                                  |
| USB_HEADSET          | 22     | USB耳机,带麦克风。                                       |
| DEFAULT<sup>9+</sup> | 1000   | 默认设备类型。                                            |
M
magekkkk 已提交
426

427
## CommunicationDeviceType<sup>9+</sup>
428 429 430

枚举,用于通信的可用设备类型。

431
**系统能力:** SystemCapability.Multimedia.Audio.Communication
432

433
| 名称          | 值     | 说明          |
434 435 436
| ------------- | ------ | -------------|
| SPEAKER       | 2      | 扬声器。      |

Z
zengyawen 已提交
437
## AudioRingMode
438 439 440

枚举,铃声模式。

441
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
442

443
| 名称                |  值    | 说明       |
Z
zengyawen 已提交
444 445 446 447 448 449 450 451 452
| ------------------- | ------ | ---------- |
| RINGER_MODE_SILENT  | 0      | 静音模式。 |
| RINGER_MODE_VIBRATE | 1      | 震动模式。 |
| RINGER_MODE_NORMAL  | 2      | 响铃模式。 |

## AudioSampleFormat<sup>8+</sup>

枚举,音频采样格式。

453
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
454

455
| 名称                                |  值    | 说明                       |
456 457 458 459 460 461
| ---------------------------------- | ------ | -------------------------- |
| SAMPLE_FORMAT_INVALID              | -1     | 无效格式。                 |
| SAMPLE_FORMAT_U8                   | 0      | 无符号8位整数。            |
| SAMPLE_FORMAT_S16LE                | 1      | 带符号的16位整数,小尾数。 |
| SAMPLE_FORMAT_S24LE                | 2      | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
| SAMPLE_FORMAT_S32LE                | 3      | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
J
jiao_yanlin 已提交
462
| SAMPLE_FORMAT_F32LE<sup>9+</sup>   | 4      | 带符号的32位浮点数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。|
Z
zengyawen 已提交
463

464 465 466 467
## AudioErrors<sup>9+</sup>

枚举,音频错误码。

468
**系统能力:** SystemCapability.Multimedia.Audio.Core
469

470
| 名称                 | 值      | 说明         |
471 472 473 474 475 476
| ---------------------| --------| ----------------- |
| ERROR_INVALID_PARAM  | 6800101 | 无效入参。         |
| ERROR_NO_MEMORY      | 6800102 | 分配内存失败。     |
| ERROR_ILLEGAL_STATE  | 6800103 | 状态不支持。       |
| ERROR_UNSUPPORTED    | 6800104 | 参数选项不支持。    |
| ERROR_TIMEOUT        | 6800105 | 处理超时。         |
477
| ERROR_STREAM_LIMIT   | 6800201 | 音频流数量达到限制。|
478
| ERROR_SYSTEM         | 6800301 | 系统处理异常。     |
479

Z
zengyawen 已提交
480 481 482 483
## AudioChannel<sup>8+</sup>

枚举, 音频声道。

484
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
485

486
| 名称      |  值       | 说明     |
Z
zengyawen 已提交
487
| --------- | -------- | -------- |
J
jiaoyanlin3 已提交
488 489
| CHANNEL_1 | 0x1 << 0 | 第一声道。 |
| CHANNEL_2 | 0x1 << 1 | 第二声道。 |
Z
zengyawen 已提交
490 491 492

## AudioSamplingRate<sup>8+</sup>

J
jiao_yanlin 已提交
493
枚举,音频采样率,具体设备支持的采样率规格会存在差异。
Z
zengyawen 已提交
494

495
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
496

497
| 名称              |  值    | 说明            |
Z
zengyawen 已提交
498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514
| ----------------- | ------ | --------------- |
| SAMPLE_RATE_8000  | 8000   | 采样率为8000。  |
| SAMPLE_RATE_11025 | 11025  | 采样率为11025。 |
| SAMPLE_RATE_12000 | 12000  | 采样率为12000。 |
| SAMPLE_RATE_16000 | 16000  | 采样率为16000。 |
| SAMPLE_RATE_22050 | 22050  | 采样率为22050。 |
| SAMPLE_RATE_24000 | 24000  | 采样率为24000。 |
| SAMPLE_RATE_32000 | 32000  | 采样率为32000。 |
| SAMPLE_RATE_44100 | 44100  | 采样率为44100。 |
| SAMPLE_RATE_48000 | 48000  | 采样率为48000。 |
| SAMPLE_RATE_64000 | 64000  | 采样率为64000。 |
| SAMPLE_RATE_96000 | 96000  | 采样率为96000。 |

## AudioEncodingType<sup>8+</sup>

枚举,音频编码类型。

515
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
516

517
| 名称                  |  值    | 说明      |
Z
zengyawen 已提交
518 519 520 521
| --------------------- | ------ | --------- |
| ENCODING_TYPE_INVALID | -1     | 无效。    |
| ENCODING_TYPE_RAW     | 0      | PCM编码。 |

L
lwx1059628 已提交
522
## ContentType
Z
zengyawen 已提交
523 524 525

枚举,音频内容类型。

526
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
527

528
| 名称                               |  值    | 说明       |
L
lwx1059628 已提交
529 530 531 532 533
| ---------------------------------- | ------ | ---------- |
| CONTENT_TYPE_UNKNOWN               | 0      | 未知类型。 |
| CONTENT_TYPE_SPEECH                | 1      | 语音。     |
| CONTENT_TYPE_MUSIC                 | 2      | 音乐。     |
| CONTENT_TYPE_MOVIE                 | 3      | 电影。     |
534
| CONTENT_TYPE_SONIFICATION          | 4      | 通知音。   |
L
lwx1059628 已提交
535
| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5      | 铃声。     |
L
li-yifan2 已提交
536
| CONTENT_TYPE_ULTRASONIC<sup>10+</sup>| 9      | 超声波。<br/>此接口为系统接口。|
L
lwx1059628 已提交
537
## StreamUsage
Z
zengyawen 已提交
538 539 540

枚举,音频流使用类型。

541
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
542

543
| 名称                                      |  值    | 说明       |
544 545
| ------------------------------------------| ------ | ---------- |
| STREAM_USAGE_UNKNOWN                      | 0      | 未知类型。 |
S
songshenke 已提交
546 547
| STREAM_USAGE_MEDIA                        | 1      | 媒体。     |
| STREAM_USAGE_MUSIC<sup>10+</sup>          | 1      | 音乐。     |
L
li-yifan2 已提交
548
| STREAM_USAGE_VOICE_COMMUNICATION          | 2      | 语音通信。 | 
549
| STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3      | 语音播报。 |
L
li-yifan2 已提交
550
| STREAM_USAGE_ALARM<sup>10+</sup>          | 4      | 闹钟。     |
S
songshenke 已提交
551
| STREAM_USAGE_VOICE_MESSAGE<sup>10+</sup>  | 5      | 语音消息。 |
552
| STREAM_USAGE_NOTIFICATION_RINGTONE        | 6      | 通知铃声。 |
S
songshenke 已提交
553 554 555 556 557 558 559 560 561 562 563 564
| STREAM_USAGE_RINGTONE<sup>10+</sup>       | 6      | 铃声。     |
| STREAM_USAGE_NOTIFICATION<sup>10+</sup>   | 7      | 通知。     |
| STREAM_USAGE_ACCESSIBILITY<sup>10+</sup>  | 8      | 无障碍。   |
| STREAM_USAGE_SYSTEM<sup>10+</sup>         | 9      | 系统音(如屏幕锁定或按键音)。<br/>此接口为系统接口。 |
| STREAM_USAGE_MOVIE<sup>10+</sup>          | 10     | 电影或视频。|
| STREAM_USAGE_GAME<sup>10+</sup>           | 11     | 游戏音效。  |
| STREAM_USAGE_AUDIOBOOK<sup>10+</sup>      | 12     | 有声读物。  |
| STREAM_USAGE_NAVIGATION<sup>10+</sup>     | 13     | 导航。     |
| STREAM_USAGE_DTMF<sup>10+</sup>           | 14     | 拨号音。<br/>此接口为系统接口。 |
| STREAM_USAGE_ENFORCED_TONE<sup>10+</sup>  | 15     | 强制音(如相机快门音)。<br/>此接口为系统接口。 |
| STREAM_USAGE_ULTRASONIC<sup>10+</sup>     | 16     | 超声波。<br/>此接口为系统接口。 |

Z
zengyawen 已提交
565

566
## InterruptRequestType<sup>9+</sup>
567

568
枚举,音频中断请求类型。
569

570 571
**系统接口:** 该接口为系统接口

572
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
573

574
| 名称                               |  值     | 说明                       |
575 576
| ---------------------------------- | ------ | ------------------------- |
| INTERRUPT_REQUEST_TYPE_DEFAULT     | 0      |  默认类型,可中断音频请求。  |
577

Z
zengyawen 已提交
578 579 580 581
## AudioState<sup>8+</sup>

枚举,音频状态。

582
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
583

584
| 名称           | 值     | 说明             |
Z
zengyawen 已提交
585 586 587 588 589 590 591 592 593
| -------------- | ------ | ---------------- |
| STATE_INVALID  | -1     | 无效状态。       |
| STATE_NEW      | 0      | 创建新实例状态。 |
| STATE_PREPARED | 1      | 准备状态。       |
| STATE_RUNNING  | 2      | 可运行状态。     |
| STATE_STOPPED  | 3      | 停止状态。       |
| STATE_RELEASED | 4      | 释放状态。       |
| STATE_PAUSED   | 5      | 暂停状态。       |

Q
Qin Peng 已提交
594 595 596 597 598 599 600 601 602 603 604
## AudioEffectMode<sup>10+</sup>

枚举,音效模式。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

| 名称               | 值     | 说明       |
| ------------------ | ------ | ---------- |
| EFFECT_NONE        | 0      | 关闭音效。 |
| EFFECT_DEFAULT     | 1      | 默认音效。 |

Z
zengyawen 已提交
605 606
## AudioRendererRate<sup>8+</sup>

L
lwx1059628 已提交
607
枚举,音频渲染速度。
Z
zengyawen 已提交
608

609
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
610

611
| 名称               | 值     | 说明       |
Z
zengyawen 已提交
612 613 614 615 616
| ------------------ | ------ | ---------- |
| RENDER_RATE_NORMAL | 0      | 正常速度。 |
| RENDER_RATE_DOUBLE | 1      | 2倍速。    |
| RENDER_RATE_HALF   | 2      | 0.5倍数。  |

L
lwx1059628 已提交
617
## InterruptType
Z
zengyawen 已提交
618 619 620

枚举,中断类型。

621
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
622

623
| 名称                 |  值     | 说明                   |
Z
zengyawen 已提交
624 625 626 627
| -------------------- | ------ | ---------------------- |
| INTERRUPT_TYPE_BEGIN | 1      | 音频播放中断事件开始。 |
| INTERRUPT_TYPE_END   | 2      | 音频播放中断事件结束。 |

L
lwx1059628 已提交
628
## InterruptForceType<sup>9+</sup>
Z
zengyawen 已提交
629 630 631

枚举,强制打断类型。

632
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
633

634
| 名称            |  值    | 说明                                 |
Z
zengyawen 已提交
635 636 637 638
| --------------- | ------ | ------------------------------------ |
| INTERRUPT_FORCE | 0      | 由系统进行操作,强制打断音频播放。   |
| INTERRUPT_SHARE | 1      | 由应用进行操作,可以选择打断或忽略。 |

L
lwx1059628 已提交
639
## InterruptHint
Z
zengyawen 已提交
640 641 642

枚举,中断提示。

643
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
644

645
| 名称                               |  值     | 说明                                         |
L
lwx1059628 已提交
646 647 648 649 650 651 652
| ---------------------------------- | ------ | -------------------------------------------- |
| INTERRUPT_HINT_NONE<sup>8+</sup>   | 0      | 无提示。                                     |
| INTERRUPT_HINT_RESUME              | 1      | 提示音频恢复。                               |
| INTERRUPT_HINT_PAUSE               | 2      | 提示音频暂停。                               |
| INTERRUPT_HINT_STOP                | 3      | 提示音频停止。                               |
| INTERRUPT_HINT_DUCK                | 4      | 提示音频躲避。(躲避:音量减弱,而不会停止) |
| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5      | 提示音量恢复。                               |
Z
zengyawen 已提交
653 654 655 656 657

## AudioStreamInfo<sup>8+</sup>

音频流信息。

658
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
659

660 661 662 663 664 665
| 名称         | 类型                                               | 必填 | 说明               |
| ------------ | ------------------------------------------------- | ---- | ------------------ |
| samplingRate | [AudioSamplingRate](#audiosamplingrate8)          | 是   | 音频文件的采样率。 |
| channels     | [AudioChannel](#audiochannel8)                    | 是   | 音频文件的通道数。 |
| sampleFormat | [AudioSampleFormat](#audiosampleformat8)          | 是   | 音频采样格式。     |
| encodingType | [AudioEncodingType](#audioencodingtype8)          | 是   | 音频编码格式。     |
Z
zengyawen 已提交
666 667 668

## AudioRendererInfo<sup>8+</sup>

L
lwx1059628 已提交
669
音频渲染器信息。
Z
zengyawen 已提交
670

671
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
672

673
| 名称          | 类型                        | 必填  | 说明             |
L
lwx1059628 已提交
674
| ------------- | --------------------------- | ---- | ---------------- |
S
songshenke 已提交
675
| content       | [ContentType](#contenttype) | 否   | 媒体类型。<br>API version 8、9为必填参数,从API version 10开始,变更为可选参数。 |
L
lwx1059628 已提交
676 677
| usage         | [StreamUsage](#streamusage) | 是   | 音频流使用类型。 |
| rendererFlags | number                      | 是   | 音频渲染器标志。 |
Z
zengyawen 已提交
678

679 680 681 682
## InterruptResult<sup>9+</sup>

音频中断结果。

683
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
684 685 686 687 688 689 690 691

**系统接口:** 该接口为系统接口

| 名称          | 类型                                                            | 必填 | 说明             |
| --------------| -------------------------------------------------------------- | ---- | ---------------- |
| requestResult | [InterruptRequestResultType](#interruptrequestresulttype9)     | 是   | 表示音频请求中断类型。 |
| interruptNode | number                                                         | 是   | 音频请求中断的节点。 |

Z
zengyawen 已提交
692 693
## AudioRendererOptions<sup>8+</sup>

L
lwx1059628 已提交
694
音频渲染器选项信息。
Z
zengyawen 已提交
695

696
| 名称         | 类型                                     | 必填  | 说明             |
Z
zengyawen 已提交
697
| ------------ | ---------------------------------------- | ---- | ---------------- |
Z
zhanglimei 已提交
698 699
| streamInfo   | [AudioStreamInfo](#audiostreaminfo8)     | 是   | 表示音频流信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer |
| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是   | 表示渲染器信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer |
700 701 702 703 704 705 706 707 708 709 710 711
| privacyType<sup>10+</sup> | [AudioPrivacyType](#audioprivacytype) | 否 | 表示音频流是否可以被其他应用录制,默认值为0。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |

## AudioPrivacyType<sup>10+</sup><a name="audioprivacytype"></a>

枚举类型,用于标识对应播放音频流是否支持被其他应用录制。

**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture

| 名称                 | 值   | 说明                             |
| -------------------- | ---- | -------------------------------- |
| PRIVACY_TYPE_PUBLIC  | 0    | 表示音频流可以被其他应用录制。   |
| PRIVACY_TYPE_PRIVATE | 1    | 表示音频流不可以被其他应用录制。 |
Z
zengyawen 已提交
712

L
lwx1059628 已提交
713
## InterruptEvent<sup>9+</sup>
Z
zengyawen 已提交
714 715 716

播放中断时,应用接收的中断事件。

717
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
718

719
| 名称      | 类型                                       |必填   | 说明                                 |
Z
zengyawen 已提交
720
| --------- | ------------------------------------------ | ---- | ------------------------------------ |
L
lwx1059628 已提交
721 722 723
| eventType | [InterruptType](#interrupttype)            | 是   | 中断事件类型,开始或是结束。         |
| forceType | [InterruptForceType](#interruptforcetype9) | 是   | 操作是由系统执行或是由应用程序执行。 |
| hintType  | [InterruptHint](#interrupthint)            | 是   | 中断提示。                           |
Z
zengyawen 已提交
724

J
jiaoyanlin3 已提交
725
## VolumeEvent<sup>9+</sup>
Z
zengyawen 已提交
726 727 728

音量改变时,应用接收的事件。

729
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
730

731
| 名称       | 类型                                | 必填   | 说明                                                     |
Z
zengyawen 已提交
732
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
J
jiaoyanlin3 已提交
733 734 735 736 737
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                               |
| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。     |
| updateUi   | boolean                             | 是   | 在UI中显示音量变化。                                        |
| volumeGroupId | number                           | 是   | 音量组id。可用于getGroupManager入参。<br/>此接口为系统接口。  |
| networkId  | string                              | 是   | 网络id。<br/>此接口为系统接口。                             |
W
wangtao 已提交
738

Z
zengyawen 已提交
739 740 741 742
## MicStateChangeEvent<sup>9+</sup>

麦克风状态变化时,应用接收的事件。

743
**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
744 745

| 名称       | 类型                                | 必填 | 说明                                                     |
Z
zengyawen 已提交
746
| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- |
Z
zengyawen 已提交
747 748
| mute | boolean | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。          |

W
wangtao 已提交
749 750 751 752
## ConnectType<sup>9+</sup>

枚举,设备连接类型。

J
jiao_yanlin 已提交
753 754
**系统接口:** 该接口为系统接口

755
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
756

757
| 名称                            |  值     | 说明                   |
W
wangtao 已提交
758 759 760 761
| :------------------------------ | :----- | :--------------------- |
| CONNECT_TYPE_LOCAL              | 1      | 本地设备。         |
| CONNECT_TYPE_DISTRIBUTED        | 2      | 分布式设备。            |

762 763 764 765 766 767 768 769
## VolumeGroupInfos<sup>9+</sup>

音量组信息,数组类型,为[VolumeGroupInfo](#volumegroupinfo9)的数组,只读。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume

W
wangtao 已提交
770 771 772 773
## VolumeGroupInfo<sup>9+</sup>

音量组信息。

774
**系统接口:** 该接口为系统接口
W
wangtao 已提交
775

776
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
777 778 779 780 781 782

| 名称                        | 类型                       | 可读 | 可写 | 说明       |
| -------------------------- | -------------------------- | ---- | ---- | ---------- |
| networkId<sup>9+</sup>     | string                     | 是   | 否   | 组网络id。  |
| groupId<sup>9+</sup>       | number                     | 是   | 否   | 组设备组id。 |
| mappingId<sup>9+</sup>     | number                     | 是   | 否   | 组映射id。 |
783
| groupName<sup>9+</sup>     | string                     | 是   | 否   | 组名。 |
784
| type<sup>9+</sup>          | [ConnectType](#connecttype9)| 是   | 否   | 连接设备类型。 |
W
wangtao 已提交
785

L
lwx1059628 已提交
786 787 788 789
## DeviceChangeAction

描述设备连接状态变化和设备信息。

790
**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
791 792 793

| 名称              | 类型                                              | 必填 | 说明               |
| :---------------- | :------------------------------------------------ | :--- | :----------------- |
794 795
| type              | [DeviceChangeType](#devicechangetype)             | 是   | 设备连接状态变化。 |
| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是   | 设备信息。         |
L
lwx1059628 已提交
796 797 798 799 800

## DeviceChangeType

枚举,设备连接状态变化。

801
**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
802

803 804 805 806
| 名称       | 值   | 说明           |
| :--------- | :--- | :------------- |
| CONNECT    | 0    | 设备连接。     |
| DISCONNECT | 1    | 断开设备连接。 |
L
lwx1059628 已提交
807

Z
zengyawen 已提交
808 809 810 811
## AudioCapturerOptions<sup>8+</sup>

音频采集器选项信息。

812 813
| 名称                                | 类型                                                      | 必填 | 说明                                                         |
| ----------------------------------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
814 815
| streamInfo                          | [AudioStreamInfo](#audiostreaminfo8)                      | 是   | 表示音频流信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer   |
| capturerInfo                        | [AudioCapturerInfo](#audiocapturerinfo)                   | 是   | 表示采集器信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer        |
816
| playbackCaptureConfig<sup>10+</sup> | [AudioPlaybackCaptureConfig](#audioplaybackcaptureconfig) | 否   | 音频内录的配置信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |
Z
zengyawen 已提交
817

L
lwx1059628 已提交
818 819 820 821 822 823 824 825 826 827 828 829 830 831 832
## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a>

描述音频采集器信息。

**系统能力:** SystemCapability.Multimedia.Audio.Core

| 名称          | 类型                      | 必填 | 说明             |
| :------------ | :------------------------ | :--- | :--------------- |
| source        | [SourceType](#sourcetype) | 是   | 音源类型。       |
| capturerFlags | number                    | 是   | 音频采集器标志。 |

## SourceType<sup>8+</sup><a name="sourcetype"></a>

枚举,音源类型。

833
| 名称                                         |  值     | 说明                   |
834
| :------------------------------------------- | :----- | :--------------------- |
835 836 837
| SOURCE_TYPE_INVALID                          | -1     | 无效的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core  |
| SOURCE_TYPE_MIC                              | 0      | Mic音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core |
| SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup>   | 1      | 语音识别源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core  |
838
| SOURCE_TYPE_PLAYBACK_CAPTURE<sup>10+</sup> | 2 | 播放音频流(内录)录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture |
839
| SOURCE_TYPE_VOICE_COMMUNICATION              | 7      | 语音通话场景的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core |
L
lwx1059628 已提交
840

841 842 843 844 845 846 847 848 849 850 851 852
## AudioPlaybackCaptureConfig<sup>10+</sup><a name="audioplaybackcaptureconfig"></a>

播放音频流录制(内录)的配置信息。

**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture

| 名称          | 类型                                          | 必填 | 说明                             |
| ------------- | --------------------------------------------- | ---- | -------------------------------- |
| filterOptions | [CaptureFilterOptions](#capturefilteroptions) | 是   | 需要录制的播放音频流的筛选信息。 |

## CaptureFilterOptions<sup>10+</sup><a name="capturefilteroptions"></a>

Z
zhanglimei 已提交
853
待录制的播放音频流的筛选信息。
854 855 856 857 858 859 860 861 862 863 864

**需要权限:** ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO

当应用指定录制的StreamUsage值中包含SOURCE_TYPE_VOICE_COMMUNICATION的播放音频流时,需要校验应用是否拥有该权限。

**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture

| 名称   | 类型                               | 必填 | 说明                                                         |
| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ |
| usages | Array<[StreamUsage](#streamusage)> | 是   | 指定需要录制的播放音频流的[StreamUsage](#streamusage)类型。可同时指定0个或多个StreamUsage。Array为空时,默认录制StreamUsage为STREAM_USAGE_MEDIA的播放音频流。 |

L
lwx1059628 已提交
865 866 867 868
## AudioScene<sup>8+</sup><a name="audioscene"></a>

枚举,音频场景。

869
**系统能力:** SystemCapability.Multimedia.Audio.Communication
L
lwx1059628 已提交
870

871
| 名称                   |  值     | 说明                                          |
Z
zengyawen 已提交
872 873
| :--------------------- | :----- | :-------------------------------------------- |
| AUDIO_SCENE_DEFAULT    | 0      | 默认音频场景。                                |
874 875
| AUDIO_SCENE_RINGING    | 1      | 响铃模式。<br/>此接口为系统接口。 |
| AUDIO_SCENE_PHONE_CALL | 2      | 电话模式。<br/>此接口为系统接口。 |
Z
zengyawen 已提交
876
| AUDIO_SCENE_VOICE_CHAT | 3      | 语音聊天模式。                                |
L
lwx1059628 已提交
877

W
wangzx0705 已提交
878
## VolumeAdjustType<sup>10+</sup>
W
wangzx0705 已提交
879

W
wangzx0705 已提交
880
枚举,音量调节类型。
W
wangzx0705 已提交
881 882 883 884 885

**系统能力:** SystemCapability.Multimedia.Audio.Volume

| 名称                   |  值     | 说明                                          |
| :--------------------- | :----- | :-------------------------------------------- |
886 887
| VOLUME_UP              | 0      | 向上调节音量。<br/>此接口为系统接口。   |
| VOLUME_DOWN            | 1      | 向下调节音量。<br/>此接口为系统接口。   |
W
wangzx0705 已提交
888

Z
zengyawen 已提交
889
## AudioManager
M
mamingshuai 已提交
890

Z
zengyawen 已提交
891
管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。
M
mamingshuai 已提交
892

893
### setAudioParameter
M
mamingshuai 已提交
894

895
setAudioParameter(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void
M
mamingshuai 已提交
896

897
音频参数设置,使用callback方式异步返回结果。
898

899
本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
900

901
**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
902

903
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
904

M
mamingshuai 已提交
905 906
**参数:**

907 908 909 910 911
| 参数名   | 类型                      | 必填 | 说明                     |
| -------- | ------------------------- | ---- | ------------------------ |
| key      | string                    | 是   | 被设置的音频参数的键。   |
| value    | string                    | 是   | 被设置的音频参数的值。   |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。 |
912

M
mamingshuai 已提交
913 914
**示例:**

J
jiao_yanlin 已提交
915
```js
916
audioManager.setAudioParameter('key_example', 'value_example', (err) => {
J
jiao_yanlin 已提交
917
  if (err) {
918
    console.error(`Failed to set the audio parameter. ${err}`);
J
jiao_yanlin 已提交
919 920
    return;
  }
921
  console.info('Callback invoked to indicate a successful setting of the audio parameter.');
L
lwx1059628 已提交
922
});
M
mamingshuai 已提交
923 924
```

925
### setAudioParameter
M
mamingshuai 已提交
926

927
setAudioParameter(key: string, value: string): Promise&lt;void&gt;
M
mamingshuai 已提交
928

929
音频参数设置,使用Promise方式异步返回结果。
930

931
本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
932

933
**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS
934

935
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
936

M
mamingshuai 已提交
937 938
**参数:**

939 940 941 942
| 参数名 | 类型   | 必填 | 说明                   |
| ------ | ------ | ---- | ---------------------- |
| key    | string | 是   | 被设置的音频参数的键。 |
| value  | string | 是   | 被设置的音频参数的值。 |
M
mamingshuai 已提交
943 944 945

**返回值:**

946 947 948
| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
M
mamingshuai 已提交
949 950 951

**示例:**

J
jiao_yanlin 已提交
952
```js
953 954
audioManager.setAudioParameter('key_example', 'value_example').then(() => {
  console.info('Promise returned to indicate a successful setting of the audio parameter.');
L
lwx1059628 已提交
955
});
M
mamingshuai 已提交
956 957
```

958
### getAudioParameter
Z
zengyawen 已提交
959

960
getAudioParameter(key: string, callback: AsyncCallback&lt;string&gt;): void
M
mamingshuai 已提交
961

962
获取指定音频参数值,使用callback方式异步返回结果。
M
mamingshuai 已提交
963

964
本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
965

966
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
967

M
mamingshuai 已提交
968 969
**参数:**

970 971 972 973
| 参数名   | 类型                        | 必填 | 说明                         |
| -------- | --------------------------- | ---- | ---------------------------- |
| key      | string                      | 是   | 待获取的音频参数的键。       |
| callback | AsyncCallback&lt;string&gt; | 是   | 回调返回获取的音频参数的值。 |
974

M
mamingshuai 已提交
975 976
**示例:**

J
jiao_yanlin 已提交
977
```js
978
audioManager.getAudioParameter('key_example', (err, value) => {
J
jiao_yanlin 已提交
979
  if (err) {
980
    console.error(`Failed to obtain the value of the audio parameter. ${err}`);
J
jiao_yanlin 已提交
981 982
    return;
  }
983
  console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`);
L
lwx1059628 已提交
984
});
M
mamingshuai 已提交
985 986
```

987
### getAudioParameter
Z
zengyawen 已提交
988

989
getAudioParameter(key: string): Promise&lt;string&gt;
M
mamingshuai 已提交
990

991
获取指定音频参数值,使用Promise方式异步返回结果。
M
mamingshuai 已提交
992

993
本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。
994

995
**系统能力:** SystemCapability.Multimedia.Audio.Core
Z
zengyawen 已提交
996

M
mamingshuai 已提交
997 998
**参数:**

999 1000 1001
| 参数名 | 类型   | 必填 | 说明                   |
| ------ | ------ | ---- | ---------------------- |
| key    | string | 是   | 待获取的音频参数的键。 |
M
mamingshuai 已提交
1002 1003 1004

**返回值:**

1005 1006 1007
| 类型                  | 说明                                |
| --------------------- | ----------------------------------- |
| Promise&lt;string&gt; | Promise回调返回获取的音频参数的值。 |
M
mamingshuai 已提交
1008 1009 1010

**示例:**

J
jiao_yanlin 已提交
1011
```js
1012 1013
audioManager.getAudioParameter('key_example').then((value) => {
  console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`);
L
lwx1059628 已提交
1014
});
M
mamingshuai 已提交
1015 1016
```

1017
### setAudioScene<sup>8+</sup>
Z
zengyawen 已提交
1018

1019
setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void
M
mamingshuai 已提交
1020

1021
设置音频场景模式,使用callback方式异步返回结果。
M
mamingshuai 已提交
1022

1023
**系统接口:** 该接口为系统接口
1024

1025
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1026

M
mamingshuai 已提交
1027 1028
**参数:**

1029 1030 1031 1032
| 参数名   | 类型                                 | 必填 | 说明                 |
| :------- | :----------------------------------- | :--- | :------------------- |
| scene    | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。       |
| callback | AsyncCallback<void\>                 | 是   | 用于返回结果的回调。 |
1033

M
mamingshuai 已提交
1034 1035
**示例:**

J
jiao_yanlin 已提交
1036
```js
1037
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err) => {
J
jiao_yanlin 已提交
1038
  if (err) {
1039
    console.error(`Failed to set the audio scene mode.​ ${err}`);
J
jiao_yanlin 已提交
1040 1041
    return;
  }
1042
  console.info('Callback invoked to indicate a successful setting of the audio scene mode.');
L
lwx1059628 已提交
1043
});
M
mamingshuai 已提交
1044 1045
```

1046
### setAudioScene<sup>8+</sup>
Z
zengyawen 已提交
1047

1048
setAudioScene\(scene: AudioScene\): Promise<void\>
M
mamingshuai 已提交
1049

1050
设置音频场景模式,使用Promise方式返回异步结果。
M
mamingshuai 已提交
1051

1052
**系统接口:** 该接口为系统接口
1053

1054
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1055

M
mamingshuai 已提交
1056 1057
**参数:**

1058 1059 1060
| 参数名 | 类型                                 | 必填 | 说明           |
| :----- | :----------------------------------- | :--- | :------------- |
| scene  | <a href="#audioscene">AudioScene</a> | 是   | 音频场景模式。 |
M
mamingshuai 已提交
1061 1062 1063

**返回值:**

1064 1065 1066
| 类型           | 说明                 |
| :------------- | :------------------- |
| Promise<void\> | 用于返回结果的回调。 |
M
mamingshuai 已提交
1067 1068 1069

**示例:**

J
jiao_yanlin 已提交
1070
```js
1071 1072 1073 1074
audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => {
  console.info('Promise returned to indicate a successful setting of the audio scene mode.');
}).catch ((err) => {
  console.error(`Failed to set the audio scene mode ${err}`);
L
lwx1059628 已提交
1075
});
M
mamingshuai 已提交
1076 1077
```

1078
### getAudioScene<sup>8+</sup>
M
mamingshuai 已提交
1079

1080
getAudioScene\(callback: AsyncCallback<AudioScene\>\): void
M
mamingshuai 已提交
1081

1082
获取音频场景模式,使用callback方式返回异步结果。
1083

1084
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1085

M
mamingshuai 已提交
1086 1087
**参数:**

1088 1089 1090
| 参数名   | 类型                                                | 必填 | 说明                         |
| :------- | :-------------------------------------------------- | :--- | :--------------------------- |
| callback | AsyncCallback<<a href="#audioscene">AudioScene</a>> | 是   | 用于返回音频场景模式的回调。 |
1091

M
mamingshuai 已提交
1092 1093
**示例:**

J
jiao_yanlin 已提交
1094
```js
1095
audioManager.getAudioScene((err, value) => {
J
jiao_yanlin 已提交
1096
  if (err) {
1097
    console.error(`Failed to obtain the audio scene mode.​ ${err}`);
J
jiao_yanlin 已提交
1098 1099
    return;
  }
1100
  console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`);
L
lwx1059628 已提交
1101
});
M
mamingshuai 已提交
1102 1103
```

1104
### getAudioScene<sup>8+</sup>
1105

1106
getAudioScene\(\): Promise<AudioScene\>
Z
zengyawen 已提交
1107

1108
获取音频场景模式,使用Promise方式返回异步结果。
M
mamingshuai 已提交
1109

1110
**系统能力:** SystemCapability.Multimedia.Audio.Communication
M
mamingshuai 已提交
1111 1112 1113

**返回值:**

1114 1115 1116
| 类型                                          | 说明                         |
| :-------------------------------------------- | :--------------------------- |
| Promise<<a href="#audioscene">AudioScene</a>> | 用于返回音频场景模式的回调。 |
M
mamingshuai 已提交
1117 1118 1119

**示例:**

J
jiao_yanlin 已提交
1120
```js
1121 1122 1123 1124
audioManager.getAudioScene().then((value) => {
  console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`);
}).catch ((err) => {
  console.error(`Failed to obtain the audio scene mode ${err}`);
L
lwx1059628 已提交
1125
});
Z
zengyawen 已提交
1126 1127
```

1128
### getVolumeManager<sup>9+</sup>
1129

1130
getVolumeManager(): AudioVolumeManager
1131

1132
获取音频音量管理器。
1133

Z
zengyawen 已提交
1134 1135
**系统能力:** SystemCapability.Multimedia.Audio.Volume

Z
zengyawen 已提交
1136 1137
**示例:**

J
jiao_yanlin 已提交
1138
```js
1139
let audioVolumeManager = audioManager.getVolumeManager();
1140 1141
```

1142
### getStreamManager<sup>9+</sup>
1143

1144
getStreamManager(): AudioStreamManager
1145

1146
获取音频流管理器。
1147

1148
**系统能力:** SystemCapability.Multimedia.Audio.Core
1149

1150
**示例:**
1151

1152 1153 1154
```js
let audioStreamManager = audioManager.getStreamManager();
```
Z
zengyawen 已提交
1155

1156
### getRoutingManager<sup>9+</sup>
1157

1158
getRoutingManager(): AudioRoutingManager
1159

1160
获取音频路由设备管理器。
1161

1162
**系统能力:** SystemCapability.Multimedia.Audio.Device
1163 1164 1165

**示例:**

J
jiao_yanlin 已提交
1166
```js
1167
let audioRoutingManager = audioManager.getRoutingManager();
1168 1169
```

1170
### setVolume<sup>(deprecated)</sup>
1171

1172
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
1173

1174
设置指定流的音量,使用callback方式异步返回结果。
Z
zengyawen 已提交
1175

1176
> **说明:**
Z
zengyawen 已提交
1177
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1178

1179
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1180

1181
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
1182

1183
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1184

Z
zengyawen 已提交
1185
**参数:**
1186

1187 1188 1189 1190 1191
| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
1192 1193 1194

**示例:**

J
jiao_yanlin 已提交
1195
```js
1196
audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
J
jiao_yanlin 已提交
1197
  if (err) {
1198
    console.error(`Failed to set the volume. ${err}`);
J
jiao_yanlin 已提交
1199 1200
    return;
  }
1201
  console.info('Callback invoked to indicate a successful volume setting.');
L
lwx1059628 已提交
1202
});
1203 1204
```

1205
### setVolume<sup>(deprecated)</sup>
1206

1207
setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
1208

1209
设置指定流的音量,使用Promise方式异步返回结果。
1210

1211
> **说明:**
Z
zengyawen 已提交
1212
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。
1213

1214
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1215

1216 1217 1218 1219 1220 1221 1222 1223 1224 1225
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
Z
zengyawen 已提交
1226

1227 1228
**返回值:**

1229 1230 1231
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1232 1233 1234

**示例:**

J
jiao_yanlin 已提交
1235
```js
1236
audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
1237
  console.info('Promise returned to indicate a successful volume setting.');
L
lwx1059628 已提交
1238
});
1239 1240
```

1241
### getVolume<sup>(deprecated)</sup>
1242

1243
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1244

1245
获取指定流的音量,使用callback方式异步返回结果。
1246

1247 1248 1249
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。

1250
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1251

1252 1253
**参数:**

1254 1255 1256 1257
| 参数名     | 类型                                | 必填 | 说明               |
| ---------- | ----------------------------------- | ---- | ------------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
1258 1259 1260

**示例:**

J
jiao_yanlin 已提交
1261
```js
1262
audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
J
jiao_yanlin 已提交
1263
  if (err) {
1264
    console.error(`Failed to obtain the volume. ${err}`);
J
jiao_yanlin 已提交
1265 1266
    return;
  }
1267
  console.info('Callback invoked to indicate that the volume is obtained.');
L
lwx1059628 已提交
1268
});
1269 1270
```

1271
### getVolume<sup>(deprecated)</sup>
1272

1273
getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1274

1275
获取指定流的音量,使用Promise方式异步返回结果。
1276

1277 1278 1279
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。

1280
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1281

1282 1283
**参数:**

1284 1285 1286
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1287 1288 1289

**返回值:**

1290 1291 1292
| 类型                  | 说明                      |
| --------------------- | ------------------------- |
| Promise&lt;number&gt; | Promise回调返回音量大小。 |
1293 1294 1295

**示例:**

J
jiao_yanlin 已提交
1296
```js
1297 1298
audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promise returned to indicate that the volume is obtained ${value} .`);
L
lwx1059628 已提交
1299
});
1300 1301
```

1302
### getMinVolume<sup>(deprecated)</sup>
1303

1304
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1305

1306
获取指定流的最小音量,使用callback方式异步返回结果。
1307

1308 1309 1310
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。

1311
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1312

1313 1314
**参数:**

1315 1316 1317 1318
| 参数名     | 类型                                | 必填 | 说明               |
| ---------- | ----------------------------------- | ---- | ------------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
1319 1320 1321

**示例:**

J
jiao_yanlin 已提交
1322
```js
1323
audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
J
jiao_yanlin 已提交
1324
  if (err) {
1325
    console.error(`Failed to obtain the minimum volume. ${err}`);
J
jiao_yanlin 已提交
1326 1327
    return;
  }
1328
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
L
lwx1059628 已提交
1329
});
1330 1331
```

1332
### getMinVolume<sup>(deprecated)</sup>
1333

1334
getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1335

1336
获取指定流的最小音量,使用Promise方式异步返回结果。
1337

1338 1339 1340
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。

1341
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1342

1343 1344
**参数:**

1345 1346 1347
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1348 1349 1350

**返回值:**

1351 1352 1353
| 类型                  | 说明                      |
| --------------------- | ------------------------- |
| Promise&lt;number&gt; | Promise回调返回最小音量。 |
1354 1355 1356

**示例:**

J
jiao_yanlin 已提交
1357
```js
1358 1359
audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`);
L
lwx1059628 已提交
1360
});
1361 1362
```

1363
### getMaxVolume<sup>(deprecated)</sup>
1364

1365
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
1366

1367
获取指定流的最大音量,使用callback方式异步返回结果。
1368

1369 1370 1371
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。

1372
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1373

1374 1375
**参数:**

1376 1377 1378 1379
| 参数名     | 类型                                | 必填 | 说明                   |
| ---------- | ----------------------------------- | ---- | ---------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
1380 1381

**示例:**
1382

J
jiao_yanlin 已提交
1383
```js
1384
audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
J
jiao_yanlin 已提交
1385
  if (err) {
1386
    console.error(`Failed to obtain the maximum volume. ${err}`);
J
jiao_yanlin 已提交
1387 1388
    return;
  }
1389
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
L
lwx1059628 已提交
1390
});
1391 1392
```

1393
### getMaxVolume<sup>(deprecated)</sup>
1394

1395
getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
1396

1397
获取指定流的最大音量,使用Promise方式异步返回结果。
1398

1399 1400 1401
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。

1402
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1403

1404 1405
**参数:**

1406 1407 1408
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1409 1410 1411

**返回值:**

1412 1413 1414
| 类型                  | 说明                          |
| --------------------- | ----------------------------- |
| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
1415 1416 1417

**示例:**

J
jiao_yanlin 已提交
1418
```js
1419
audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
1420
  console.info('Promised returned to indicate that the maximum volume is obtained.');
L
lwx1059628 已提交
1421
});
1422 1423
```

1424
### mute<sup>(deprecated)</sup>
Z
zengyawen 已提交
1425

1426
mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1427

1428
设置指定音量流静音,使用callback方式异步返回结果。
1429

1430
> **说明:**
Z
zengyawen 已提交
1431
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1432

1433
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1434

1435 1436
**参数:**

1437 1438 1439 1440 1441
| 参数名     | 类型                                | 必填 | 说明                                  |
| ---------- | ----------------------------------- | ---- | ------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
1442 1443 1444

**示例:**

J
jiao_yanlin 已提交
1445
```js
1446
audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
J
jiao_yanlin 已提交
1447
  if (err) {
1448
    console.error(`Failed to mute the stream. ${err}`);
J
jiao_yanlin 已提交
1449 1450
    return;
  }
1451
  console.info('Callback invoked to indicate that the stream is muted.');
L
lwx1059628 已提交
1452
});
1453 1454
```

1455
### mute<sup>(deprecated)</sup>
Z
zengyawen 已提交
1456

1457
mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
1458

1459
设置指定音量流静音,使用Promise方式异步返回结果。
1460

1461
> **说明:**
Z
zengyawen 已提交
1462
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。
1463

1464
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1465

1466 1467
**参数:**

1468 1469 1470 1471
| 参数名     | 类型                                | 必填 | 说明                                  |
| ---------- | ----------------------------------- | ---- | ------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
1472 1473 1474

**返回值:**

1475 1476 1477
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
1478 1479 1480

**示例:**

1481

J
jiao_yanlin 已提交
1482
```js
1483
audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
1484
  console.info('Promise returned to indicate that the stream is muted.');
L
lwx1059628 已提交
1485
});
1486 1487
```

1488
### isMute<sup>(deprecated)</sup>
1489

1490
isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
1491

1492
获取指定音量流是否被静音,使用callback方式异步返回结果。
1493

1494 1495 1496
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。

1497
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1498

1499 1500
**参数:**

1501 1502 1503 1504
| 参数名     | 类型                                | 必填 | 说明                                            |
| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
1505 1506 1507

**示例:**

J
jiao_yanlin 已提交
1508
```js
1509
audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
J
jiao_yanlin 已提交
1510
  if (err) {
1511
    console.error(`Failed to obtain the mute status. ${err}`);
J
jiao_yanlin 已提交
1512 1513
    return;
  }
1514
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`);
L
lwx1059628 已提交
1515
});
1516 1517
```

1518
### isMute<sup>(deprecated)</sup>
1519

1520
isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
1521

1522
获取指定音量流是否被静音,使用Promise方式异步返回结果。
1523

1524 1525 1526
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。

1527
**系统能力:** SystemCapability.Multimedia.Audio.Volume
Z
zengyawen 已提交
1528

1529 1530
**参数:**

1531 1532 1533
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
1534 1535 1536

**返回值:**

1537 1538 1539
| 类型                   | 说明                                                   |
| ---------------------- | ------------------------------------------------------ |
| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
1540 1541 1542

**示例:**

J
jiao_yanlin 已提交
1543
```js
1544
audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
1545
  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
L
lwx1059628 已提交
1546
});
1547 1548
```

1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610
### isActive<sup>(deprecated)</sup>

isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void

获取指定音量流是否为活跃状态,使用callback方式异步返回结果。

> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                              |
| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                      |
| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |

**示例:**

```js
audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the active status of the stream. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
});
```

### isActive<sup>(deprecated)</sup>

isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;

获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。

> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |

**返回值:**

| 类型                   | 说明                                                     |
| ---------------------- | -------------------------------------------------------- |
| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |

**示例:**

```js
audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
});
```

### setRingerMode<sup>(deprecated)</sup>
Z
zengyawen 已提交
1611

1612
setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
1613

1614
设置铃声模式,使用callback方式异步返回结果。
1615

1616
> **说明:**
Z
zengyawen 已提交
1617
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。
1618

1619
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1620

1621
仅在静音和非静音状态切换时需要该权限。
1622

1623
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1624

1625 1626
**参数:**

1627 1628 1629 1630
| 参数名   | 类型                            | 必填 | 说明                     |
| -------- | ------------------------------- | ---- | ------------------------ |
| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
1631 1632 1633

**示例:**

J
jiao_yanlin 已提交
1634
```js
1635
audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
J
jiao_yanlin 已提交
1636
  if (err) {
1637
    console.error(`Failed to set the ringer mode.​ ${err}`);
J
jiao_yanlin 已提交
1638 1639
    return;
  }
1640
  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
L
lwx1059628 已提交
1641
});
1642 1643
```

1644
### setRingerMode<sup>(deprecated)</sup>
Z
zengyawen 已提交
1645

1646
setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
1647

1648
设置铃声模式,使用Promise方式异步返回结果。
1649

1650
> **说明:**
Z
zengyawen 已提交
1651 1652
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。

1653

1654
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
1655

1656
仅在静音和非静音状态切换时需要该权限。
1657

1658
**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1659

1660 1661
**参数:**

1662 1663 1664
| 参数名 | 类型                            | 必填 | 说明           |
| ------ | ------------------------------- | ---- | -------------- |
| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
1665 1666 1667

**返回值:**

Z
zengyawen 已提交
1668 1669
| 类型                | 说明                            |
| ------------------- | ------------------------------- |
Z
zengyawen 已提交
1670
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1671 1672 1673

**示例:**

J
jiao_yanlin 已提交
1674
```js
1675
audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
1676
  console.info('Promise returned to indicate a successful setting of the ringer mode.');
L
lwx1059628 已提交
1677
});
1678 1679
```

1680
### getRingerMode<sup>(deprecated)</sup>
1681

1682
getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
1683

1684
获取铃声模式,使用callback方式异步返回结果。
1685

1686 1687 1688 1689
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1690

1691 1692
**参数:**

1693 1694 1695
| 参数名   | 类型                                                 | 必填 | 说明                     |
| -------- | ---------------------------------------------------- | ---- | ------------------------ |
| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
1696 1697 1698

**示例:**

J
jiao_yanlin 已提交
1699
```js
1700
audioManager.getRingerMode((err, value) => {
J
jiao_yanlin 已提交
1701
  if (err) {
1702
    console.error(`Failed to obtain the ringer mode.​ ${err}`);
J
jiao_yanlin 已提交
1703 1704
    return;
  }
1705
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
L
lwx1059628 已提交
1706
});
1707 1708
```

1709
### getRingerMode<sup>(deprecated)</sup>
1710

1711
getRingerMode(): Promise&lt;AudioRingMode&gt;
1712

1713
获取铃声模式,使用Promise方式异步返回结果。
1714

1715 1716 1717 1718
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Communication
Z
zengyawen 已提交
1719

1720 1721
**返回值:**

1722 1723 1724
| 类型                                           | 说明                            |
| ---------------------------------------------- | ------------------------------- |
| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
1725 1726 1727

**示例:**

J
jiao_yanlin 已提交
1728
```js
1729
audioManager.getRingerMode().then((value) => {
1730
  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
L
lwx1059628 已提交
1731
});
1732 1733
```

1734
### getDevices<sup>(deprecated)</sup>
Z
zengyawen 已提交
1735

1736
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
1737

1738
获取音频设备列表,使用callback方式异步返回结果。
Z
zengyawen 已提交
1739

1740 1741 1742 1743
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
1744 1745 1746

**参数:**

1747 1748 1749 1750
| 参数名     | 类型                                                         | 必填 | 说明                 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
1751

1752 1753 1754 1755 1756 1757 1758 1759 1760 1761
**示例:**
```js
audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
});
```
1762

1763
### getDevices<sup>(deprecated)</sup>
1764

1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784
getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;

获取音频设备列表,使用Promise方式异步返回结果。

> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名     | 类型                      | 必填 | 说明             |
| ---------- | ------------------------- | ---- | ---------------- |
| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |

**返回值:**

| 类型                                                         | 说明                      |
| ------------------------------------------------------------ | ------------------------- |
| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
Z
zengyawen 已提交
1785 1786 1787

**示例:**

J
jiao_yanlin 已提交
1788
```js
1789 1790
audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
  console.info('Promise returned to indicate that the device list is obtained.');
L
lwx1059628 已提交
1791
});
Z
zengyawen 已提交
1792 1793
```

1794
### setDeviceActive<sup>(deprecated)</sup>
Z
zengyawen 已提交
1795

1796
setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
1797

1798
设置设备激活状态,使用callback方式异步返回结果。
L
lwx1059628 已提交
1799

1800 1801 1802 1803
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Device
Z
zengyawen 已提交
1804 1805 1806

**参数:**

1807 1808 1809 1810 1811
| 参数名     | 类型                                  | 必填 | 说明                     |
| ---------- | ------------------------------------- | ---- | ------------------------ |
| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
| active     | boolean                               | 是   | 设备激活状态。           |
| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
Z
zengyawen 已提交
1812

L
lwx1059628 已提交
1813 1814
**示例:**

J
jiao_yanlin 已提交
1815
```js
1816
audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err) => {
1817
  if (err) {
1818
    console.error(`Failed to set the active status of the device. ${err}`);
1819 1820
    return;
  }
1821
  console.info('Callback invoked to indicate that the device is set to the active status.');
L
lwx1059628 已提交
1822 1823 1824
});
```

1825
### setDeviceActive<sup>(deprecated)</sup>
L
lwx1059628 已提交
1826

1827
setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise&lt;void&gt;
L
lwx1059628 已提交
1828

1829
设置设备激活状态,使用Promise方式异步返回结果。
L
lwx1059628 已提交
1830

1831 1832
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。
1833

1834
**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
1835 1836 1837

**参数:**

1838 1839 1840 1841
| 参数名     | 类型                                  | 必填 | 说明               |
| ---------- | ------------------------------------- | ---- | ------------------ |
| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
| active     | boolean                               | 是   | 设备激活状态。     |
1842 1843 1844 1845 1846 1847 1848 1849

**返回值:**

| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |

**示例:**
L
lwx1059628 已提交
1850

1851

J
jiao_yanlin 已提交
1852
```js
1853 1854
audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => {
  console.info('Promise returned to indicate that the device is set to the active status.');
L
lwx1059628 已提交
1855 1856 1857
});
```

1858
### isDeviceActive<sup>(deprecated)</sup>
L
lwx1059628 已提交
1859

1860
isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
L
lwx1059628 已提交
1861

1862
获取指定设备的激活状态,使用callback方式异步返回结果。
1863

1864 1865 1866 1867
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
1868 1869 1870

**参数:**

1871 1872 1873 1874
| 参数名     | 类型                                  | 必填 | 说明                     |
| ---------- | ------------------------------------- | ---- | ------------------------ |
| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。       |
| callback   | AsyncCallback&lt;boolean&gt;          | 是   | 回调返回设备的激活状态。 |
L
lwx1059628 已提交
1875 1876 1877

**示例:**

J
jiao_yanlin 已提交
1878
```js
1879
audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err, value) => {
1880
  if (err) {
1881
    console.error(`Failed to obtain the active status of the device. ${err}`);
1882 1883
    return;
  }
1884
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
L
lwx1059628 已提交
1885 1886 1887
});
```

1888
### isDeviceActive<sup>(deprecated)</sup>
1889

1890
isDeviceActive(deviceType: ActiveDeviceType): Promise&lt;boolean&gt;
1891

1892
获取指定设备的激活状态,使用Promise方式异步返回结果。
1893

1894 1895 1896 1897 1898 1899 1900 1901 1902 1903
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名     | 类型                                  | 必填 | 说明               |
| ---------- | ------------------------------------- | ---- | ------------------ |
| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是   | 活跃音频设备类型。 |
1904

1905
**返回值:**
1906

1907 1908 1909
| Type                   | Description                     |
| ---------------------- | ------------------------------- |
| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
1910 1911 1912

**示例:**

J
jiao_yanlin 已提交
1913
```js
1914 1915
audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value) => {
  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
1916 1917 1918
});
```

1919
### setMicrophoneMute<sup>(deprecated)</sup>
1920

1921
setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
1922

1923
设置麦克风静音状态,使用callback方式异步返回结果。
1924

1925 1926
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。
1927

1928 1929 1930
**需要权限:** ohos.permission.MICROPHONE

**系统能力:** SystemCapability.Multimedia.Audio.Device
1931 1932 1933

**参数:**

1934 1935 1936 1937
| 参数名   | 类型                      | 必填 | 说明                                          |
| -------- | ------------------------- | ---- | --------------------------------------------- |
| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
1938

1939
**示例:**
1940

1941 1942 1943 1944 1945 1946 1947 1948 1949
```js
audioManager.setMicrophoneMute(true, (err) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
});
```
1950

1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974
### setMicrophoneMute<sup>(deprecated)</sup>

setMicrophoneMute(mute: boolean): Promise&lt;void&gt;

设置麦克风静音状态,使用Promise方式异步返回结果。

> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。

**需要权限:** ohos.permission.MICROPHONE

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名 | 类型    | 必填 | 说明                                          |
| ------ | ------- | ---- | --------------------------------------------- |
| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |

**返回值:**

| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
1975 1976 1977

**示例:**

J
jiao_yanlin 已提交
1978
```js
1979 1980
audioManager.setMicrophoneMute(true).then(() => {
  console.info('Promise returned to indicate that the microphone is muted.');
1981 1982 1983
});
```

1984
### isMicrophoneMute<sup>(deprecated)</sup>
L
lwx1059628 已提交
1985

1986
isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
L
lwx1059628 已提交
1987

1988
获取麦克风静音状态,使用callback方式异步返回结果。
L
lwx1059628 已提交
1989

1990 1991
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。
L
lwx1059628 已提交
1992

1993
**需要权限:** ohos.permission.MICROPHONE
1994

1995
**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
1996 1997 1998

**参数:**

1999 2000 2001
| 参数名   | 类型                         | 必填 | 说明                                                    |
| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
L
lwx1059628 已提交
2002 2003 2004

**示例:**

J
jiao_yanlin 已提交
2005
```js
2006
audioManager.isMicrophoneMute((err, value) => {
J
jiao_yanlin 已提交
2007
  if (err) {
2008 2009
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
J
jiao_yanlin 已提交
2010
  }
2011
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
L
lwx1059628 已提交
2012 2013 2014
});
```

2015
### isMicrophoneMute<sup>(deprecated)</sup>
L
lwx1059628 已提交
2016

2017
isMicrophoneMute(): Promise&lt;boolean&gt;
L
lwx1059628 已提交
2018

2019
获取麦克风静音状态,使用Promise方式异步返回结果。
L
lwx1059628 已提交
2020

2021 2022 2023 2024 2025 2026
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。

**需要权限:** ohos.permission.MICROPHONE

**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
2027 2028 2029

**返回值:**

2030 2031 2032
| 类型                   | 说明                                                         |
| ---------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
L
lwx1059628 已提交
2033 2034 2035

**示例:**

J
jiao_yanlin 已提交
2036
```js
2037 2038 2039
audioManager.isMicrophoneMute().then((value) => {
  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
});
L
lwx1059628 已提交
2040 2041
```

2042
### on('volumeChange')<sup>(deprecated)</sup>
L
lwx1059628 已提交
2043

2044
on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
L
lwx1059628 已提交
2045

2046
> **说明:**
2047
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeManager中的[on('volumeChange')](#onvolumechange9)替代。
L
lwx1059628 已提交
2048

2049 2050 2051 2052 2053 2054 2055
监听系统音量变化事件。

**系统接口:** 该接口为系统接口

目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。

**系统能力:** SystemCapability.Multimedia.Audio.Volume
L
lwx1059628 已提交
2056 2057 2058

**参数:**

2059 2060 2061
| 参数名   | 类型                                   | 必填 | 说明                                                         |
| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'(系统音量变化事件,检测到系统音量改变时,触发该事件)。 |
J
jiaoyanlin3 已提交
2062
| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
L
lwx1059628 已提交
2063 2064 2065

**示例:**

J
jiao_yanlin 已提交
2066
```js
2067 2068 2069 2070
audioManager.on('volumeChange', (volumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
L
lwx1059628 已提交
2071 2072 2073
});
```

2074
### on('ringerModeChange')<sup>(deprecated)</sup>
2075

2076
on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
2077

2078
监听铃声模式变化事件。
2079

2080 2081
> **说明:**
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[on('ringerModeChange')](#onringermodechange9)替代。
2082

2083
**系统接口:** 该接口为系统接口
2084

2085 2086 2087 2088 2089 2090 2091 2092
**系统能力:** SystemCapability.Multimedia.Audio.Communication

**参数:**

| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |
2093 2094 2095 2096

**示例:**

```js
2097 2098 2099
audioManager.on('ringerModeChange', (ringerMode) => {
  console.info(`Updated ringermode: ${ringerMode}`);
});
2100 2101
```

2102
### on('deviceChange')<sup>(deprecated)</sup>
2103

2104
on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void
2105

2106
设备更改。音频设备连接状态变化。
2107

2108
> **说明:**
2109
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[on('deviceChange')](#ondevicechange9)替代。
2110

2111
**系统能力:** SystemCapability.Multimedia.Audio.Device
2112

2113
**参数:**
2114

2115 2116 2117 2118
| 参数名   | 类型                                                 | 必填 | 说明                                       |
| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
2119 2120 2121 2122

**示例:**

```js
2123 2124 2125 2126 2127
audioManager.on('deviceChange', (deviceChanged) => {
  console.info(`device change type : ${deviceChanged.type} `);
  console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `);
  console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `);
2128
});
2129 2130
```

2131
### off('deviceChange')<sup>(deprecated)</sup>
2132

2133
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
2134

2135
取消订阅音频设备连接变化事件。
2136

2137
> **说明:**
2138
> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[off('deviceChange')](#offdevicechange9)替代。
2139

2140
**系统能力:** SystemCapability.Multimedia.Audio.Device
W
wangtao 已提交
2141

2142
**参数:**
2143

2144 2145 2146 2147
| 参数名   | 类型                                                | 必填 | 说明                                       |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |
2148

2149
**示例:**
W
wangtao 已提交
2150

2151
```js
W
wangtao 已提交
2152
audioManager.off('deviceChange');
2153
```
W
wangtao 已提交
2154

J
jiaoyanlin3 已提交
2155
### on('interrupt')
2156

2157
on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void
2158

2159
请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。
W
wangtao 已提交
2160

2161
[on('audioInterrupt')](#onaudiointerrupt9)作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。
W
wangtao 已提交
2162

2163
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2164

2165
**参数:**
2166

2167 2168 2169 2170 2171
| 参数名    | 类型                                          | 必填 | 说明                                                         |
| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 是   | 音频打断事件回调方法。                                       |
2172

W
wangtao 已提交
2173
**示例:**
2174

W
wangtao 已提交
2175
```js
2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188
let interAudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};
audioManager.on('interrupt', interAudioInterrupt, (InterruptAction) => {
  if (InterruptAction.actionType === 0) {
    console.info('An event to gain the audio focus starts.');
    console.info(`Focus gain event: ${InterruptAction} `);
  }
  if (InterruptAction.actionType === 1) {
    console.info('An audio interruption event starts.');
    console.info(`Audio interruption event: ${InterruptAction} `);
W
wangtao 已提交
2189 2190 2191 2192
  }
});
```

J
jiaoyanlin3 已提交
2193
### off('interrupt')
W
wangtao 已提交
2194

2195
off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<InterruptAction>): void
W
wangtao 已提交
2196

2197
取消监听音频打断事件(删除监听事件,取消打断)。
W
wangtao 已提交
2198

2199
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
2200

2201
**参数:**
2202

2203 2204 2205 2206 2207
| 参数名    | 类型                                          | 必填 | 说明                                                         |
| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| type      | string                                        | 是   | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 |
| interrupt | AudioInterrupt                                | 是   | 音频打断事件类型的参数。                                     |
| callback  | Callback<[InterruptAction](#interruptactiondeprecated)> | 否   | 音频打断事件回调方法。                                       |
2208

W
wangtao 已提交
2209 2210 2211
**示例:**

```js
2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222
let interAudioInterrupt = {
  streamUsage:2,
  contentType:0,
  pauseWhenDucked:true
};
audioManager.off('interrupt', interAudioInterrupt, (InterruptAction) => {
  if (InterruptAction.actionType === 0) {
      console.info('An event to release the audio focus starts.');
      console.info(`Focus release event: ${InterruptAction} `);
  }
});
W
wangtao 已提交
2223 2224
```

2225
## AudioVolumeManager<sup>9+</sup>
W
wangtao 已提交
2226

2227
音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getvolumemanager9)获取AudioVolumeManager实例。
W
wangtao 已提交
2228

2229
### getVolumeGroupInfos<sup>9+</sup>
W
wangtao 已提交
2230

2231 2232 2233 2234 2235 2236 2237
getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos\>\): void

获取音量组信息列表,使用callback方式异步返回结果。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2238 2239 2240

**参数:**

2241 2242 2243 2244
| 参数名     | 类型                                                         | 必填 | 说明                 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
| networkId | string                                    | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。    |
| callback  | AsyncCallback&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 是   | 回调,返回音量组信息列表。 |
W
wangtao 已提交
2245 2246 2247

**示例:**
```js
2248
audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err, value) => {
2249
  if (err) {
2250
    console.error(`Failed to obtain the volume group infos list. ${err}`);
2251
    return;
W
wangtao 已提交
2252
  }
2253
  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2254
});
W
wangtao 已提交
2255 2256
```

2257
### getVolumeGroupInfos<sup>9+</sup>
W
wangtao 已提交
2258

2259
getVolumeGroupInfos(networkId: string\): Promise<VolumeGroupInfos\>
W
wangtao 已提交
2260

2261
获取音量组信息列表,使用promise方式异步返回结果。
W
wangtao 已提交
2262

2263 2264 2265
**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2266 2267 2268

**参数:**

2269 2270 2271
| 参数名     | 类型               | 必填 | 说明                 |
| ---------- | ------------------| ---- | -------------------- |
| networkId | string             | 是   | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。   |
W
wangtao 已提交
2272

2273 2274
**返回值:**

2275 2276 2277 2278
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;[VolumeGroupInfos](#volumegroupinfos9)&gt; | 音量组信息列表。 |

W
wangtao 已提交
2279 2280 2281
**示例:**

```js
2282 2283 2284 2285
async function getVolumeGroupInfos(){
  let volumegroupinfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID);
  console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos))
}
W
wangtao 已提交
2286
```
J
jiao_yanlin 已提交
2287

2288
### getVolumeGroupManager<sup>9+</sup>
J
jiao_yanlin 已提交
2289

2290
getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void
J
jiao_yanlin 已提交
2291

2292
获取音频组管理器,使用callback方式异步返回结果。
2293

2294
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2295

2296
**参数:**
2297

2298 2299
| 参数名     | 类型                                                         | 必填 | 说明                 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
2300 2301
| groupId    | number                                    | 是   | 音量组id。     |
| callback   | AsyncCallback&lt;[AudioVolumeGroupManager](#audiovolumegroupmanager9)&gt; | 是   | 回调,返回一个音量组实例。 |
J
jiao_yanlin 已提交
2302 2303 2304 2305

**示例:**

```js
2306 2307
let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
audioVolumeManager.getVolumeGroupManager(groupid, (err, value) => {
2308
  if (err) {
2309
    console.error(`Failed to obtain the volume group infos list. ${err}`);
2310
    return;
2311
  }
2312
  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
2313
});
2314

J
jiao_yanlin 已提交
2315 2316
```

2317
### getVolumeGroupManager<sup>9+</sup>
J
jiao_yanlin 已提交
2318

2319
getVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\>
2320

2321
获取音频组管理器,使用promise方式异步返回结果。
2322

2323
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2324

2325
**参数:**
2326

2327 2328 2329
| 参数名     | 类型                                      | 必填 | 说明              |
| ---------- | ---------------------------------------- | ---- | ---------------- |
| groupId    | number                                   | 是   | 音量组id。     |
2330

2331
**返回值:**
2332

2333 2334 2335
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt; [AudioVolumeGroupManager](#audiovolumegroupmanager9) &gt; | 音量组实例。 |
2336 2337 2338 2339

**示例:**

```js
2340 2341 2342 2343 2344 2345 2346 2347
let groupid = audio.DEFAULT_VOLUME_GROUP_ID;
let audioVolumeGroupManager;
getVolumeGroupManager();
async function getVolumeGroupManager(){
  audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid);
  console.info('Callback invoked to indicate that the volume group infos list is obtained.');
}

2348 2349
```

2350
### on('volumeChange')<sup>9+</sup>
2351

2352
on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void
2353

2354
监听系统音量变化事件,使用callback方式异步返回结果。
2355

2356
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2357 2358 2359

**参数:**

2360 2361 2362
| 参数名   | 类型                                   | 必填 | 说明                                                         |
| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                 | 是   | 事件回调类型,支持的事件为:'volumeChange'。 |
J
jiaoyanlin3 已提交
2363
| callback | Callback<[VolumeEvent](#volumeevent9)> | 是   | 回调方法。                                                   |
2364

2365
**错误码:**
2366

2367 2368 2369 2370
以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
2371
| 6800101 | if input parameter value error              |
2372 2373 2374 2375

**示例:**

```js
2376 2377 2378 2379
audioVolumeManager.on('volumeChange', (volumeEvent) => {
  console.info(`VolumeType of stream: ${volumeEvent.volumeType} `);
  console.info(`Volume level: ${volumeEvent.volume} `);
  console.info(`Whether to updateUI: ${volumeEvent.updateUi} `);
2380
});
2381 2382
```

2383
## AudioVolumeGroupManager<sup>9+</sup>
2384

2385
管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。
2386

2387
### setVolume<sup>9+</sup>
W
wangtao 已提交
2388

2389
setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
W
wangtao 已提交
2390

2391
设置指定流的音量,使用callback方式异步返回结果。
W
wangtao 已提交
2392

2393
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
W
wangtao 已提交
2394

2395
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。
W
wangtao 已提交
2396

2397
**系统接口:** 该接口为系统接口
W
wangtao 已提交
2398

2399
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2400

2401
**参数:**
W
wangtao 已提交
2402

2403 2404 2405 2406 2407
| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |
W
wangtao 已提交
2408 2409

**示例:**
2410

2411 2412 2413 2414 2415 2416 2417 2418
```js
audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err) => {
  if (err) {
    console.error(`Failed to set the volume. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate a successful volume setting.');
});
W
wangtao 已提交
2419 2420
```

2421
### setVolume<sup>9+</sup>
W
wangtao 已提交
2422

2423
setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
W
wangtao 已提交
2424

2425
设置指定流的音量,使用Promise方式异步返回结果。
W
wangtao 已提交
2426

2427
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2428

2429 2430 2431 2432 2433
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2434 2435 2436

**参数:**

2437 2438 2439 2440
| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
| volume     | number                              | 是   | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
2441 2442 2443

**返回值:**

2444 2445 2446
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
W
wangtao 已提交
2447 2448 2449 2450

**示例:**

```js
2451 2452 2453
audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => {
  console.info('Promise returned to indicate a successful volume setting.');
});
W
wangtao 已提交
2454 2455
```

2456
### getVolume<sup>9+</sup>
W
wangtao 已提交
2457

2458
getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
W
wangtao 已提交
2459

2460
获取指定流的音量,使用callback方式异步返回结果。
W
wangtao 已提交
2461

2462
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2463 2464 2465

**参数:**

2466 2467 2468 2469
| 参数名     | 类型                                | 必填 | 说明               |
| ---------- | ----------------------------------- | ---- | ------------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回音量大小。 |
W
wangtao 已提交
2470 2471 2472 2473

**示例:**

```js
2474
audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
W
wangtao 已提交
2475
  if (err) {
2476
    console.error(`Failed to obtain the volume. ${err}`);
W
wangtao 已提交
2477 2478
    return;
  }
2479
  console.info('Callback invoked to indicate that the volume is obtained.');
W
wangtao 已提交
2480 2481 2482
});
```

2483
### getVolume<sup>9+</sup>
W
wangtao 已提交
2484

2485
getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
W
wangtao 已提交
2486

2487
获取指定流的音量,使用Promise方式异步返回结果。
W
wangtao 已提交
2488

2489
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2490 2491 2492

**参数:**

2493 2494 2495
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
W
wangtao 已提交
2496 2497 2498

**返回值:**

2499 2500 2501
| 类型                  | 说明                      |
| --------------------- | ------------------------- |
| Promise&lt;number&gt; | Promise回调返回音量大小。 |
W
wangtao 已提交
2502 2503 2504 2505

**示例:**

```js
2506 2507
audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promise returned to indicate that the volume is obtained ${value}.`);
W
wangtao 已提交
2508 2509 2510
});
```

2511
### getMinVolume<sup>9+</sup>
2512

2513
getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
W
wangtao 已提交
2514

2515
获取指定流的最小音量,使用callback方式异步返回结果。
J
jiao_yanlin 已提交
2516

2517
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2518 2519 2520

**参数:**

2521 2522 2523 2524
| 参数名     | 类型                                | 必填 | 说明               |
| ---------- | ----------------------------------- | ---- | ------------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。       |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最小音量。 |
W
wangtao 已提交
2525 2526 2527 2528

**示例:**

```js
2529
audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
W
wangtao 已提交
2530
  if (err) {
2531
    console.error(`Failed to obtain the minimum volume. ${err}`);
W
wangtao 已提交
2532 2533
    return;
  }
2534
  console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`);
W
wangtao 已提交
2535 2536 2537
});
```

2538
### getMinVolume<sup>9+</sup>
2539

2540
getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
W
wangtao 已提交
2541

2542
获取指定流的最小音量,使用Promise方式异步返回结果。
J
jiao_yanlin 已提交
2543

2544
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2545 2546 2547

**参数:**

2548 2549 2550
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
W
wangtao 已提交
2551 2552 2553

**返回值:**

2554 2555 2556
| 类型                  | 说明                      |
| --------------------- | ------------------------- |
| Promise&lt;number&gt; | Promise回调返回最小音量。 |
W
wangtao 已提交
2557 2558 2559 2560

**示例:**

```js
2561 2562
audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`);
W
wangtao 已提交
2563 2564 2565
});
```

2566
### getMaxVolume<sup>9+</sup>
W
wangtao 已提交
2567

2568
getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
W
wangtao 已提交
2569

2570
获取指定流的最大音量,使用callback方式异步返回结果。
2571

2572
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2573 2574 2575

**参数:**

2576 2577 2578 2579
| 参数名     | 类型                                | 必填 | 说明                   |
| ---------- | ----------------------------------- | ---- | ---------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。           |
| callback   | AsyncCallback&lt;number&gt;         | 是   | 回调返回最大音量大小。 |
W
wangtao 已提交
2580 2581

**示例:**
J
jiao_yanlin 已提交
2582

2583 2584 2585 2586 2587 2588 2589 2590
```js
audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the maximum volume. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`);
});
W
wangtao 已提交
2591 2592
```

2593
### getMaxVolume<sup>9+</sup>
W
wangtao 已提交
2594

2595
getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
W
wangtao 已提交
2596

2597
获取指定流的最大音量,使用Promise方式异步返回结果。
2598

2599
**系统能力:** SystemCapability.Multimedia.Audio.Volume
W
wangtao 已提交
2600 2601 2602

**参数:**

2603 2604 2605
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
W
wangtao 已提交
2606 2607 2608

**返回值:**

2609 2610 2611
| 类型                  | 说明                          |
| --------------------- | ----------------------------- |
| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
W
wangtao 已提交
2612 2613 2614 2615

**示例:**

```js
2616 2617 2618
audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data) => {
  console.info('Promised returned to indicate that the maximum volume is obtained.');
});
2619
```
2620

2621
### mute<sup>9+</sup>
2622

2623
mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
2624

2625
设置指定音量流静音,使用callback方式异步返回结果。
2626

2627
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2628

2629 2630 2631 2632 2633
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume
2634 2635 2636

**参数:**

2637 2638 2639 2640 2641
| 参数名     | 类型                                | 必填 | 说明                                  |
| ---------- | ----------------------------------- | ---- | ------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                |
2642 2643 2644

**示例:**

2645 2646 2647 2648 2649 2650 2651 2652
```js
audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
  if (err) {
    console.error(`Failed to mute the stream. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the stream is muted.');
});
2653
```
2654

2655
### mute<sup>9+</sup>
2656

2657
mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
2658

2659
设置指定音量流静音,使用Promise方式异步返回结果。
2660

2661
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2662

2663 2664 2665 2666 2667
仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume
2668 2669 2670

**参数:**

2671 2672 2673 2674
| 参数名     | 类型                                | 必填 | 说明                                  |
| ---------- | ----------------------------------- | ---- | ------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                          |
| mute       | boolean                             | 是   | 静音状态,true为静音,false为非静音。 |
2675 2676 2677

**返回值:**

2678 2679 2680
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
2681 2682 2683 2684

**示例:**

```js
2685 2686 2687 2688
audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => {
  console.info('Promise returned to indicate that the stream is muted.');
});
```
J
jiao_yanlin 已提交
2689

2690
### isMute<sup>9+</sup>
2691

2692
isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
2693

2694
获取指定音量流是否被静音,使用callback方式异步返回结果。
2695

2696
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2697

2698
**参数:**
2699

2700 2701 2702 2703
| 参数名     | 类型                                | 必填 | 说明                                            |
| ---------- | ----------------------------------- | ---- | ----------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                    |
| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流静音状态,true为静音,false为非静音。 |
2704 2705 2706 2707

**示例:**

```js
2708 2709 2710 2711
audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the mute status. ${err}`);
    return;
2712
  }
2713
  console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`);
2714 2715 2716
});
```

2717
### isMute<sup>9+</sup>
2718

2719
isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
2720

2721
获取指定音量流是否被静音,使用Promise方式异步返回结果。
2722

2723
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2724

2725
**参数:**
2726

2727 2728 2729
| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。 |
2730

2731
**返回值:**
2732

2733 2734 2735
| 类型                   | 说明                                                   |
| ---------------------- | ------------------------------------------------------ |
| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
2736 2737 2738 2739

**示例:**

```js
2740 2741
audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`);
2742 2743 2744
});
```

2745
### setRingerMode<sup>9+</sup>
2746

2747
setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
2748

2749
设置铃声模式,使用callback方式异步返回结果。
2750

2751
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2752

2753
仅在静音和非静音状态切换时需要该权限。
2754

2755
**系统接口:** 该接口为系统接口
2756

2757
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2758

2759
**参数:**
2760

2761 2762 2763 2764
| 参数名   | 类型                            | 必填 | 说明                     |
| -------- | ------------------------------- | ---- | ------------------------ |
| mode     | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。           |
| callback | AsyncCallback&lt;void&gt;       | 是   | 回调返回设置成功或失败。 |
2765

2766 2767 2768 2769 2770 2771 2772
**示例:**

```js
audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
  if (err) {
    console.error(`Failed to set the ringer mode.​ ${err}`);
    return;
2773
  }
2774
  console.info('Callback invoked to indicate a successful setting of the ringer mode.');
2775 2776 2777
});
```

2778
### setRingerMode<sup>9+</sup>
2779

2780
setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
2781

2782
设置铃声模式,使用Promise方式异步返回结果。
2783

2784
**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY
2785

2786
仅在静音和非静音状态切换时需要该权限。
2787

2788
**系统接口:** 该接口为系统接口
2789

2790
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2791

2792
**参数:**
2793

2794 2795 2796
| 参数名 | 类型                            | 必填 | 说明           |
| ------ | ------------------------------- | ---- | -------------- |
| mode   | [AudioRingMode](#audioringmode) | 是   | 音频铃声模式。 |
2797

2798
**返回值:**
2799

2800 2801 2802
| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
2803 2804 2805 2806

**示例:**

```js
2807 2808 2809
audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => {
  console.info('Promise returned to indicate a successful setting of the ringer mode.');
});
2810 2811
```

2812
### getRingerMode<sup>9+</sup>
2813

2814
getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
2815

2816
获取铃声模式,使用callback方式异步返回结果。
2817

2818
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2819

2820
**参数:**
2821

2822 2823 2824
| 参数名   | 类型                                                 | 必填 | 说明                     |
| -------- | ---------------------------------------------------- | ---- | ------------------------ |
| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调返回系统的铃声模式。 |
2825 2826 2827 2828

**示例:**

```js
2829 2830 2831 2832 2833 2834
audioVolumeGroupManager.getRingerMode((err, value) => {
  if (err) {
    console.error(`Failed to obtain the ringer mode.​ ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`);
2835 2836 2837
});
```

2838
### getRingerMode<sup>9+</sup>
2839

2840
getRingerMode(): Promise&lt;AudioRingMode&gt;
2841

2842
获取铃声模式,使用Promise方式异步返回结果。
2843

2844
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2845

2846 2847
**返回值:**

2848 2849 2850
| 类型                                           | 说明                            |
| ---------------------------------------------- | ------------------------------- |
| Promise&lt;[AudioRingMode](#audioringmode)&gt; | Promise回调返回系统的铃声模式。 |
2851 2852 2853 2854

**示例:**

```js
2855 2856
audioVolumeGroupManager.getRingerMode().then((value) => {
  console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`);
2857 2858 2859
});
```

2860
### on('ringerModeChange')<sup>9+</sup>
2861

2862
on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void
2863

2864
监听铃声模式变化事件。
2865

2866
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2867

2868
**参数:**
2869

2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881
| 参数名   | 类型                                      | 必填 | 说明                                                         |
| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                    | 是   | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 |
| callback | Callback<[AudioRingMode](#audioringmode)> | 是   | 回调方法。                                                   |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
2882

2883
**示例:**
J
jiao_yanlin 已提交
2884 2885

```js
2886 2887
audioVolumeGroupManager.on('ringerModeChange', (ringerMode) => {
  console.info(`Updated ringermode: ${ringerMode}`);
2888 2889
});
```
2890
### setMicrophoneMute<sup>9+</sup>
2891

2892
setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
2893

2894
设置麦克风静音状态,使用callback方式异步返回结果。
2895

2896
**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG
2897

2898
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2899

2900
**参数:**
2901

2902 2903 2904 2905
| 参数名   | 类型                      | 必填 | 说明                                          |
| -------- | ------------------------- | ---- | --------------------------------------------- |
| mute     | boolean                   | 是   | 待设置的静音状态,true为静音,false为非静音。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回设置成功或失败。                      |
2906

2907
**示例:**
J
jiao_yanlin 已提交
2908 2909

```js
2910 2911 2912 2913 2914 2915
audioVolumeGroupManager.setMicrophoneMute(true, (err) => {
  if (err) {
    console.error(`Failed to mute the microphone. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the microphone is muted.');
2916
});
2917 2918
```

2919
### setMicrophoneMute<sup>9+</sup>
2920

2921
setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
2922

2923
设置麦克风静音状态,使用Promise方式异步返回结果。
2924

2925 2926 2927
**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG

**系统能力:** SystemCapability.Multimedia.Audio.Volume
2928

2929
**参数:**
2930

2931 2932 2933 2934 2935 2936 2937 2938 2939
| 参数名 | 类型    | 必填 | 说明                                          |
| ------ | ------- | ---- | --------------------------------------------- |
| mute   | boolean | 是   | 待设置的静音状态,true为静音,false为非静音。 |

**返回值:**

| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
2940

2941
**示例:**
J
jiao_yanlin 已提交
2942 2943

```js
2944 2945
audioVolumeGroupManager.setMicrophoneMute(true).then(() => {
  console.info('Promise returned to indicate that the microphone is muted.');
2946 2947 2948
});
```

2949
### isMicrophoneMute<sup>9+</sup>
2950

2951
isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
2952

2953
获取麦克风静音状态,使用callback方式异步返回结果。
2954

2955
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2956

2957
**参数:**
2958

2959 2960 2961
| 参数名   | 类型                         | 必填 | 说明                                                    |
| -------- | ---------------------------- | ---- | ------------------------------------------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2962

2963
**示例:**
J
jiao_yanlin 已提交
2964 2965

```js
2966 2967 2968 2969 2970 2971
audioVolumeGroupManager.isMicrophoneMute((err, value) => {
  if (err) {
    console.error(`Failed to obtain the mute status of the microphone. ${err}`);
    return;
  }
  console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`);
2972
});
2973 2974
```

2975
### isMicrophoneMute<sup>9+</sup>
2976

2977
isMicrophoneMute(): Promise&lt;boolean&gt;
2978

2979
获取麦克风静音状态,使用Promise方式异步返回结果。
2980

2981
**系统能力:** SystemCapability.Multimedia.Audio.Volume
2982

2983
**返回值:**
2984

2985 2986 2987
| 类型                   | 说明                                                         |
| ---------------------- | ------------------------------------------------------------ |
| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
2988

2989
**示例:**
J
jiao_yanlin 已提交
2990 2991

```js
2992 2993
audioVolumeGroupManager.isMicrophoneMute().then((value) => {
  console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`);
2994 2995 2996
});
```

2997
### on('micStateChange')<sup>9+</sup>
2998

2999
on(type: 'micStateChange', callback: Callback&lt;MicStateChangeEvent&gt;): void
3000

3001
监听系统麦克风状态更改事件。
3002

3003
目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。
3004

3005
**系统能力:** SystemCapability.Multimedia.Audio.Volume
3006

3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020
**参数:**

| 参数名   | 类型                                   | 必填 | 说明                                                         |
| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                 | 是   | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 |
| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是   | 回调方法,返回变更后的麦克风状态。                                                   |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3021

3022
**示例:**
J
jiao_yanlin 已提交
3023 3024

```js
3025 3026
audioVolumeGroupManager.on('micStateChange', (micStateChange) => {
  console.info(`Current microphone status is: ${micStateChange.mute} `);
3027
});
3028 3029
```

W
wangzx0705 已提交
3030
### isVolumeUnadjustable<sup>10+</sup>
W
wangzx0705 已提交
3031

W
wangzx0705 已提交
3032
isVolumeUnadjustable(): boolean
W
wangzx0705 已提交
3033

W
wangzx0705 已提交
3034
获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节,使用同步方式返回结果。
W
wangzx0705 已提交
3035 3036 3037 3038 3039 3040 3041

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**返回值:**

| 类型                   | 说明                                                   |
| ---------------------- | ------------------------------------------------------ |
W
wangzx0705 已提交
3042
| boolean            | 同步接口,返回固定音量模式开关状态,true为固定音量模式,false为非固定音量模式。 |
W
wangzx0705 已提交
3043 3044 3045 3046

**示例:**

```js
W
wangzx0705 已提交
3047 3048
bool volumeAdjustSwitch = audioVolumeGroupManager.isVolumeUnadjustable();
console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`);
W
wangzx0705 已提交
3049 3050 3051 3052 3053 3054
```

### adjustVolumeByStep<sup>10+</sup>

adjustVolumeByStep(adjustType: VolumeAdjustType, callback: AsyncCallback&lt;void&gt;): void

W
wangzx0705 已提交
3055
调节当前最高优先级的流的音量,使音量值按步长加或减,使用callback方式异步返回结果。
W
wangzx0705 已提交
3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068

**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
W
wangzx0705 已提交
3069
| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
W
wangzx0705 已提交
3070 3071
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |

W
wangzx0705 已提交
3072 3073 3074 3075 3076 3077
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3078 3079
| 6800101 | Invalid parameter error. Return by callback.                     |
| 6800301 | System error. Return by callback.                                |
W
wangzx0705 已提交
3080

W
wangzx0705 已提交
3081 3082 3083
**示例:**

```js
W
wangzx0705 已提交
3084
audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP, (err) => {
W
wangzx0705 已提交
3085 3086 3087
  if (err) {
    console.error(`Failed to adjust the volume by step. ${err}`);
    return;
W
wangzx0705 已提交
3088 3089
  } else {
    console.info('Success to adjust the volume by step.');
W
wangzx0705 已提交
3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110
  }
});
```
### adjustVolumeByStep<sup>10+</sup>

adjustVolumeByStep(adjustType: VolumeAdjustType): Promise&lt;void&gt;

单步设置当前最高优先级的流的音量,使用Promise方式异步返回结果。

**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
W
wangzx0705 已提交
3111
| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
W
wangzx0705 已提交
3112 3113 3114 3115 3116 3117 3118

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |

W
wangzx0705 已提交
3119 3120 3121 3122 3123 3124
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3125 3126
| 6800101 | Invalid parameter error. Return by promise.                     |
| 6800301 | System error. Return by promise.                                |
W
wangzx0705 已提交
3127

W
wangzx0705 已提交
3128 3129 3130
**示例:**

```js
W
wangzx0705 已提交
3131
audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP).then((value) => {
W
wangzx0705 已提交
3132
  console.info('Success to adjust the volume by step.');
W
wangzx0705 已提交
3133
}).catch((error) => {
W
wangzx0705 已提交
3134
  console.error('Fail to adjust the volume by step.');
W
wangzx0705 已提交
3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156
});
```

### adjustSystemVolumeByStep<sup>10+</sup>

adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType, callback: AsyncCallback&lt;void&gt;): void

单步设置指定流的音量,使用callback方式异步返回结果。

**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
W
wangzx0705 已提交
3157
| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                       |
W
wangzx0705 已提交
3158 3159
| callback   | AsyncCallback&lt;void&gt;           | 是   | 回调表示成功还是失败。                                   |

W
wangzx0705 已提交
3160 3161 3162 3163 3164 3165
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3166 3167
| 6800101 | Invalid parameter error. Return by callback.                     |
| 6800301 | System error. Return by callback.                                |
W
wangzx0705 已提交
3168

W
wangzx0705 已提交
3169 3170 3171
**示例:**

```js
W
wangzx0705 已提交
3172
audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP, (err) => {
W
wangzx0705 已提交
3173
  if (err) {
W
wangzx0705 已提交
3174 3175 3176
    console.error(`Failed to adjust the system volume by step ${err}`);
  } else {
    console.info('Success to adjust the system volume by step.');
W
wangzx0705 已提交
3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198
  }
});
```
### adjustSystemVolumeByStep<sup>10+</sup>

adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType): Promise&lt;void&gt;

单步设置指定流的音量,使用Promise方式异步返回结果。

**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY

仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
W
wangzx0705 已提交
3199
| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是   | 音量调节方向。                                             |
W
wangzx0705 已提交
3200 3201 3202 3203 3204 3205 3206

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |

W
wangzx0705 已提交
3207 3208 3209 3210 3211 3212
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3213 3214
| 6800101 | Invalid parameter error. Return by promise.                     |
| 6800301 | System error. Return by promise.                                |
W
wangzx0705 已提交
3215

W
wangzx0705 已提交
3216 3217 3218
**示例:**

```js
W
wangzx0705 已提交
3219
audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP).then((value) => {
W
wangzx0705 已提交
3220
  console.info('Success to adjust the system volume by step.');
W
wangzx0705 已提交
3221
}).catch((error) => {
W
wangzx0705 已提交
3222
  console.error('Fail to adjust the system volume by step.');
W
wangzx0705 已提交
3223 3224 3225 3226 3227 3228 3229
});
```

### getSystemVolumeInDb<sup>10+</sup>

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback&lt;number&gt;): void

W
wangzx0705 已提交
3230
获取音量增益dB值,使用callback方式异步返回结果。
W
wangzx0705 已提交
3231 3232 3233 3234 3235 3236 3237 3238

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
W
wangzx0705 已提交
3239
| volumeLevel | number                         | 是   | 音量等级。                                               |
W
wangzx0705 已提交
3240
| device     | [DeviceType](#devicetype)           | 是   | 设备类型。                                               |
W
wangzx0705 已提交
3241 3242 3243 3244 3245 3246 3247 3248
| callback   | AsyncCallback&lt;number&gt;           | 是   | 回调返回对应的音量增益dB值。                              |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3249 3250
| 6800101 | Invalid parameter error. Return by callback.                     |
| 6800301 | System error. Return by callback.                                |
W
wangzx0705 已提交
3251 3252 3253 3254 3255 3256 3257

**示例:**

```js
audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err, dB) => {
  if (err) {
    console.error(`Failed to get the volume DB. ${err}`);
W
wangzx0705 已提交
3258 3259
  } else {
    console.info(`Success to get the volume DB. ${dB}`);
W
wangzx0705 已提交
3260 3261 3262 3263 3264 3265 3266
  }
});
```
### getSystemVolumeInDb<sup>10+</sup>

getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise&lt;number&gt;

W
wangzx0705 已提交
3267
获取音量增益dB值,使用Promise方式异步返回结果。
W
wangzx0705 已提交
3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282

**系统能力:** SystemCapability.Multimedia.Audio.Volume

**参数:**

| 参数名     | 类型                                | 必填 | 说明                                                     |
| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音量流类型。                                             |
| volumeLevel | number                              | 是   | 音量等级。                                             |
| device     | [DeviceType](#devicetype)           | 是   | 设备类型。                                               |

**返回值:**

| 类型                  | 说明                               |
| --------------------- | ---------------------------------- |
W
wangzx0705 已提交
3283 3284 3285 3286 3287 3288 3289 3290
| Promise&lt;number&gt; | Promise回调返回对应的音量增益dB值。 |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3291 3292
| 6800101 | Invalid parameter error. Return by promise.                     |
| 6800301 | System error. Return by promise.                                |
W
wangzx0705 已提交
3293 3294 3295 3296

**示例:**

```js
W
wangzx0705 已提交
3297 3298
audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value) => {
  console.info(`Success to get the volume DB. ${value}`);
W
wangzx0705 已提交
3299
}).catch((error) => {
W
wangzx0705 已提交
3300
  console.error(`Fail to adjust the system volume by step. ${error}`);
W
wangzx0705 已提交
3301 3302 3303
});
```

3304
## AudioStreamManager<sup>9+</sup>
3305

3306
管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。
3307

3308
### getCurrentAudioRendererInfoArray<sup>9+</sup>
3309

3310 3311 3312 3313 3314
getCurrentAudioRendererInfoArray(callback: AsyncCallback&lt;AudioRendererChangeInfoArray&gt;): void

获取当前音频渲染器的信息。使用callback异步回调。

**系统能力**: SystemCapability.Multimedia.Audio.Renderer
3315

3316
**参数:**
3317

3318 3319 3320
| 参数名     | 类型                                 | 必填     | 说明                         |
| -------- | ----------------------------------- | -------- | --------------------------- |
| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是     |  回调函数,返回当前音频渲染器的信息。 |
3321

3322
**示例:**
J
jiao_yanlin 已提交
3323 3324

```js
3325 3326
audioStreamManager.getCurrentAudioRendererInfoArray(async (err, AudioRendererChangeInfoArray) => {
  console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****');
3327
  if (err) {
3328
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
3329
  } else {
3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 
        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);  
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
        }
      }
    }
J
jiao_yanlin 已提交
3351
  }
3352 3353 3354
});
```

3355
### getCurrentAudioRendererInfoArray<sup>9+</sup>
3356

3357
getCurrentAudioRendererInfoArray(): Promise&lt;AudioRendererChangeInfoArray&gt;
3358

3359
获取当前音频渲染器的信息。使用Promise异步回调。
3360

3361
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3362

3363
**返回值:**
3364

3365 3366 3367
| 类型                                                                              | 说明                                    |
| ---------------------------------------------------------------------------------| --------------------------------------- |
| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)>          | Promise对象,返回当前音频渲染器信息。      |
3368 3369 3370 3371

**示例:**

```js
3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399
async function getCurrentAudioRendererInfoArray(){
  await audioStreamManager.getCurrentAudioRendererInfoArray().then( function (AudioRendererChangeInfoArray) {
    console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`);
    if (AudioRendererChangeInfoArray != null) {
      for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
        let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
        console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
        console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
        console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
        console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
        console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 
        console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);  
        for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
          console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
        }
      }
    }
  }).catch((err) => {
    console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`);
  });
}
3400 3401
```

3402
### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3403

3404
getCurrentAudioCapturerInfoArray(callback: AsyncCallback&lt;AudioCapturerChangeInfoArray&gt;): void
3405

3406
获取当前音频采集器的信息。使用callback异步回调。
3407

3408
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3409 3410 3411

**参数:**

3412 3413 3414
| 参数名        | 类型                                 | 必填      | 说明                                                      |
| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- |
| callback   | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是    | 回调函数,返回当前音频采集器的信息。 |
3415 3416 3417 3418

**示例:**

```js
3419 3420
audioStreamManager.getCurrentAudioCapturerInfoArray(async (err, AudioCapturerChangeInfoArray) => {
  console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****');
3421
  if (err) {
3422
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
3423
  } else {
3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
        }
      }
    }
3443 3444 3445 3446
  }
});
```

3447
### getCurrentAudioCapturerInfoArray<sup>9+</sup>
3448

3449
getCurrentAudioCapturerInfoArray(): Promise&lt;AudioCapturerChangeInfoArray&gt;
3450

3451
获取当前音频采集器的信息。使用Promise异步回调。
3452

3453
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3454 3455 3456

**返回值:**

3457 3458 3459
| 类型                                                                         | 说明                                 |
| -----------------------------------------------------------------------------| ----------------------------------- |
| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)>      | Promise对象,返回当前音频渲染器信息。  |
3460 3461 3462 3463

**示例:**

```js
3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489
async function getCurrentAudioCapturerInfoArray(){
  await audioStreamManager.getCurrentAudioCapturerInfoArray().then( function (AudioCapturerChangeInfoArray) {
    console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****');
    if (AudioCapturerChangeInfoArray != null) {
      for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
        console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
        console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
        console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
        console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
        console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
        for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
          console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
          console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
          console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
          console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
          console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
          console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
          console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
          console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
        }
      }
    }
  }).catch((err) => {
    console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`);
  });
}
3490 3491
```

3492
### on('audioRendererChange')<sup>9+</sup>
3493

J
jiaoyanlin3 已提交
3494
on(type: 'audioRendererChange', callback: Callback&lt;AudioRendererChangeInfoArray&gt;): void
3495

3496
监听音频渲染器更改事件。
3497

3498
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3499 3500 3501

**参数:**

3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513
| 参数名      | 类型        | 必填      | 说明                                                                     |
| -------- | ---------- | --------- | ------------------------------------------------------------------------ |
| type     | string     | 是        | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。     |
| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是  |  回调函数。        |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3514 3515 3516 3517

**示例:**

```js
3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537
audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
    let AudioRendererChangeInfo = AudioRendererChangeInfoArray[i];
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`);
    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`);
    console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`);
    console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 
    console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`);  
    for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`);
      console.info(`SampleRates: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCount ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks}`);
    }
3538
  }
3539
});
3540 3541
```

3542
### off('audioRendererChange')<sup>9+</sup>
3543

J
jiaoyanlin3 已提交
3544
off(type: 'audioRendererChange'): void
3545

3546
取消监听音频渲染器更改事件。
3547

3548
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3549

3550
**参数:**
3551

3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562
| 参数名     | 类型     | 必填 | 说明              |
| -------- | ------- | ---- | ---------------- |
| type     | string  | 是   | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3563 3564 3565 3566

**示例:**

```js
3567 3568
audioStreamManager.off('audioRendererChange');
console.info('######### RendererChange Off is called #########');
3569 3570
```

3571
### on('audioCapturerChange')<sup>9+</sup>
3572

J
jiaoyanlin3 已提交
3573
on(type: 'audioCapturerChange', callback: Callback&lt;AudioCapturerChangeInfoArray&gt;): void
3574

3575
监听音频采集器更改事件。
3576

3577
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3578 3579 3580

**参数:**

3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592
| 参数名     | 类型     | 必填      | 说明                                                                                           |
| -------- | ------- | --------- | ----------------------------------------------------------------------- |
| type     | string  | 是        | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。     |
| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是     | 回调函数。   |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3593

3594 3595 3596
**示例:**

```js
3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615
audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
    console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag  ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);  
    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SampleRates: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`ChannelCounts ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
    }
3616 3617 3618 3619
  }
});
```

3620
### off('audioCapturerChange')<sup>9+</sup>
3621

J
jiaoyanlin3 已提交
3622
off(type: 'audioCapturerChange'): void;
3623

3624
取消监听音频采集器更改事件。
3625

3626
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
3627

3628
**参数:**
3629

3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640
| 参数名       | 类型     | 必填 | 说明                                                          |
| -------- | -------- | --- | ------------------------------------------------------------- |
| type     | string   |是   | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3641

3642 3643 3644
**示例:**

```js
3645 3646 3647
audioStreamManager.off('audioCapturerChange');
console.info('######### CapturerChange Off is called #########');

3648 3649
```

3650
### isActive<sup>9+</sup>
3651

3652
isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
3653

3654
获取指定音频流是否为活跃状态,使用callback方式异步返回结果。
3655

3656
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3657 3658 3659

**参数:**

3660 3661 3662 3663
| 参数名     | 类型                                | 必填 | 说明                                              |
| ---------- | ----------------------------------- | ---- | ------------------------------------------------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。                                      |
| callback   | AsyncCallback&lt;boolean&gt;        | 是   | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
3664 3665 3666

**示例:**

3667
```js
3668 3669 3670 3671
audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the active status of the stream. ${err}`);
    return;
3672
  }
3673
  console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`);
3674
});
3675 3676
```

3677
### isActive<sup>9+</sup>
3678

3679
isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
3680

3681
获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。
3682

3683
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
3684

3685 3686 3687 3688 3689 3690
**参数:**

| 参数名     | 类型                                | 必填 | 说明         |
| ---------- | ----------------------------------- | ---- | ------------ |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是   | 音频流类型。 |

3691 3692
**返回值:**

3693 3694 3695
| 类型                   | 说明                                                     |
| ---------------------- | -------------------------------------------------------- |
| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
3696 3697 3698 3699

**示例:**

```js
3700 3701
audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value) => {
  console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`);
3702
});
3703 3704
```

X
Xiangyu Li 已提交
3705 3706
### getAudioEffectInfoArray<sup>10+</sup>

3707
getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback&lt;AudioEffectInfoArray&gt;): void
X
Xiangyu Li 已提交
3708 3709 3710 3711 3712 3713 3714 3715 3716

获取当前音效模式的信息。使用callback异步回调。

**系统能力**: SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名    | 类型                                | 必填     | 说明                         |
| -------- | ----------------------------------- | -------- | --------------------------- |
3717
| usage    | [StreamUsage](#streamusage)                                    | 是     |  音频流使用类型。                |
X
Xiangyu Li 已提交
3718 3719
| callback | AsyncCallback<[AudioEffectInfoArray](#audioeffectinfoarray10)> | 是     |  回调函数,返回当前音效模式的信息。|

3720 3721 3722 3723 3724 3725
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3726
| 6800101 | Invalid parameter error. Return by callback.|
3727

X
Xiangyu Li 已提交
3728 3729 3730
**示例:**

```js
3731
audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA, async (err, audioEffectInfoArray) => {
X
Xiangyu Li 已提交
3732 3733 3734 3735 3736
  console.info('getAudioEffectInfoArray **** Get Callback Called ****');
  if (err) {
    console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
    return;
  } else {
X
Xiangyu Li 已提交
3737
    console.info(`The effect modes are: ${audioEffectInfoArray}`);
X
Xiangyu Li 已提交
3738 3739 3740 3741 3742 3743
  }
});
```

### getAudioEffectInfoArray<sup>10+</sup>

3744
getAudioEffectInfoArray(usage: StreamUsage): Promise&lt;AudioEffectInfoArray&gt;
X
Xiangyu Li 已提交
3745 3746 3747 3748 3749 3750 3751 3752 3753

获取当前音效模式的信息。使用Promise异步回调。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名    | 类型                                | 必填     | 说明                         |
| -------- | ----------------------------------- | -------- | --------------------------- |
Q
update  
Qin Peng 已提交
3754
| usage    | [StreamUsage](#streamusage)         | 是     |  音频流使用类型。               |
X
Xiangyu Li 已提交
3755 3756 3757 3758 3759 3760 3761

**返回值:**

| 类型                                                                      | 说明                                    |
| --------------------------------------------------------------------------| --------------------------------------- |
| Promise<[AudioEffectInfoArray](#audioeffectinfoarray10)>                  | Promise对象,返回当前音效模式的信息。      |

3762 3763 3764 3765 3766 3767
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
3768
| 6800101 | Invalid parameter error. Return by promise. |
3769

X
Xiangyu Li 已提交
3770 3771 3772
**示例:**

```js
3773
audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA).then((audioEffectInfoArray) => {
X
Xiangyu Li 已提交
3774
  console.info('getAudioEffectInfoArray ######### Get Promise is called ##########');
X
Xiangyu Li 已提交
3775
  console.info(`The effect modes are: ${audioEffectInfoArray}`);
Q
update  
Qin Peng 已提交
3776 3777 3778
}).catch((err) => {
  console.error(`getAudioEffectInfoArray :ERROR: ${err}`);
});
X
Xiangyu Li 已提交
3779 3780
```

3781
## AudioRoutingManager<sup>9+</sup>
3782

3783
音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。
3784

3785
### getDevices<sup>9+</sup>
3786

3787 3788 3789 3790 3791
getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void

获取音频设备列表,使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device
3792 3793 3794

**参数:**

3795 3796 3797 3798
| 参数名     | 类型                                                         | 必填 | 说明                 |
| ---------- | ------------------------------------------------------------ | ---- | -------------------- |
| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
| callback   | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调,返回设备列表。 |
3799 3800 3801 3802

**示例:**

```js
3803 3804 3805 3806 3807 3808
audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the device list. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device list is obtained.');
3809 3810 3811
});
```

3812
### getDevices<sup>9+</sup>
3813

3814
getDevices(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
3815

3816
获取音频设备列表,使用Promise方式异步返回结果。
3817

3818 3819 3820 3821 3822 3823 3824
**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名     | 类型                      | 必填 | 说明             |
| ---------- | ------------------------- | ---- | ---------------- |
| deviceFlag | [DeviceFlag](#deviceflag) | 是   | 设备类型的flag。 |
3825 3826 3827

**返回值:**

3828 3829 3830
| 类型                                                         | 说明                      |
| ------------------------------------------------------------ | ------------------------- |
| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
3831 3832 3833 3834

**示例:**

```js
3835 3836
audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data) => {
  console.info('Promise returned to indicate that the device list is obtained.');
3837 3838 3839
});
```

3840
### on('deviceChange')<sup>9+</sup>
3841

3842
on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction\>): void
3843

3844
设备更改。音频设备连接状态变化。
3845

3846
**系统能力:** SystemCapability.Multimedia.Audio.Device
3847 3848 3849

**参数:**

3850 3851 3852 3853 3854
| 参数名   | 类型                                                 | 必填 | 说明                                       |
| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
| deviceFlag | [DeviceFlag](#deviceflag)                                    | 是   | 设备类型的flag。     |
| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是   | 获取设备更新详情。                         |
3855

3856
**错误码:**
3857

3858
以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)
3859

3860 3861 3862
| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
3863 3864 3865 3866

**示例:**

```js
3867 3868 3869 3870 3871
audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged) => {
  console.info('device change type : ' + deviceChanged.type);
  console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole);
  console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType);
3872 3873 3874
});
```

3875
### off('deviceChange')<sup>9+</sup>
3876

3877
off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void
3878

3879
取消订阅音频设备连接变化事件。
3880

3881
**系统能力:** SystemCapability.Multimedia.Audio.Device
3882 3883 3884

**参数:**

3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896
| 参数名   | 类型                                                | 必填 | 说明                                       |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'deviceChange' |
| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否   | 获取设备更新详情。                         |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
J
jiao_yanlin 已提交
3897

3898
**示例:**
3899

3900
```js
W
wangtao 已提交
3901
audioRoutingManager.off('deviceChange');
3902
```
3903

3904
### selectInputDevice<sup>9+</sup>
3905

3906
selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
3907

3908
选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。
3909

3910
**系统接口:** 该接口为系统接口
3911

3912
**系统能力:** SystemCapability.Multimedia.Audio.Device
3913

3914
**参数:**
3915

3916 3917 3918 3919
| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |
| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回选择输入设备结果。 |
3920 3921 3922

**示例:**
```js
3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934
let inputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.INPUT_DEVICE,
    deviceType : audio.DeviceType.EARPIECE,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
3935
    displayName : "",
3936 3937 3938 3939 3940 3941 3942 3943 3944 3945
}];

async function selectInputDevice(){
  audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err) => {
    if (err) {
      console.error(`Result ERROR: ${err}`);
    } else {
      console.info('Select input devices result callback: SUCCESS'); }
  });
}
3946 3947
```

3948
### selectInputDevice<sup>9+</sup>
3949

3950
selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;
3951

3952
**系统接口:** 该接口为系统接口
3953

3954 3955 3956
选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device
3957 3958 3959

**参数:**

3960 3961 3962 3963 3964 3965 3966 3967 3968
| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| inputAudioDevices           | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输入设备类。               |

**返回值:**

| 类型                  | 说明                         |
| --------------------- | --------------------------- |
| Promise&lt;void&gt;   | Promise返回选择输入设备结果。 |
3969 3970

**示例:**
J
jiao_yanlin 已提交
3971

3972
```js
3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984
let inputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.INPUT_DEVICE,
    deviceType : audio.DeviceType.EARPIECE,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
3985
    displayName : "",
3986 3987 3988 3989 3990 3991 3992 3993 3994
}];

async function getRoutingManager(){
    audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => {
      console.info('Select input devices result promise: SUCCESS');
    }).catch((err) => {
      console.error(`Result ERROR: ${err}`);
    });
}
3995 3996
```

3997
### setCommunicationDevice<sup>9+</sup>
3998

3999
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
4000

4001
设置通信设备激活状态,使用callback方式异步返回结果。
4002

4003
**系统能力:** SystemCapability.Multimedia.Audio.Communication
4004

4005
**参数:**
4006

4007 4008 4009 4010 4011
| 参数名     | 类型                                  | 必填 | 说明                     |
| ---------- | ------------------------------------- | ---- | ------------------------ |
| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 音频设备类型。       |
| active     | boolean                               | 是   | 设备激活状态。           |
| callback   | AsyncCallback&lt;void&gt;             | 是   | 回调返回设置成功或失败。 |
4012 4013 4014 4015

**示例:**

```js
4016 4017 4018 4019 4020 4021
audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err) => {
  if (err) {
    console.error(`Failed to set the active status of the device. ${err}`);
    return;
  }
  console.info('Callback invoked to indicate that the device is set to the active status.');
4022
});
4023 4024
```

4025
### setCommunicationDevice<sup>9+</sup>
4026

4027
setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise&lt;void&gt;
4028

4029 4030 4031
设置通信设备激活状态,使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Communication
4032

4033
**参数:**
4034

4035 4036 4037 4038
| 参数名     | 类型                                                   | 必填 | 说明               |
| ---------- | ----------------------------------------------------- | ---- | ------------------ |
| deviceType | [CommunicationDeviceType](#communicationdevicetype9)  | 是   | 活跃音频设备类型。 |
| active     | boolean                                               | 是   | 设备激活状态。     |
4039

4040
**返回值:**
4041

4042 4043 4044
| 类型                | 说明                            |
| ------------------- | ------------------------------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
4045

4046 4047
**示例:**

J
jiao_yanlin 已提交
4048
```js
4049 4050
audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => {
  console.info('Promise returned to indicate that the device is set to the active status.');
4051 4052
});
```
4053

4054
### isCommunicationDeviceActive<sup>9+</sup>
4055

4056
isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback&lt;boolean&gt;): void
4057

4058 4059 4060
获取指定通信设备的激活状态,使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Communication
4061 4062 4063

**参数:**

4064 4065 4066 4067
| 参数名     | 类型                                                  | 必填 | 说明                     |
| ---------- | ---------------------------------------------------- | ---- | ------------------------ |
| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。       |
| callback   | AsyncCallback&lt;boolean&gt;                         | 是   | 回调返回设备的激活状态。 |
4068 4069 4070 4071

**示例:**

```js
4072 4073 4074 4075
audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err, value) => {
  if (err) {
    console.error(`Failed to obtain the active status of the device. ${err}`);
    return;
J
jiao_yanlin 已提交
4076
  }
4077
  console.info('Callback invoked to indicate that the active status of the device is obtained.');
4078 4079 4080
});
```

4081
### isCommunicationDeviceActive<sup>9+</sup>
4082

4083
isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise&lt;boolean&gt;
4084

4085
获取指定通信设备的激活状态,使用Promise方式异步返回结果。
4086

4087
**系统能力:** SystemCapability.Multimedia.Audio.Communication
4088

4089
**参数:**
4090

4091 4092 4093
| 参数名     | 类型                                                  | 必填 | 说明               |
| ---------- | ---------------------------------------------------- | ---- | ------------------ |
| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是   | 活跃音频设备类型。 |
4094

4095
**返回值:**
4096

4097 4098 4099
| Type                   | Description                     |
| ---------------------- | ------------------------------- |
| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
4100

4101 4102
**示例:**

J
jiao_yanlin 已提交
4103
```js
4104 4105
audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value) => {
  console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`);
J
jiao_yanlin 已提交
4106
});
4107
```
J
jiao_yanlin 已提交
4108

4109
### selectOutputDevice<sup>9+</sup>
4110

4111
selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void
4112

4113 4114 4115 4116 4117
选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。

**系统接口:** 该接口为系统接口

**系统能力:** SystemCapability.Multimedia.Audio.Device
4118 4119 4120

**参数:**

4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139
| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |

**示例:**
```js
let outputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
    deviceType : audio.DeviceType.SPEAKER,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
4140
    displayName : "",
4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189
}];

async function selectOutputDevice(){
  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err) => {
    if (err) {
      console.error(`Result ERROR: ${err}`);
    } else {
      console.info('Select output devices result callback: SUCCESS'); }
  });
}
```

### selectOutputDevice<sup>9+</sup>

selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;

**系统接口:** 该接口为系统接口

选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |

**返回值:**

| 类型                  | 说明                         |
| --------------------- | --------------------------- |
| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |

**示例:**

```js
let outputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
    deviceType : audio.DeviceType.SPEAKER,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
4190
    displayName : "",
4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224
}];

async function selectOutputDevice(){
  audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => {
    console.info('Select output devices result promise: SUCCESS');
  }).catch((err) => {
    console.error(`Result ERROR: ${err}`);
  });
}
```

### selectOutputDeviceByFilter<sup>9+</sup>

selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback&lt;void&gt;): void

**系统接口:** 该接口为系统接口

根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| filter                      | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
| outputAudioDevices          | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |
| callback                    | AsyncCallback&lt;void&gt;                                    | 是   | 回调,返回获取输出设备结果。 |

**示例:**
```js
let outputAudioRendererFilter = {
  uid : 20010041,
  rendererInfo : {
J
jiao_yanlin 已提交
4225 4226
    content : audio.ContentType.CONTENT_TYPE_MUSIC,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241
    rendererFlags : 0 },
  rendererId : 0 };
  
let outputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
    deviceType : audio.DeviceType.SPEAKER,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
4242
    displayName : "",
4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283
}];

async function selectOutputDeviceByFilter(){
  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err) => {
    if (err) {
      console.error(`Result ERROR: ${err}`);
    } else {
      console.info('Select output devices by filter result callback: SUCCESS'); }
  });
}
```

### selectOutputDeviceByFilter<sup>9+</sup>

selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise&lt;void&gt;

**系统接口:** 该接口为系统接口

根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名                 | 类型                                                         | 必填 | 说明                      |
| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
| filter                | [AudioRendererFilter](#audiorendererfilter9)                 | 是   | 过滤条件类。               |
| outputAudioDevices    | [AudioDeviceDescriptors](#audiodevicedescriptors)            | 是   | 输出设备类。               |

**返回值:**

| 类型                  | 说明                         |
| --------------------- | --------------------------- |
| Promise&lt;void&gt;   | Promise返回选择输出设备结果。 |

**示例:**

```js
let outputAudioRendererFilter = {
  uid : 20010041,
  rendererInfo : {
J
jiao_yanlin 已提交
4284 4285
    content : audio.ContentType.CONTENT_TYPE_MUSIC,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300
    rendererFlags : 0 },
  rendererId : 0 };

let outputAudioDeviceDescriptor = [{
    deviceRole : audio.DeviceRole.OUTPUT_DEVICE,
    deviceType : audio.DeviceType.SPEAKER,
    id : 1,
    name : "",
    address : "",
    sampleRates : [44100],
    channelCounts : [2],
    channelMasks : [0],
    networkId : audio.LOCAL_NETWORK_ID,
    interruptGroupId : 1,
    volumeGroupId : 1,
4301
    displayName : "",
4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312
}];

async function selectOutputDeviceByFilter(){
  audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => {
    console.info('Select output devices by filter result promise: SUCCESS');
  }).catch((err) => {
    console.error(`Result ERROR: ${err}`);
  })
}
```

4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332
### getPreferOutputDeviceForRendererInfo<sup>10+</sup>

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void

根据音频信息,返回优先级最高的输出设备,使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名                       | 类型                                                         | 必填 | 说明                      |
| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- |
| rendererInfo                | [AudioRendererInfo](#audiorendererinfo8)                     | 是   | 表示渲染器信息。             |
| callback                    | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;  | 是   | 回调,返回优先级最高的输出设备信息。 |

**示例:**
```js
let rendererInfo = {
    content : audio.ContentType.CONTENT_TYPE_MUSIC,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4333
    rendererFlags : 0 }
4334 4335 4336 4337

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err, desc) => {
    if (err) {
4338
      console.error(`Result ERROR: ${err}`);
4339
    } else {
4340
      console.info(`device descriptor: ${desc}`);
4341 4342 4343 4344 4345
    }
  });
}
```

4346
### getPreferOutputDeviceForRendererInfo<sup>10+</sup>
4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364
getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise&lt;AudioDeviceDescriptors&gt;

根据音频信息,返回优先级最高的输出设备,使用promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名                 | 类型                                                         | 必填 | 说明                      |
| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- |
| rendererInfo          | [AudioRendererInfo](#audiorendererinfo8)                     | 是   | 表示渲染器信息。            |

**返回值:**

| 类型                  | 说明                         |
| --------------------- | --------------------------- |
| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;   | Promise返回优先级最高的输出设备信息。 |

4365 4366 4367 4368 4369 4370 4371 4372
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |

4373 4374 4375 4376 4377 4378
**示例:**

```js
let rendererInfo = {
    content : audio.ContentType.CONTENT_TYPE_MUSIC,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4379
    rendererFlags : 0 }
4380 4381 4382

async function getPreferOutputDevice() {
  audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc) => {
4383
    console.info(`device descriptor: ${desc}`);
4384
  }).catch((err) => {
4385
    console.error(`Result ERROR: ${err}`);
4386 4387 4388 4389 4390 4391 4392 4393 4394 4395
  })
}
```

### on('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup>

on(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors\>): void

订阅最高优先级输出设备变化事件,使用callback获取最高优先级输出设备。

4396 4397
**系统能力:** SystemCapability.Multimedia.Audio.Device

4398 4399 4400 4401 4402 4403 4404 4405
**参数:**

| 参数名   | 类型                                                 | 必填 | 说明                                       |
| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- |
| type     | string                                               | 是   | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' |
| rendererInfo  | [AudioRendererInfo](#audiorendererinfo8)        | 是   | 表示渲染器信息。              |
| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是   | 获取优先级最高的输出设备信息。                         |

4406 4407 4408 4409 4410 4411 4412 4413
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |

4414 4415 4416 4417 4418 4419
**示例:**

```js
let rendererInfo = {
    content : audio.ContentType.CONTENT_TYPE_MUSIC,
    usage : audio.StreamUsage.STREAM_USAGE_MEDIA,
4420
    rendererFlags : 0 }
4421 4422

audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc) => {
4423
  console.info(`device descriptor: ${desc}`);
4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441
});
```

### off('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup>

off(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors\>): void

取消订阅最高优先级输出音频设备变化事件。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名   | 类型                                                | 必填 | 说明                                       |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------ |
| type     | string                                              | 是   | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' |
| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否   | 监听方法的回调函数。                         |

4442 4443 4444 4445 4446 4447 4448 4449
**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |

4450 4451 4452
**示例:**

```js
W
wangtao 已提交
4453
audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo');
4454 4455
```

4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473
## AudioRendererChangeInfoArray<sup>9+</sup>

数组类型,AudioRenderChangeInfo数组,只读。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

## AudioRendererChangeInfo<sup>9+</sup>

描述音频渲染器更改信息。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
| clientUid          | number                                    | 是   | 否   | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口。 |
| rendererInfo       | [AudioRendererInfo](#audiorendererinfo8)  | 是   | 否   | 音频渲染器信息。               |
| rendererState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
4474
| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532

**示例:**

```js

import audio from '@ohos.multimedia.audio';

const audioManager = audio.getAudioManager();
let audioStreamManager = audioManager.getStreamManager();
let resultFlag = false;

audioStreamManager.on('audioRendererChange',  (AudioRendererChangeInfoArray) => {
  for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) {
    console.info(`## RendererChange on is called for ${i} ##`);
    console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`);
    console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`);
    console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`);
    console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`);
    console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`);
    console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`);
  	let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors;
  	for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) {
  	  console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`);
  	  console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
  	  console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
  	  console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`);
  	  console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`);
  	  console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
  	  console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
  	  console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
  	}
    if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) {
      resultFlag = true;
      console.info(`ResultFlag for ${i} is: ${resultFlag}`);
    }
  }
});
```


## AudioCapturerChangeInfoArray<sup>9+</sup>

数组类型,AudioCapturerChangeInfo数组,只读。

**系统能力:** SystemCapability.Multimedia.Audio.Capturer

## AudioCapturerChangeInfo<sup>9+</sup>

描述音频采集器更改信息。

**系统能力:** SystemCapability.Multimedia.Audio.Capturer

| 名称               | 类型                                       | 可读 | 可写 | 说明                          |
| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- |
| streamId           | number                                    | 是   | 否   | 音频流唯一id。                |
| clientUid          | number                                    | 是   | 否   | 音频采集器客户端应用程序的Uid。<br/>此接口为系统接口。 |
| capturerInfo       | [AudioCapturerInfo](#audiocapturerinfo8)  | 是   | 否   | 音频采集器信息。               |
| capturerState      | [AudioState](#audiostate)                 | 是   | 否   | 音频状态。<br/>此接口为系统接口。|
4533
| deviceDescriptors  | [AudioDeviceDescriptors](#audiodevicedescriptors)      | 是   | 否   | 音频设备描述。|
4534 4535 4536 4537

**示例:**

```js
4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566
import audio from '@ohos.multimedia.audio';

const audioManager = audio.getAudioManager();
let audioStreamManager = audioManager.getStreamManager();

let resultFlag = false;
audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) =>  {
  for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) {
    console.info(`## CapChange on is called for element ${i} ##`);
    console.info(`StrId for  ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`);
    console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`);
    console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`);
    console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`);
    console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`);
    let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors;
    for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) {
      console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`);
      console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`);
      console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`);
      console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`);
      console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`);
      console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`);
      console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`);
      console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks}`);
    }
    if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) {
      resultFlag = true;
      console.info(`ResultFlag for element ${i} is: ${resultFlag}`);
    }
J
jiao_yanlin 已提交
4567
  }
4568 4569 4570
});
```

4571 4572
## AudioEffectInfoArray<sup>10+</sup>

Q
update  
Qin Peng 已提交
4573
待查询ContentType和StreamUsage组合场景下的音效模式数组类型,[AudioEffectMode](#audioeffectmode10)数组,只读。
4574

4575
## AudioDeviceDescriptors
Z
zengyawen 已提交
4576

4577
设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。
M
mamingshuai 已提交
4578

4579
## AudioDeviceDescriptor
Z
zengyawen 已提交
4580

4581
描述音频设备。
Z
zengyawen 已提交
4582

4583
**系统能力:** SystemCapability.Multimedia.Audio.Device
L
lwx1059628 已提交
4584

4585 4586 4587 4588
| 名称                          | 类型                       | 可读 | 可写 | 说明       |
| ----------------------------- | -------------------------- | ---- | ---- | ---------- |
| deviceRole                    | [DeviceRole](#devicerole)  | 是   | 否   | 设备角色。 |
| deviceType                    | [DeviceType](#devicetype)  | 是   | 否   | 设备类型。 |
J
jiao_yanlin 已提交
4589
| id<sup>9+</sup>               | number                     | 是   | 否   | 设备id,唯一。  |
J
jiaoyanlin3 已提交
4590 4591
| name<sup>9+</sup>             | string                     | 是   | 否   | 设备名称。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 |
| address<sup>9+</sup>          | string                     | 是   | 否   | 设备地址。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 |
4592 4593 4594
| sampleRates<sup>9+</sup>      | Array&lt;number&gt;        | 是   | 否   | 支持的采样率。 |
| channelCounts<sup>9+</sup>    | Array&lt;number&gt;        | 是   | 否   | 支持的通道数。 |
| channelMasks<sup>9+</sup>     | Array&lt;number&gt;        | 是   | 否   | 支持的通道掩码。 |
L
li-yifan2 已提交
4595
| displayName<sup>10+</sup>     | string                     | 是   | 否   | 设备显示名。 |
4596 4597 4598
| networkId<sup>9+</sup>        | string                     | 是   | 否   | 设备组网的ID。<br/>此接口为系统接口。 |
| interruptGroupId<sup>9+</sup> | number                     | 是   | 否   | 设备所处的焦点组ID。<br/>此接口为系统接口。 |
| volumeGroupId<sup>9+</sup>    | number                     | 是   | 否   | 设备所处的音量组ID。<br/>此接口为系统接口。 |
Z
zengyawen 已提交
4599

4600 4601 4602
**示例:**

```js
4603
import audio from '@ohos.multimedia.audio';
4604

4605 4606 4607
function displayDeviceProp(value) {
  deviceRoleValue = value.deviceRole;
  deviceTypeValue = value.deviceType;
4608
}
4609

4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622
let deviceRoleValue = null;
let deviceTypeValue = null;
const promise = audio.getAudioManager().getDevices(1);
promise.then(function (value) {
  console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG');
  value.forEach(displayDeviceProp);
  if (deviceTypeValue != null && deviceRoleValue != null){
    console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  PASS');
  } else {
    console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG :  FAIL');
  }
});
```
4623

4624
## AudioRendererFilter<sup>9+</sup>
4625

4626
过滤条件类。在调用selectOutputDeviceByFilter接口前,需要先创建AudioRendererFilter实例。
4627

4628
**系统接口:** 该接口为系统接口
4629

4630 4631
| 名称          | 类型                                     | 必填 | 说明          |
| -------------| ---------------------------------------- | ---- | -------------- |
4632
| uid          | number                                   |  否  | 表示应用ID。<br> **系统能力:** SystemCapability.Multimedia.Audio.Core|
4633 4634
| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) |  否  | 表示渲染器信息。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
| rendererId   | number                                   |  否  | 音频流唯一id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer|
4635 4636 4637 4638

**示例:**

```js
4639 4640 4641 4642 4643 4644 4645
let outputAudioRendererFilter = {
  "uid":20010041,
  "rendererInfo": {
    "contentType":audio.ContentType.CONTENT_TYPE_MUSIC,
    "streamUsage":audio.StreamUsage.STREAM_USAGE_MEDIA,
    "rendererFlags":0 },
  "rendererId":0 };
4646 4647
```

4648
## AudioRenderer<sup>8+</sup>
Z
zengyawen 已提交
4649

4650
提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。
4651

4652
### 属性
Z
zengyawen 已提交
4653

4654
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4655

4656 4657 4658
| 名称  | 类型                     | 可读 | 可写 | 说明               |
| ----- | -------------------------- | ---- | ---- | ------------------ |
| state<sup>8+</sup> | [AudioState](#audiostate8) | 是   | 否   | 音频渲染器的状态。 |
Z
zengyawen 已提交
4659 4660 4661

**示例:**

J
jiao_yanlin 已提交
4662
```js
4663
let state = audioRenderer.state;
Z
zengyawen 已提交
4664 4665
```

4666
### getRendererInfo<sup>8+</sup>
Z
zengyawen 已提交
4667

4668
getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void
Z
zengyawen 已提交
4669

4670
获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。
Z
zengyawen 已提交
4671

4672
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4673 4674 4675

**参数:**

4676 4677 4678
| 参数名   | 类型                                                     | 必填 | 说明                   |
| :------- | :------------------------------------------------------- | :--- | :--------------------- |
| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是   | 返回音频渲染器的信息。 |
Z
zengyawen 已提交
4679 4680 4681

**示例:**

J
jiao_yanlin 已提交
4682
```js
4683 4684 4685 4686 4687
audioRenderer.getRendererInfo((err, rendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`);
L
lwx1059628 已提交
4688
});
Z
zengyawen 已提交
4689 4690
```

4691
### getRendererInfo<sup>8+</sup>
Z
zengyawen 已提交
4692

4693
getRendererInfo(): Promise<AudioRendererInfo\>
Z
zengyawen 已提交
4694

4695
获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。
Z
zengyawen 已提交
4696

4697
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4698

4699
**返回值:**
Z
zengyawen 已提交
4700

4701 4702 4703
| 类型                                               | 说明                            |
| -------------------------------------------------- | ------------------------------- |
| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频渲染器信息。 |
Z
zengyawen 已提交
4704 4705 4706

**示例:**

J
jiao_yanlin 已提交
4707
```js
4708 4709 4710 4711 4712 4713 4714 4715
audioRenderer.getRendererInfo().then((rendererInfo) => {
  console.info('Renderer GetRendererInfo:');
  console.info(`Renderer content: ${rendererInfo.content}`);
  console.info(`Renderer usage: ${rendererInfo.usage}`);
  console.info(`Renderer flags: ${rendererInfo.rendererFlags}`)
}).catch((err) => {
  console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`);
});
Z
zengyawen 已提交
4716 4717
```

4718
### getStreamInfo<sup>8+</sup>
Z
zengyawen 已提交
4719

4720
getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
Z
zengyawen 已提交
4721

4722
获取音频流信息,使用callback方式异步返回结果。
Z
zengyawen 已提交
4723

4724
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4725 4726 4727

**参数:**

4728 4729 4730
| 参数名   | 类型                                                 | 必填 | 说明                 |
| :------- | :--------------------------------------------------- | :--- | :------------------- |
| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 回调返回音频流信息。 |
Z
zengyawen 已提交
4731 4732 4733

**示例:**

J
jiao_yanlin 已提交
4734
```js
4735 4736 4737 4738 4739 4740
audioRenderer.getStreamInfo((err, streamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
L
lwx1059628 已提交
4741
});
Z
zengyawen 已提交
4742 4743
```

4744
### getStreamInfo<sup>8+</sup>
Z
zengyawen 已提交
4745

4746
getStreamInfo(): Promise<AudioStreamInfo\>
Z
zengyawen 已提交
4747

4748
获取音频流信息,使用Promise方式异步返回结果。
Z
zengyawen 已提交
4749

4750
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4751

4752 4753 4754 4755 4756
**返回值:**

| 类型                                           | 说明                   |
| :--------------------------------------------- | :--------------------- |
| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise返回音频流信息. |
Z
zengyawen 已提交
4757 4758 4759

**示例:**

J
jiao_yanlin 已提交
4760
```js
4761 4762 4763 4764 4765 4766 4767 4768 4769
audioRenderer.getStreamInfo().then((streamInfo) => {
  console.info('Renderer GetStreamInfo:');
  console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`);
  console.info(`Renderer channel: ${streamInfo.channels}`);
  console.info(`Renderer format: ${streamInfo.sampleFormat}`);
  console.info(`Renderer encoding type: ${streamInfo.encodingType}`);
}).catch((err) => {
  console.error(`ERROR: ${err}`);
});
Z
zengyawen 已提交
4770 4771
```

4772
### getAudioStreamId<sup>9+</sup>
4773

4774
getAudioStreamId(callback: AsyncCallback<number\>): void
4775

4776
获取音频流id,使用callback方式异步返回结果。
4777

4778
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4779 4780 4781

**参数:**

4782 4783 4784
| 参数名   | 类型                                                 | 必填 | 说明                 |
| :------- | :--------------------------------------------------- | :--- | :------------------- |
| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
4785 4786 4787 4788

**示例:**

```js
4789 4790
audioRenderer.getAudioStreamId((err, streamid) => {
  console.info(`Renderer GetStreamId: ${streamid}`);
4791 4792 4793
});
```

4794
### getAudioStreamId<sup>9+</sup>
4795

4796
getAudioStreamId(): Promise<number\>
4797

4798
获取音频流id,使用Promise方式异步返回结果。
4799

4800
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
4801 4802 4803

**返回值:**

4804 4805 4806
| 类型                                           | 说明                   |
| :--------------------------------------------- | :--------------------- |
| Promise<number\> | Promise返回音频流id。 |
4807 4808 4809 4810

**示例:**

```js
4811 4812
audioRenderer.getAudioStreamId().then((streamid) => {
  console.info(`Renderer getAudioStreamId: ${streamid}`);
4813
}).catch((err) => {
4814
  console.error(`ERROR: ${err}`);
4815 4816 4817
});
```

Q
Qin Peng 已提交
4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829
### setAudioEffectMode<sup>10+</sup>

setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback\<void>): void

设置当前音效模式。使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名   | 类型                                     | 必填 | 说明                     |
| -------- | ---------------------------------------- | ---- | ------------------------ |
Q
update  
Qin Peng 已提交
4830 4831
| mode     | [AudioEffectMode](#audioeffectmode10)    | 是   | 音效模式。               |
| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。  |
Q
Qin Peng 已提交
4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856

**示例:**

```js
audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful audio effect mode setting.');
  }
});
```

### setAudioEffectMode<sup>10+</sup>

setAudioEffectMode(mode: AudioEffectMode): Promise\<void>

设置当前音效模式。使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名 | 类型                                     | 必填 | 说明         |
| ------ | ---------------------------------------- | ---- | ------------ |
Q
update  
Qin Peng 已提交
4857
| mode   | [AudioEffectMode](#audioeffectmode10)   | 是   | 音效模式。 |
Q
Qin Peng 已提交
4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892

**返回值:**

| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise用于返回执行结果。 |

**示例:**

```js
audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => {
  console.info('setAudioEffectMode SUCCESS');
}).catch((err) => {
  console.error(`ERROR: ${err}`);
});
```

### getAudioEffectMode<sup>10+</sup>

getAudioEffectMode(callback: AsyncCallback\<AudioEffectMode>): void

获取当前音效模式。使用callback方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名   | 类型                                                    | 必填 | 说明               |
| -------- | ------------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback<[AudioEffectMode](#audioeffectmode10)> | 是   | 回调返回当前音效模式。 |

**示例:**

```js
audioRenderer.getAudioEffectMode((err, effectmode) => {
Q
update  
Qin Peng 已提交
4893 4894 4895 4896 4897
  if (err) {
    console.error('Failed to get params');
  } else {
    console.info(`getAudioEffectMode: ${effectmode}`);
  }
Q
Qin Peng 已提交
4898 4899 4900
});
```

Q
update  
Qin Peng 已提交
4901
### getAudioEffectMode<sup>10+</sup>
Q
Qin Peng 已提交
4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924

getAudioEffectMode(): Promise\<AudioEffectMode>

获取当前音效模式。使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**返回值:**

| 类型                                              | 说明                      |
| ------------------------------------------------- | ------------------------- |
| Promise<[AudioEffectMode](#audioeffectmode10)> | Promise回调返回当前音效模式。 |

**示例:**

```js
audioRenderer.getAudioEffectMode().then((effectmode) => {
  console.info(`getAudioEffectMode: ${effectmode}`);
}).catch((err) => {
  console.error(`ERROR: ${err}`);
});
```

4925
### start<sup>8+</sup>
Z
zengyawen 已提交
4926

4927
start(callback: AsyncCallback<void\>): void
Z
zengyawen 已提交
4928

4929
启动音频渲染器。使用callback方式异步返回结果。
Z
zengyawen 已提交
4930

4931
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4932 4933 4934

**参数:**

4935 4936 4937
| 参数名   | 类型                 | 必填 | 说明       |
| -------- | -------------------- | ---- | ---------- |
| callback | AsyncCallback\<void> | 是   | 回调函数。 |
Z
zengyawen 已提交
4938 4939 4940

**示例:**

J
jiao_yanlin 已提交
4941
```js
4942
audioRenderer.start((err) => {
J
jiao_yanlin 已提交
4943
  if (err) {
4944
    console.error('Renderer start failed.');
J
jiao_yanlin 已提交
4945
  } else {
4946
    console.info('Renderer start success.');
J
jiao_yanlin 已提交
4947
  }
L
lwx1059628 已提交
4948
});
Z
zengyawen 已提交
4949 4950
```

4951
### start<sup>8+</sup>
Z
zengyawen 已提交
4952

4953
start(): Promise<void\>
Z
zengyawen 已提交
4954

4955
启动音频渲染器。使用Promise方式异步返回结果。
Z
zengyawen 已提交
4956

4957
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4958 4959 4960

**返回值:**

4961 4962 4963
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise方式异步返回结果。 |
Z
zengyawen 已提交
4964 4965 4966

**示例:**

J
jiao_yanlin 已提交
4967
```js
4968 4969
audioRenderer.start().then(() => {
  console.info('Renderer started');
L
lwx1059628 已提交
4970
}).catch((err) => {
4971
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
4972
});
Z
zengyawen 已提交
4973 4974
```

4975
### pause<sup>8+</sup>
Z
zengyawen 已提交
4976

4977
pause(callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
4978

4979
暂停渲染。使用callback方式异步返回结果。
Z
zengyawen 已提交
4980

4981
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
4982 4983 4984

**参数:**

4985 4986 4987
| 参数名   | 类型                 | 必填 | 说明             |
| -------- | -------------------- | ---- | ---------------- |
| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
Z
zengyawen 已提交
4988 4989 4990

**示例:**

J
jiao_yanlin 已提交
4991
```js
4992 4993 4994 4995 4996 4997
audioRenderer.pause((err) => {
  if (err) {
    console.error('Renderer pause failed');
  } else {
    console.info('Renderer paused.');
  }
L
lwx1059628 已提交
4998
});
Z
zengyawen 已提交
4999 5000
```

5001
### pause<sup>8+</sup>
Z
zengyawen 已提交
5002

5003
pause(): Promise\<void>
Z
zengyawen 已提交
5004

5005
暂停渲染。使用Promise方式异步返回结果。
Z
zengyawen 已提交
5006

5007
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5008 5009 5010

**返回值:**

5011 5012 5013
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise方式异步返回结果。 |
Z
zengyawen 已提交
5014 5015 5016

**示例:**

J
jiao_yanlin 已提交
5017
```js
5018 5019
audioRenderer.pause().then(() => {
  console.info('Renderer paused');
L
lwx1059628 已提交
5020
}).catch((err) => {
5021
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5022
});
Z
zengyawen 已提交
5023 5024
```

5025
### drain<sup>8+</sup>
Z
zengyawen 已提交
5026

5027
drain(callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
5028

5029
检查缓冲区是否已被耗尽。使用callback方式异步返回结果。
Z
zengyawen 已提交
5030

5031
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5032 5033 5034

**参数:**

5035 5036 5037
| 参数名   | 类型                 | 必填 | 说明             |
| -------- | -------------------- | ---- | ---------------- |
| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
Z
zengyawen 已提交
5038 5039 5040

**示例:**

J
jiao_yanlin 已提交
5041
```js
5042
audioRenderer.drain((err) => {
J
jiao_yanlin 已提交
5043
  if (err) {
5044
    console.error('Renderer drain failed');
J
jiao_yanlin 已提交
5045
  } else {
5046
    console.info('Renderer drained.');
J
jiao_yanlin 已提交
5047
  }
L
lwx1059628 已提交
5048
});
Z
zengyawen 已提交
5049 5050
```

5051
### drain<sup>8+</sup>
Z
zengyawen 已提交
5052

5053
drain(): Promise\<void>
Z
zengyawen 已提交
5054

5055
检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。
5056

5057
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5058 5059 5060

**返回值:**

5061 5062 5063
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise方式异步返回结果。 |
Z
zengyawen 已提交
5064 5065 5066

**示例:**

J
jiao_yanlin 已提交
5067
```js
5068 5069
audioRenderer.drain().then(() => {
  console.info('Renderer drained successfully');
L
lwx1059628 已提交
5070
}).catch((err) => {
5071
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5072
});
Z
zengyawen 已提交
5073 5074 5075 5076
```

### stop<sup>8+</sup>

5077
stop(callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
5078

5079
停止渲染。使用callback方式异步返回结果。
Z
zengyawen 已提交
5080

5081
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5082 5083 5084

**参数:**

5085 5086 5087
| 参数名   | 类型                 | 必填 | 说明             |
| -------- | -------------------- | ---- | ---------------- |
| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
Z
zengyawen 已提交
5088 5089 5090

**示例:**

J
jiao_yanlin 已提交
5091
```js
5092
audioRenderer.stop((err) => {
J
jiao_yanlin 已提交
5093
  if (err) {
5094
    console.error('Renderer stop failed');
J
jiao_yanlin 已提交
5095
  } else {
5096
    console.info('Renderer stopped.');
J
jiao_yanlin 已提交
5097
  }
L
lwx1059628 已提交
5098
});
Z
zengyawen 已提交
5099 5100 5101 5102
```

### stop<sup>8+</sup>

5103
stop(): Promise\<void>
Z
zengyawen 已提交
5104

5105
停止渲染。使用Promise方式异步返回结果。
Z
zengyawen 已提交
5106

5107
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5108 5109 5110

**返回值:**

5111 5112 5113
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise方式异步返回结果。 |
Z
zengyawen 已提交
5114

5115 5116 5117 5118 5119
**示例:**

```js
audioRenderer.stop().then(() => {
  console.info('Renderer stopped successfully');
L
lwx1059628 已提交
5120
}).catch((err) => {
5121
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5122
});
Z
zengyawen 已提交
5123 5124 5125 5126
```

### release<sup>8+</sup>

5127
release(callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
5128

5129
释放音频渲染器。使用callback方式异步返回结果。
Z
zengyawen 已提交
5130

5131
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5132 5133 5134

**参数:**

5135 5136 5137
| 参数名   | 类型                 | 必填 | 说明             |
| -------- | -------------------- | ---- | ---------------- |
| callback | AsyncCallback\<void> | 是   | 返回回调的结果。 |
Z
zengyawen 已提交
5138 5139 5140

**示例:**

J
jiao_yanlin 已提交
5141
```js
5142
audioRenderer.release((err) => {
J
jiao_yanlin 已提交
5143
  if (err) {
5144
    console.error('Renderer release failed');
J
jiao_yanlin 已提交
5145
  } else {
5146
    console.info('Renderer released.');
J
jiao_yanlin 已提交
5147
  }
L
lwx1059628 已提交
5148
});
Z
zengyawen 已提交
5149 5150 5151 5152
```

### release<sup>8+</sup>

5153
release(): Promise\<void>
Z
zengyawen 已提交
5154

5155
释放渲染器。使用Promise方式异步返回结果。
Z
zengyawen 已提交
5156

5157
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5158 5159 5160

**返回值:**

5161 5162 5163
| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise方式异步返回结果。 |
Z
zengyawen 已提交
5164 5165 5166

**示例:**

J
jiao_yanlin 已提交
5167
```js
5168 5169
audioRenderer.release().then(() => {
  console.info('Renderer released successfully');
L
lwx1059628 已提交
5170
}).catch((err) => {
5171
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5172
});
Z
zengyawen 已提交
5173 5174
```

5175
### write<sup>8+</sup>
Z
zengyawen 已提交
5176

5177
write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void
Z
zengyawen 已提交
5178

5179
写入缓冲区。使用callback方式异步返回结果。
Z
zengyawen 已提交
5180

5181
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5182 5183 5184

**参数:**

5185 5186 5187 5188
| 参数名   | 类型                   | 必填 | 说明                                                |
| -------- | ---------------------- | ---- | --------------------------------------------------- |
| buffer   | ArrayBuffer            | 是   | 要写入缓冲区的数据。                                |
| callback | AsyncCallback\<number> | 是   | 回调如果成功,返回写入的字节数,否则返回errorcode。 |
Z
zengyawen 已提交
5189 5190 5191

**示例:**

J
jiao_yanlin 已提交
5192
```js
J
jiao_yanlin 已提交
5193
let bufferSize;
5194 5195
audioRenderer.getBufferSize().then((data)=> {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
J
jiao_yanlin 已提交
5196 5197
  bufferSize = data;
  }).catch((err) => {
5198
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
J
jiao_yanlin 已提交
5199
  });
5200 5201 5202 5203 5204 5205 5206
console.info(`Buffer size: ${bufferSize}`);
let context = featureAbility.getContext();
let path;
async function getCacheDir(){
  path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
5207
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
5208 5209 5210 5211
fs.stat(path).then((stat) => {
  let buf = new ArrayBuffer(bufferSize);
  let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  for (let i = 0;i < len; i++) {
5212
    let options = {
J
jiao_yanlin 已提交
5213 5214
      offset: i * bufferSize,
      length: bufferSize
5215 5216 5217
    }
    let readsize = await fs.read(file.fd, buf, options)
    let writeSize = await new Promise((resolve,reject)=>{
J
jiao_yanlin 已提交
5218
      audioRenderer.write(buf,(err,writeSize)=>{
5219 5220 5221 5222 5223 5224 5225
        if(err){
          reject(err)
        }else{
          resolve(writeSize)
        }
      })
    })	  
5226 5227 5228
  }
});

5229

Z
zengyawen 已提交
5230 5231
```

5232
### write<sup>8+</sup>
Z
zengyawen 已提交
5233

5234
write(buffer: ArrayBuffer): Promise\<number>
5235

5236
写入缓冲区。使用Promise方式异步返回结果。
5237

5238
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5239 5240 5241

**返回值:**

5242 5243 5244
| 类型             | 说明                                                         |
| ---------------- | ------------------------------------------------------------ |
| Promise\<number> | Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。 |
Z
zengyawen 已提交
5245 5246 5247

**示例:**

J
jiao_yanlin 已提交
5248
```js
J
jiao_yanlin 已提交
5249
let bufferSize;
5250 5251
audioRenderer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
J
jiao_yanlin 已提交
5252 5253
  bufferSize = data;
  }).catch((err) => {
5254
  console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
J
jiao_yanlin 已提交
5255
  });
5256 5257 5258 5259 5260 5261 5262
console.info(`BufferSize: ${bufferSize}`);
let context = featureAbility.getContext();
let path;
async function getCacheDir(){
  path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
5263
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279
fs.stat(path).then((stat) => {
  let buf = new ArrayBuffer(bufferSize);
  let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1);
  for (let i = 0;i < len; i++) {
      let options = {
        offset: i * bufferSize,
        length: bufferSize
      }
      let readsize = await fs.read(file.fd, buf, options)
      try{
         let writeSize = await audioRenderer.write(buf);
      } catch(err) {
         console.error(`audioRenderer.write err: ${err}`);
      }   
  }
});
Z
zengyawen 已提交
5280 5281 5282 5283
```

### getAudioTime<sup>8+</sup>

5284
getAudioTime(callback: AsyncCallback\<number>): void
Z
zengyawen 已提交
5285

5286
获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。
Z
zengyawen 已提交
5287

5288
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5289 5290 5291

**参数:**

5292 5293 5294
| 参数名   | 类型                   | 必填 | 说明             |
| -------- | ---------------------- | ---- | ---------------- |
| callback | AsyncCallback\<number> | 是   | 回调返回时间戳。 |
Z
zengyawen 已提交
5295 5296 5297

**示例:**

J
jiao_yanlin 已提交
5298
```js
5299
audioRenderer.getAudioTime((err, timestamp) => {
5300
  console.info(`Current timestamp: ${timestamp}`);
L
lwx1059628 已提交
5301
});
Z
zengyawen 已提交
5302 5303 5304 5305
```

### getAudioTime<sup>8+</sup>

5306
getAudioTime(): Promise\<number>
Z
zengyawen 已提交
5307

5308
获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。
Z
zengyawen 已提交
5309

5310
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5311 5312 5313

**返回值:**

5314 5315 5316
| 类型             | 描述                    |
| ---------------- | ----------------------- |
| Promise\<number> | Promise回调返回时间戳。 |
Z
zengyawen 已提交
5317 5318 5319

**示例:**

J
jiao_yanlin 已提交
5320
```js
5321 5322
audioRenderer.getAudioTime().then((timestamp) => {
  console.info(`Current timestamp: ${timestamp}`);
L
lwx1059628 已提交
5323
}).catch((err) => {
5324
  console.error(`ERROR: ${err}`);
5325 5326 5327 5328 5329
});
```

### getBufferSize<sup>8+</sup>

5330
getBufferSize(callback: AsyncCallback\<number>): void
5331

5332
获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。
5333

5334
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5335 5336 5337

**参数:**

5338 5339 5340
| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
| callback | AsyncCallback\<number> | 是   | 回调返回缓冲区大小。 |
5341 5342 5343 5344

**示例:**

```js
5345 5346 5347
let bufferSize = audioRenderer.getBufferSize(async(err, bufferSize) => {
  if (err) {
    console.error('getBufferSize error');
5348 5349 5350 5351 5352 5353
  }
});
```

### getBufferSize<sup>8+</sup>

5354
getBufferSize(): Promise\<number>
5355

5356
获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。
5357

5358
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5359 5360 5361

**返回值:**

5362 5363 5364
| 类型             | 说明                        |
| ---------------- | --------------------------- |
| Promise\<number> | promise回调返回缓冲区大小。 |
5365 5366 5367 5368 5369

**示例:**

```js
let bufferSize;
5370 5371
audioRenderer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`);
5372 5373
  bufferSize = data;
}).catch((err) => {
5374
  console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`);
L
lwx1059628 已提交
5375
});
Z
zengyawen 已提交
5376 5377
```

5378
### setRenderRate<sup>8+</sup>
Z
zengyawen 已提交
5379

5380
setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
5381

5382
设置音频渲染速率。使用callback方式异步返回结果。
Z
zengyawen 已提交
5383

5384
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5385 5386 5387

**参数:**

5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423
| 参数名   | 类型                                     | 必填 | 说明                     |
| -------- | ---------------------------------------- | ---- | ------------------------ |
| rate     | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。             |
| callback | AsyncCallback\<void>                     | 是   | 用于返回执行结果的回调。 |

**示例:**

```js
audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err) => {
  if (err) {
    console.error('Failed to set params');
  } else {
    console.info('Callback invoked to indicate a successful render rate setting.');
  }
});
```

### setRenderRate<sup>8+</sup>

setRenderRate(rate: AudioRendererRate): Promise\<void>

设置音频渲染速率。使用Promise方式异步返回结果。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名 | 类型                                     | 必填 | 说明         |
| ------ | ---------------------------------------- | ---- | ------------ |
| rate   | [AudioRendererRate](#audiorendererrate8) | 是   | 渲染的速率。 |

**返回值:**

| 类型           | 说明                      |
| -------------- | ------------------------- |
| Promise\<void> | Promise用于返回执行结果。 |
Z
zengyawen 已提交
5424 5425 5426

**示例:**

J
jiao_yanlin 已提交
5427
```js
5428 5429 5430 5431
audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => {
  console.info('setRenderRate SUCCESS');
}).catch((err) => {
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5432
});
Z
zengyawen 已提交
5433 5434
```

5435
### getRenderRate<sup>8+</sup>
Z
zengyawen 已提交
5436

5437
getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void
Z
zengyawen 已提交
5438

5439
获取当前渲染速率。使用callback方式异步返回结果。
Z
zengyawen 已提交
5440

5441
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5442

5443
**参数:**
Z
zengyawen 已提交
5444

5445 5446 5447
| 参数名   | 类型                                                    | 必填 | 说明               |
| -------- | ------------------------------------------------------- | ---- | ------------------ |
| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是   | 回调返回渲染速率。 |
Z
zengyawen 已提交
5448 5449 5450

**示例:**

J
jiao_yanlin 已提交
5451
```js
5452 5453 5454
audioRenderer.getRenderRate((err, renderrate) => {
  console.info(`getRenderRate: ${renderrate}`);
});
Z
zengyawen 已提交
5455 5456
```

5457
### getRenderRate<sup>8+</sup>
Z
zengyawen 已提交
5458

5459
getRenderRate(): Promise\<AudioRendererRate>
Z
zengyawen 已提交
5460

5461
获取当前渲染速率。使用Promise方式异步返回结果。
Z
zengyawen 已提交
5462

5463
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5464

5465
**返回值:**
Z
zengyawen 已提交
5466

5467 5468 5469
| 类型                                              | 说明                      |
| ------------------------------------------------- | ------------------------- |
| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 |
Z
zengyawen 已提交
5470 5471 5472

**示例:**

J
jiao_yanlin 已提交
5473
```js
5474 5475 5476 5477
audioRenderer.getRenderRate().then((renderRate) => {
  console.info(`getRenderRate: ${renderRate}`);
}).catch((err) => {
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
5478
});
Z
zengyawen 已提交
5479
```
5480
### setInterruptMode<sup>9+</sup>
Z
zengyawen 已提交
5481

5482
setInterruptMode(mode: InterruptMode): Promise&lt;void&gt;
Z
zengyawen 已提交
5483

5484
设置应用的焦点模型。使用Promise异步回调。
Z
zengyawen 已提交
5485

5486
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
Z
zengyawen 已提交
5487 5488 5489

**参数:**

5490 5491 5492 5493 5494 5495 5496 5497 5498
| 参数名     | 类型                                | 必填   | 说明        |
| ---------- | ---------------------------------- | ------ | ---------- |
| mode       | [InterruptMode](#interruptmode9)    | 是     | 焦点模型。  |

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
Z
zengyawen 已提交
5499 5500 5501

**示例:**

J
jiao_yanlin 已提交
5502
```js
5503 5504 5505 5506 5507 5508
let mode = 0;
audioRenderer.setInterruptMode(mode).then(data=>{
  console.info('setInterruptMode Success!');
}).catch((err) => {
  console.error(`setInterruptMode Fail: ${err}`);
});
Z
zengyawen 已提交
5509
```
5510
### setInterruptMode<sup>9+</sup>
Z
zengyawen 已提交
5511

5512
setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void
Z
zengyawen 已提交
5513

5514
设置应用的焦点模型。使用Callback回调返回执行结果。
Z
zengyawen 已提交
5515

5516
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
Z
zengyawen 已提交
5517 5518 5519

**参数:**

5520 5521 5522 5523
| 参数名   | 类型                                | 必填   | 说明            |
| ------- | ----------------------------------- | ------ | -------------- |
|mode     | [InterruptMode](#interruptmode9)     | 是     | 焦点模型。|
|callback | AsyncCallback\<void>                 | 是     |回调返回执行结果。|
Z
zengyawen 已提交
5524 5525 5526

**示例:**

J
jiao_yanlin 已提交
5527
```js
5528 5529 5530 5531
let mode = 1;
audioRenderer.setInterruptMode(mode, (err, data)=>{
  if(err){
    console.error(`setInterruptMode Fail: ${err}`);
5532
  }
5533
  console.info('setInterruptMode Success!');
L
lwx1059628 已提交
5534
});
Z
zengyawen 已提交
5535 5536
```

5537
### setVolume<sup>9+</sup>
Z
zengyawen 已提交
5538

5539
setVolume(volume: number): Promise&lt;void&gt;
Z
zengyawen 已提交
5540

5541
设置应用的音量。使用Promise异步回调。
5542

5543
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5544

5545
**参数:**
Z
zengyawen 已提交
5546

5547 5548 5549
| 参数名     | 类型    | 必填   | 说明                 |
| ---------- | ------- | ------ | ------------------- |
| volume     | number  | 是     | 音量值范围为0.0-1.0。 |
Z
zengyawen 已提交
5550

5551
**返回值:**
5552

5553 5554 5555
| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;void&gt; | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 |
5556

5557
**示例:**
5558

5559
```js
5560
audioRenderer.setVolume(0.5).then(data=>{
5561 5562 5563 5564 5565 5566
  console.info('setVolume Success!');
}).catch((err) => {
  console.error(`setVolume Fail: ${err}`);
});
```
### setVolume<sup>9+</sup>
5567

5568
setVolume(volume: number, callback: AsyncCallback\<void>): void
5569

5570
设置应用的音量。使用Callback回调返回执行结果。
5571

5572
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5573 5574 5575

**参数:**

5576 5577 5578
| 参数名  | 类型       | 必填   | 说明                 |
| ------- | -----------| ------ | ------------------- |
|volume   | number     | 是     | 音量值范围为0.0-1.0。 |
5579
|callback | AsyncCallback\<void> | 是     |回调返回执行结果。|
Z
zengyawen 已提交
5580 5581 5582

**示例:**

J
jiao_yanlin 已提交
5583
```js
5584
audioRenderer.setVolume(0.5, (err, data)=>{
5585 5586
  if(err){
    console.error(`setVolume Fail: ${err}`);
5587
  }
5588
  console.info('setVolume Success!');
L
lwx1059628 已提交
5589
});
Z
zengyawen 已提交
5590
```
5591

W
wangzx0705 已提交
5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603
### getMinStreamVolume<sup>10+</sup>

getMinStreamVolume(callback: AsyncCallback&lt;number&gt;): void

获取应用基于音频流的最小音量。使用Callback回调返回。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名  | 类型       | 必填   | 说明                 |
| ------- | -----------| ------ | ------------------- |
W
wangzx0705 已提交
5604
|callback |AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流最小音量(音量范围0-1)。|
W
wangzx0705 已提交
5605 5606 5607 5608

**示例:**

```js
W
wangzx0705 已提交
5609
audioRenderer.getMinStreamVolume((err, minVolume) => {
W
wangzx0705 已提交
5610 5611 5612 5613
  if (err) {
    console.error(`getMinStreamVolume error: ${err}`);
  } else {
    console.info(`getMinStreamVolume Success! ${minVolume}`);
W
wangzx0705 已提交
5614 5615 5616 5617 5618 5619 5620
  }
});
```
### getMinStreamVolume<sup>10+</sup>

getMinStreamVolume(): Promise&lt;number&gt;

W
wangzx0705 已提交
5621
获取应用基于音频流的最小音量。使用Promise异步回调。
W
wangzx0705 已提交
5622 5623 5624 5625 5626 5627 5628

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
W
wangzx0705 已提交
5629
| Promise&lt;number&gt;| Promise回调返回音频流最小音量(音量范围0-1)。|
W
wangzx0705 已提交
5630 5631 5632 5633

**示例:**

```js
W
wangzx0705 已提交
5634
audioRenderer.getMinStreamVolume().then((value) => {
W
wangzx0705 已提交
5635
  console.info(`Get min stream volume Success! ${value}`);
W
wangzx0705 已提交
5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652
}).catch((err) => {
  console.error(`Get min stream volume Fail: ${err}`);
});
```

### getMaxStreamVolume<sup>10+</sup>

getMaxStreamVolume(callback: AsyncCallback&lt;number&gt;): void

获取应用基于音频流的最大音量。使用Callback回调返回。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名  | 类型       | 必填   | 说明                 |
| ------- | -----------| ------ | ------------------- |
W
wangzx0705 已提交
5653
|callback | AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流最大音量(音量范围0-1)。|
W
wangzx0705 已提交
5654 5655 5656 5657

**示例:**

```js
W
wangzx0705 已提交
5658
audioRenderer.getMaxStreamVolume((err, maxVolume) => {
W
wangzx0705 已提交
5659 5660 5661 5662
  if (err) {
    console.error(`getMaxStreamVolume Fail: ${err}`);
  } else {
    console.info(`getMaxStreamVolume Success! ${maxVolume}`);
W
wangzx0705 已提交
5663 5664 5665 5666 5667 5668 5669
  }
});
```
### getMaxStreamVolume<sup>10+</sup>

getMaxStreamVolume(): Promise&lt;number&gt;

W
wangzx0705 已提交
5670
获取应用基于音频流的最大音量。使用Promise异步回调。
W
wangzx0705 已提交
5671 5672 5673 5674 5675 5676 5677

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
W
wangzx0705 已提交
5678
| Promise&lt;number&gt;| Promise回调返回音频流最大音量(音量范围0-1)。|
W
wangzx0705 已提交
5679 5680 5681 5682

**示例:**

```js
W
wangzx0705 已提交
5683
audioRenderer.getMaxStreamVolume().then((value) => {
W
wangzx0705 已提交
5684
  console.info(`Get max stream volume Success! ${value}`);
W
wangzx0705 已提交
5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706
}).catch((err) => {
  console.error(`Get max stream volume Fail: ${err}`);
});
```

### getUnderflowCount<sup>10+</sup>

getUnderflowCount(callback: AsyncCallback&lt;number&gt;): void

获取当前播放音频流的欠载音频帧数量。使用Callback回调返回。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**参数:**

| 参数名  | 类型       | 必填   | 说明                 |
| ------- | -----------| ------ | ------------------- |
|callback | AsyncCallback&lt;number&gt; | 是     |Callback回调返回音频流的欠载音频帧数量。|

**示例:**

```js
W
wangzx0705 已提交
5707
audioRenderer.getUnderflowCount((err, underflowCount) => {
W
wangzx0705 已提交
5708 5709 5710 5711
  if (err) {
    console.error(`getUnderflowCount Fail: ${err}`);
  } else {
    console.info(`getUnderflowCount Success! ${underflowCount}`);
W
wangzx0705 已提交
5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731
  }
});
```
### getUnderflowCount<sup>10+</sup>

getUnderflowCount(): Promise&lt;number&gt;

获取当前播放音频流的欠载音频帧数量。使用Promise异步回调。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
| Promise&lt;number&gt;| Promise回调返回音频流的欠载音频帧数量。|

**示例:**

```js
W
wangzx0705 已提交
5732
audioRenderer.getUnderflowCount().then((value) => {
W
wangzx0705 已提交
5733
  console.info(`Get underflow count Success! ${value}`);
W
wangzx0705 已提交
5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755
}).catch((err) => {
  console.error(`Get underflow count Fail: ${err}`);
});
```

### getCurrentOutputDevices<sup>10+</sup>

getCurrentOutputDevices(callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void

获取音频流输出设备描述符。使用Callback回调返回。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名  | 类型       | 必填   | 说明                 |
| ------- | -----------| ------ | ------------------- |
|callback | AsyncCallback&lt;AudioDeviceDescriptors&gt; | 是     |Callback回调返回音频流的输出设备描述符。|

**示例:**

```js
W
wangzx0705 已提交
5756
audioRenderer.getCurrentOutputDevices((err, deviceInfo) => {
W
wangzx0705 已提交
5757
  if (err) {
W
wangzx0705 已提交
5758
    console.error(`getCurrentOutputDevices Fail: ${err}`);
W
wangzx0705 已提交
5759
  } else {
W
wangzx0705 已提交
5760 5761 5762 5763 5764 5765 5766 5767
    console.info(`DeviceInfo id: ${deviceInfo.id}`);
    console.info(`DeviceInfo type: ${descriptor.deviceType}`);
    console.info(`DeviceInfo role: ${descriptor.deviceRole}`);
    console.info(`DeviceInfo name: ${descriptor.name}`);
    console.info(`DeviceInfo address: ${descriptor.address}`);
    console.info(`DeviceInfo samplerates: ${descriptor.sampleRates[0]}`);
    console.info(`DeviceInfo channelcounts: ${descriptor.channelCounts[0]}`);
    console.info(`DeviceInfo channelmask: ${descriptor.channelMasks}`);
W
wangzx0705 已提交
5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782
  }
});
```
### getCurrentOutputDevices<sup>10+</sup>

getCurrentOutputDevices(): Promise&lt;AudioDeviceDescriptors&gt;

获取音频流输出设备描述符。使用Promise异步回调。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**返回值:**

| 类型                | 说明                          |
| ------------------- | ----------------------------- |
W
wangzx0705 已提交
5783
| Promise&lt;AudioDeviceDescriptors&gt;| Promise回调返回音频流的输出设备描述信息 |
W
wangzx0705 已提交
5784 5785 5786 5787

**示例:**

```js
W
wangzx0705 已提交
5788
audioRenderer.getCurrentOutputDevices().then((deviceInfo) => {
W
wangzx0705 已提交
5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801
  console.info(`DeviceInfo id: ${deviceInfo.id}`);
  console.info(`DeviceInfo type: ${descriptor.deviceType}`);
  console.info(`DeviceInfo role: ${descriptor.deviceRole}`);
  console.info(`DeviceInfo name: ${descriptor.name}`);
  console.info(`DeviceInfo address: ${descriptor.address}`);
  console.info(`DeviceInfo samplerates: ${descriptor.sampleRates[0]}`);
  console.info(`DeviceInfo channelcounts: ${descriptor.channelCounts[0]}`);
  console.info(`DeviceInfo channelmask: ${descriptor.channelMasks}`);
}).catch((err) => {
  console.error(`Get current output devices Fail: ${err}`);
});
```

5802
### on('audioInterrupt')<sup>9+</sup>
5803

5804
on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void
5805

5806
监听音频中断事件。使用callback获取中断事件。
5807

J
jiaoyanlin3 已提交
5808
[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioRenderer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
5809

5810
**系统能力:** SystemCapability.Multimedia.Audio.Interrupt
5811 5812 5813

**参数:**

5814 5815
| 参数名   | 类型                                         | 必填 | 说明                                                         |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
5816 5817
| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频渲染被中断。) |
| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是   | 被监听的中断事件的回调。                                     |
5818

5819
**错误码:**
5820

5821 5822 5823 5824 5825
以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |
5826 5827

**示例:**
Z
zengyawen 已提交
5828

J
jiao_yanlin 已提交
5829
```js
5830 5831
let isPlaying; // 标识符,表示是否正在渲染
let isDucked; // 标识符,表示是否被降低音量
5832 5833 5834 5835 5836
onAudioInterrupt();

async function onAudioInterrupt(){
  audioRenderer.on('audioInterrupt', async(interruptEvent) => {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
5837
      // 由系统进行操作,强制打断音频渲染,应用需更新自身状态及显示内容等
5838 5839
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
5840 5841 5842
          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent
          console.info('Force paused. Update playing status and stop writing');
          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
5843 5844
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860
          // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发
          console.info('Force stopped. Update playing status and stop writing');
          isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
          // 音频流已被降低音量渲染
          console.info('Force ducked. Update volume status');
          isDucked = true; // 简化处理,代表应用更新音量状态的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
          // 音频流已被恢复正常音量渲染
          console.info('Force ducked. Update volume status');
          isDucked = false; // 简化处理,代表应用更新音量状态的若干操作
          break;
        default:
          console.info('Invalid interruptEvent');
5861 5862 5863
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
5864
      // 由应用进行操作,应用可以自主选择打断或忽略
5865 5866
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
5867
          // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染)
5868
          console.info('Resume force paused renderer or ignore');
5869
          // 若选择继续渲染,需在此处主动执行开始渲染的若干操作
5870 5871
          break;
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
5872
          // 建议应用暂停渲染
5873
          console.info('Choose to pause or ignore');
5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891
          // 若选择暂停渲染,需在此处主动执行暂停渲染的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // 建议应用停止渲染
          console.info('Choose to stop or ignore');
          // 若选择停止渲染,需在此处主动执行停止渲染的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_DUCK:
          // 建议应用降低音量渲染
          console.info('Choose to duck or ignore');
          // 若选择降低音量渲染,需在此处主动执行降低音量渲染的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_UNDUCK:
          // 建议应用恢复正常音量渲染
          console.info('Choose to unduck or ignore');
          // 若选择恢复正常音量渲染,需在此处主动执行恢复正常音量渲染的若干操作
          break;
        default:
5892 5893 5894 5895 5896
          break;
      }
   }
  });
}
Z
zhujie81 已提交
5897 5898
```

5899
### on('markReach')<sup>8+</sup>
Z
zhujie81 已提交
5900

J
jiaoyanlin3 已提交
5901
on(type: 'markReach', frame: number, callback: Callback&lt;number&gt;): void
5902

5903
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。
5904

5905
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zhujie81 已提交
5906 5907

**参数:**
5908

5909 5910 5911 5912 5913
| 参数名   | 类型                     | 必填 | 说明                                      |
| :------- | :----------------------- | :--- | :---------------------------------------- |
| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。 |
| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。         |
| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                    |
Z
zengyawen 已提交
5914

Z
zhujie81 已提交
5915 5916
**示例:**

J
jiao_yanlin 已提交
5917
```js
5918 5919 5920
audioRenderer.on('markReach', 1000, (position) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
J
jiao_yanlin 已提交
5921
  }
5922
});
5923
```
Z
zengyawen 已提交
5924

5925

5926
### off('markReach') <sup>8+</sup>
5927

5928
off(type: 'markReach'): void
5929

5930
取消订阅标记事件。
5931

5932
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5933

5934
**参数:**
5935

5936 5937 5938
| 参数名 | 类型   | 必填 | 说明                                              |
| :----- | :----- | :--- | :------------------------------------------------ |
| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'markReach'。 |
5939 5940 5941 5942

**示例:**

```js
5943
audioRenderer.off('markReach');
5944 5945
```

5946
### on('periodReach') <sup>8+</sup>
Z
zengyawen 已提交
5947

J
jiaoyanlin3 已提交
5948
on(type: 'periodReach', frame: number, callback: Callback&lt;number&gt;): void
5949

5950
订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。
5951

5952
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
Z
zengyawen 已提交
5953 5954 5955

**参数:**

5956 5957 5958 5959 5960
| 参数名   | 类型                     | 必填 | 说明                                        |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于 0。           |
| callback | Callback\<number>         | 是   | 触发事件时调用的回调。                      |
5961 5962 5963 5964

**示例:**

```js
5965 5966 5967
audioRenderer.on('periodReach', 1000, (position) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
5968 5969 5970 5971
  }
});
```

5972
### off('periodReach') <sup>8+</sup>
5973

5974
off(type: 'periodReach'): void
Z
zengyawen 已提交
5975

5976
取消订阅标记事件。
5977

5978
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
5979

5980
**参数:**
5981

5982 5983 5984
| 参数名 | 类型   | 必填 | 说明                                                |
| :----- | :----- | :--- | :-------------------------------------------------- |
| type   | string | 是   | 要取消订阅事件的类型。支持的事件为:'periodReach'。 |
5985

Z
zengyawen 已提交
5986 5987
**示例:**

J
jiao_yanlin 已提交
5988
```js
5989
audioRenderer.off('periodReach')
Z
zengyawen 已提交
5990 5991
```

5992
### on('stateChange') <sup>8+</sup>
L
lwx1059628 已提交
5993

5994
on(type: 'stateChange', callback: Callback<AudioState\>): void
L
lwx1059628 已提交
5995

5996
订阅监听状态变化。
5997

5998
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
L
lwx1059628 已提交
5999 6000 6001

**参数:**

6002 6003 6004 6005
| 参数名   | 类型                       | 必填 | 说明                                        |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
L
lwx1059628 已提交
6006 6007 6008

**示例:**

J
jiao_yanlin 已提交
6009
```js
6010 6011 6012 6013 6014 6015
audioRenderer.on('stateChange', (state) => {
  if (state == 1) {
    console.info('audio renderer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio renderer state is: STATE_RUNNING');
J
jiao_yanlin 已提交
6016
  }
L
lwx1059628 已提交
6017 6018 6019
});
```

W
wangzx0705 已提交
6020 6021
### on('outputDeviceChange') <sup>10+</sup>

6022
on(type: 'outputDeviceChange', callback: Callback\<AudioDeviceDescriptors>): void;
W
wangzx0705 已提交
6023 6024 6025 6026 6027 6028 6029 6030 6031 6032

订阅监听音频输出设备变化。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名   | 类型                       | 必填 | 说明                                        |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type     | string                     | 是   | 事件回调类型,支持的事件为:'outputDeviceChange'。 |
W
wangzx0705 已提交
6033
| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是   | 返回监听的音频设备变化。                            |
W
wangzx0705 已提交
6034 6035 6036 6037 6038

**错误码:**

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
6039
| 6800101 | if input parameter value error.              |
W
wangzx0705 已提交
6040 6041 6042 6043 6044

**示例:**

```js
audioRenderer.on('outputDeviceChange', (deviceChangeInfo) => {
W
wangzx0705 已提交
6045
  if (err) {
W
wangzx0705 已提交
6046 6047 6048 6049
    console.error(`Subscribes output device change event callback Fail: ${err}`);
  } else {
    console.info(`Subscribes output device change event callback Success!`);
  }
W
wangzx0705 已提交
6050 6051 6052 6053
});
```
### off('outputDeviceChange') <sup>10+</sup>

6054
off(type: 'outputDeviceChange', callback?: Callback\<AudioDeviceDescriptors>): void;
W
wangzx0705 已提交
6055 6056 6057 6058 6059 6060 6061 6062 6063 6064

取消订阅监听音频输出设备变化。

**系统能力:** SystemCapability.Multimedia.Audio.Device

**参数:**

| 参数名   | 类型                       | 必填 | 说明                                        |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type     | string                     | 是   | 事件回调类型,支持的事件为:'outputDeviceChange'。 |
6065
| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否   | 取消监听的音频设备变化。                            |
W
wangzx0705 已提交
6066 6067 6068 6069 6070

**错误码:**

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
6071
| 6800101 | if input parameter value error.              |
W
wangzx0705 已提交
6072 6073 6074 6075 6076

**示例:**

```js
audioRenderer.off('outputDeviceChange', (deviceChangeInfo) => {
W
wangzx0705 已提交
6077
  if (err) {
W
wangzx0705 已提交
6078 6079 6080 6081
    console.error(`Unsubscribes output device change event callback Fail: ${err}`);
  } else {
    console.info(`Unsubscribes output device change event callback Success!`);
  }
W
wangzx0705 已提交
6082 6083 6084
});
```

6085
## AudioCapturer<sup>8+</sup>
L
lwx1059628 已提交
6086

6087
提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。
6088

6089
### 属性
L
lwx1059628 已提交
6090

6091
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6092

6093 6094 6095
| 名称  | 类型                     | 可读 | 可写 | 说明             |
| :---- | :------------------------- | :--- | :--- | :--------------- |
| state<sup>8+</sup>  | [AudioState](#audiostate8) | 是 | 否   | 音频采集器状态。 |
L
lwx1059628 已提交
6096 6097 6098

**示例:**

J
jiao_yanlin 已提交
6099
```js
6100
let state = audioCapturer.state;
L
lwx1059628 已提交
6101 6102
```

6103
### getCapturerInfo<sup>8+</sup>
6104

6105
getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void
6106

6107
获取采集器信息。使用callback方式异步返回结果。
6108

6109
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6110 6111 6112

**参数:**

6113 6114 6115
| 参数名   | 类型                              | 必填 | 说明                                 |
| :------- | :-------------------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<AudioCapturerInfo\> | 是   | 使用callback方式异步返回采集器信息。 |
L
lwx1059628 已提交
6116 6117 6118

**示例:**

J
jiao_yanlin 已提交
6119
```js
6120
audioCapturer.getCapturerInfo((err, capturerInfo) => {
6121
  if (err) {
6122 6123 6124 6125 6126
    console.error('Failed to get capture info');
  } else {
    console.info('Capturer getCapturerInfo:');
    console.info(`Capturer source: ${capturerInfo.source}`);
    console.info(`Capturer flags: ${capturerInfo.capturerFlags}`);
J
jiao_yanlin 已提交
6127
  }
L
lwx1059628 已提交
6128 6129 6130
});
```

6131

6132
### getCapturerInfo<sup>8+</sup>
6133

6134
getCapturerInfo(): Promise<AudioCapturerInfo\>
6135

6136
获取采集器信息。使用Promise方式异步返回结果。
6137

6138
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
6139 6140 6141

**返回值:**

6142 6143 6144
| 类型                                              | 说明                                |
| :------------------------------------------------ | :---------------------------------- |
| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 |
L
lwx1059628 已提交
6145 6146 6147

**示例:**

J
jiao_yanlin 已提交
6148
```js
6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159
audioCapturer.getCapturerInfo().then((audioParamsGet) => {
  if (audioParamsGet != undefined) {
    console.info('AudioFrameworkRecLog: Capturer CapturerInfo:');
    console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`);
    console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`);
  } else {
    console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`);
    console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect');
  }
}).catch((err) => {
  console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`);
6160
});
L
lwx1059628 已提交
6161 6162
```

6163
### getStreamInfo<sup>8+</sup>
L
lwx1059628 已提交
6164

6165
getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void
L
lwx1059628 已提交
6166

6167
获取采集器流信息。使用callback方式异步返回结果。
6168

6169
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6170 6171 6172

**参数:**

6173 6174 6175
| 参数名   | 类型                                                 | 必填 | 说明                             |
| :------- | :--------------------------------------------------- | :--- | :------------------------------- |
| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是   | 使用callback方式异步返回流信息。 |
L
lwx1059628 已提交
6176 6177 6178

**示例:**

J
jiao_yanlin 已提交
6179
```js
6180
audioCapturer.getStreamInfo((err, streamInfo) => {
J
jiao_yanlin 已提交
6181
  if (err) {
6182 6183 6184 6185 6186 6187 6188
    console.error('Failed to get stream info');
  } else {
    console.info('Capturer GetStreamInfo:');
    console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`);
    console.info(`Capturer channel: ${streamInfo.channels}`);
    console.info(`Capturer format: ${streamInfo.sampleFormat}`);
    console.info(`Capturer encoding type: ${streamInfo.encodingType}`);
J
jiao_yanlin 已提交
6189
  }
L
lwx1059628 已提交
6190 6191 6192
});
```

6193
### getStreamInfo<sup>8+</sup>
L
lwx1059628 已提交
6194

6195
getStreamInfo(): Promise<AudioStreamInfo\>
6196

6197
获取采集器流信息。使用Promise方式异步返回结果。
6198

6199
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6200 6201 6202

**返回值:**

6203 6204 6205
| 类型                                           | 说明                            |
| :--------------------------------------------- | :------------------------------ |
| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | 使用Promise方式异步返回流信息。 |
L
lwx1059628 已提交
6206 6207 6208

**示例:**

J
jiao_yanlin 已提交
6209
```js
6210 6211 6212 6213 6214 6215 6216 6217
audioCapturer.getStreamInfo().then((audioParamsGet) => {
  console.info('getStreamInfo:');
  console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`);
  console.info(`samplingRate: ${audioParamsGet.samplingRate}`);
  console.info(`channels: ${audioParamsGet.channels}`);
  console.info(`encodingType: ${audioParamsGet.encodingType}`);
}).catch((err) => {
  console.error(`getStreamInfo :ERROR: ${err}`);
L
lwx1059628 已提交
6218 6219 6220
});
```

6221
### getAudioStreamId<sup>9+</sup>
L
lwx1059628 已提交
6222

6223
getAudioStreamId(callback: AsyncCallback<number\>): void
L
lwx1059628 已提交
6224

6225
获取音频流id,使用callback方式异步返回结果。
6226

6227
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6228 6229 6230

**参数:**

6231 6232 6233
| 参数名   | 类型                                                 | 必填 | 说明                 |
| :------- | :--------------------------------------------------- | :--- | :------------------- |
| callback | AsyncCallback<number\> | 是   | 回调返回音频流id。 |
L
lwx1059628 已提交
6234 6235 6236

**示例:**

J
jiao_yanlin 已提交
6237
```js
6238 6239
audioCapturer.getAudioStreamId((err, streamid) => {
  console.info(`audioCapturer GetStreamId: ${streamid}`);
L
lwx1059628 已提交
6240 6241 6242
});
```

6243
### getAudioStreamId<sup>9+</sup>
6244

6245
getAudioStreamId(): Promise<number\>
6246

6247
获取音频流id,使用Promise方式异步返回结果。
6248

6249
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6250 6251 6252

**返回值:**

6253 6254 6255
| 类型             | 说明                   |
| :----------------| :--------------------- |
| Promise<number\> | Promise返回音频流id。 |
L
lwx1059628 已提交
6256 6257 6258

**示例:**

J
jiao_yanlin 已提交
6259
```js
6260 6261 6262 6263
audioCapturer.getAudioStreamId().then((streamid) => {
  console.info(`audioCapturer getAudioStreamId: ${streamid}`);
}).catch((err) => {
  console.error(`ERROR: ${err}`);
L
lwx1059628 已提交
6264 6265 6266
});
```

6267
### start<sup>8+</sup>
6268

6269
start(callback: AsyncCallback<void\>): void
6270

6271
启动音频采集器。使用callback方式异步返回结果。
6272

6273
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
6274 6275 6276

**参数:**

6277 6278 6279
| 参数名   | 类型                 | 必填 | 说明                           |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
6280 6281 6282 6283

**示例:**

```js
6284
audioCapturer.start((err) => {
6285
  if (err) {
6286 6287 6288
    console.error('Capturer start failed.');
  } else {
    console.info('Capturer start success.');
6289
  }
6290 6291 6292 6293
});
```


6294
### start<sup>8+</sup>
6295

6296
start(): Promise<void\>
6297

6298
启动音频采集器。使用Promise方式异步返回结果。
6299

6300
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
6301 6302 6303

**返回值:**

6304 6305 6306
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
6307 6308 6309 6310

**示例:**

```js
6311 6312 6313 6314 6315 6316 6317 6318 6319 6320
audioCapturer.start().then(() => {
  console.info('AudioFrameworkRecLog: ---------START---------');
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`);
  console.info('AudioFrameworkRecLog: Capturer started: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) {
    console.info('AudioFrameworkRecLog: AudioCapturer is in Running State');
  }
}).catch((err) => {
  console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`);
6321 6322 6323
});
```

6324
### stop<sup>8+</sup>
6325

6326
stop(callback: AsyncCallback<void\>): void
6327

6328
停止采集。使用callback方式异步返回结果。
6329

6330
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6331

6332
**参数:**
L
lwx1059628 已提交
6333

6334 6335 6336
| 参数名   | 类型                 | 必填 | 说明                           |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
L
lwx1059628 已提交
6337 6338 6339

**示例:**

J
jiao_yanlin 已提交
6340
```js
6341
audioCapturer.stop((err) => {
J
jiao_yanlin 已提交
6342
  if (err) {
6343 6344 6345
    console.error('Capturer stop failed');
  } else {
    console.info('Capturer stopped.');
J
jiao_yanlin 已提交
6346
  }
L
lwx1059628 已提交
6347 6348 6349 6350
});
```


6351
### stop<sup>8+</sup>
L
lwx1059628 已提交
6352

6353
stop(): Promise<void\>
L
lwx1059628 已提交
6354

6355
停止采集。使用Promise方式异步返回结果。
6356

6357
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6358 6359 6360

**返回值:**

6361 6362 6363
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
L
lwx1059628 已提交
6364 6365 6366

**示例:**

J
jiao_yanlin 已提交
6367
```js
6368 6369 6370 6371 6372 6373 6374 6375
audioCapturer.stop().then(() => {
  console.info('AudioFrameworkRecLog: ---------STOP RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS');
  if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){
    console.info('AudioFrameworkRecLog: State is Stopped:');
  }
}).catch((err) => {
  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
L
lwx1059628 已提交
6376 6377 6378
});
```

6379
### release<sup>8+</sup>
L
lwx1059628 已提交
6380

6381
release(callback: AsyncCallback<void\>): void
L
lwx1059628 已提交
6382

6383
释放采集器。使用callback方式异步返回结果。
6384

6385
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6386 6387 6388

**参数:**

6389 6390
| 参数名   | 类型                 | 必填 | 说明                                |
| :------- | :------------------- | :--- | :---------------------------------- |
J
jiao_yanlin 已提交
6391
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
L
lwx1059628 已提交
6392 6393 6394

**示例:**

J
jiao_yanlin 已提交
6395
```js
6396
audioCapturer.release((err) => {
J
jiao_yanlin 已提交
6397
  if (err) {
6398 6399 6400
    console.error('capturer release failed');
  } else {
    console.info('capturer released.');
J
jiao_yanlin 已提交
6401
  }
L
lwx1059628 已提交
6402 6403 6404 6405
});
```


6406
### release<sup>8+</sup>
L
lwx1059628 已提交
6407

6408
release(): Promise<void\>
6409

6410
释放采集器。使用Promise方式异步返回结果。
6411

6412
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6413 6414 6415

**返回值:**

6416 6417 6418
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
L
lwx1059628 已提交
6419 6420 6421

**示例:**

J
jiao_yanlin 已提交
6422
```js
6423 6424 6425 6426 6427 6428 6429 6430
let stateFlag;
audioCapturer.release().then(() => {
  console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------');
  console.info('AudioFrameworkRecLog: Capturer release : SUCCESS');
  console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`);
  console.info(`AudioFrameworkRecLog: stateFlag : ${stateFlag}`);
}).catch((err) => {
  console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`);
L
lwx1059628 已提交
6431 6432 6433
});
```

6434
### read<sup>8+</sup>
L
lwx1059628 已提交
6435

6436
read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void
L
lwx1059628 已提交
6437

6438
读入缓冲区。使用callback方式异步返回结果。
6439

6440
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6441 6442 6443

**参数:**

6444 6445 6446 6447 6448
| 参数名         | 类型                        | 必填 | 说明                             |
| :------------- | :-------------------------- | :--- | :------------------------------- |
| size           | number                      | 是   | 读入的字节数。                   |
| isBlockingRead | boolean                     | 是   | 是否阻塞读操作。                 |
| callback       | AsyncCallback<ArrayBuffer\> | 是   | 使用callback方式异步返回缓冲区。 |
L
lwx1059628 已提交
6449 6450 6451

**示例:**

J
jiao_yanlin 已提交
6452
```js
6453 6454 6455 6456 6457 6458 6459 6460 6461 6462
let bufferSize;
audioCapturer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  }).catch((err) => {
    console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`);
  });
audioCapturer.read(bufferSize, true, async(err, buffer) => {
  if (!err) {
    console.info('Success in reading the buffer data');
J
jiao_yanlin 已提交
6463
  }
L
lwx1059628 已提交
6464 6465 6466
});
```

6467
### read<sup>8+</sup>
L
lwx1059628 已提交
6468

6469
read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\>
L
lwx1059628 已提交
6470

6471
读入缓冲区。使用Promise方式异步返回结果。
L
lwx1059628 已提交
6472

6473
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
6474 6475 6476

**参数:**

6477 6478 6479 6480
| 参数名         | 类型    | 必填 | 说明             |
| :------------- | :------ | :--- | :--------------- |
| size           | number  | 是   | 读入的字节数。   |
| isBlockingRead | boolean | 是   | 是否阻塞读操作。 |
L
lwx1059628 已提交
6481 6482 6483

**返回值:**

6484 6485 6486
| 类型                  | 说明                                                   |
| :-------------------- | :----------------------------------------------------- |
| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 |
L
lwx1059628 已提交
6487 6488 6489

**示例:**

J
jiao_yanlin 已提交
6490
```js
6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502
let bufferSize;
audioCapturer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`);
  bufferSize = data;
  }).catch((err) => {
  console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`);
  });
console.info(`Buffer size: ${bufferSize}`);
audioCapturer.read(bufferSize, true).then((buffer) => {
  console.info('buffer read successfully');
}).catch((err) => {
  console.info(`ERROR : ${err}`);
L
lwx1059628 已提交
6503 6504 6505
});
```

6506
### getAudioTime<sup>8+</sup>
6507

6508
getAudioTime(callback: AsyncCallback<number\>): void
6509

6510
获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。
6511

6512
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6513

6514
**参数:**
L
lwx1059628 已提交
6515

6516 6517 6518
| 参数名   | 类型                   | 必填 | 说明                           |
| :------- | :--------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回结果。 |
L
lwx1059628 已提交
6519 6520 6521

**示例:**

J
jiao_yanlin 已提交
6522
```js
6523 6524
audioCapturer.getAudioTime((err, timestamp) => {
  console.info(`Current timestamp: ${timestamp}`);
J
jiao_yanlin 已提交
6525
});
L
lwx1059628 已提交
6526 6527
```

6528
### getAudioTime<sup>8+</sup>
6529

6530
getAudioTime(): Promise<number\>
L
lwx1059628 已提交
6531

6532
获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。
L
lwx1059628 已提交
6533

6534
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6535 6536 6537

**返回值:**

6538 6539 6540
| 类型             | 说明                          |
| :--------------- | :---------------------------- |
| Promise<number\> | 使用Promise方式异步返回结果。 |
L
lwx1059628 已提交
6541 6542 6543

**示例:**

J
jiao_yanlin 已提交
6544
```js
6545 6546 6547 6548
audioCapturer.getAudioTime().then((audioTime) => {
  console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`);
}).catch((err) => {
  console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
L
lwx1059628 已提交
6549 6550 6551
});
```

6552
### getBufferSize<sup>8+</sup>
L
lwx1059628 已提交
6553

6554
getBufferSize(callback: AsyncCallback<number\>): void
L
lwx1059628 已提交
6555

6556
获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。
6557

6558
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6559 6560 6561

**参数:**

6562 6563 6564
| 参数名   | 类型                   | 必填 | 说明                                 |
| :------- | :--------------------- | :--- | :----------------------------------- |
| callback | AsyncCallback<number\> | 是   | 使用callback方式异步返回缓冲区大小。 |
L
lwx1059628 已提交
6565 6566 6567

**示例:**

J
jiao_yanlin 已提交
6568
```js
6569 6570 6571 6572 6573 6574 6575 6576
audioCapturer.getBufferSize((err, bufferSize) => {
  if (!err) {
    console.info(`BufferSize : ${bufferSize}`);
    audioCapturer.read(bufferSize, true).then((buffer) => {
      console.info(`Buffer read is ${buffer}`);
    }).catch((err) => {
      console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`);
    });
6577
  }
L
lwx1059628 已提交
6578 6579 6580
});
```

6581
### getBufferSize<sup>8+</sup>
6582

6583
getBufferSize(): Promise<number\>
L
lwx1059628 已提交
6584

6585
获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。
L
lwx1059628 已提交
6586

6587
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6588

6589 6590 6591 6592 6593
**返回值:**

| 类型             | 说明                                |
| :--------------- | :---------------------------------- |
| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 |
L
lwx1059628 已提交
6594 6595 6596

**示例:**

J
jiao_yanlin 已提交
6597
```js
6598 6599 6600 6601 6602 6603
let bufferSize;
audioCapturer.getBufferSize().then((data) => {
  console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`);
  bufferSize = data;
}).catch((err) => {
  console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`);
L
lwx1059628 已提交
6604 6605 6606
});
```

6607 6608 6609 6610 6611 6612
### on('audioInterrupt')<sup>10+</sup>

on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void

监听音频中断事件。使用callback获取中断事件。

J
jiaoyanlin3 已提交
6613
[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioCapturer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。
6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683

**系统能力:** SystemCapability.Multimedia.Audio.Interrupt

**参数:**

| 参数名   | 类型                                         | 必填 | 说明                                                         |
| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ |
| type     | string                                       | 是   | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频采集被中断。) |
| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是   | 被监听的中断事件的回调。                                     |

**错误码:**

以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)

| 错误码ID | 错误信息 |
| ------- | --------------------------------------------|
| 6800101 | if input parameter value error              |

**示例:**

```js
let isCapturing; // 标识符,表示是否正在采集
onAudioInterrupt();

async function onAudioInterrupt(){
  audioCapturer.on('audioInterrupt', async(interruptEvent) => {
    if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) {
      // 由系统进行操作,强制打断音频采集,应用需更新自身状态及显示内容等
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent
          console.info('Force paused. Update capturing status and stop reading');
          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // 音频流已被停止,永久失去焦点,若想恢复采集,需用户主动触发
          console.info('Force stopped. Update capturing status and stop reading');
          isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作
          break;
        default:
          console.info('Invalid interruptEvent');
          break;
      }
    } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) {
      // 由应用进行操作,应用可以自主选择打断或忽略
      switch (interruptEvent.hintType) {
        case audio.InterruptHint.INTERRUPT_HINT_RESUME:
          // 建议应用继续采集(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复采集)
          console.info('Resume force paused renderer or ignore');
          // 若选择继续采集,需在此处主动执行开始采集的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_PAUSE:
          // 建议应用暂停采集
          console.info('Choose to pause or ignore');
          // 若选择暂停采集,需在此处主动执行暂停采集的若干操作
          break;
        case audio.InterruptHint.INTERRUPT_HINT_STOP:
          // 建议应用停止采集
          console.info('Choose to stop or ignore');
          // 若选择停止采集,需在此处主动执行停止采集的若干操作
          break;
        default:
          break;
      }
   }
  });
}
```


6684
### on('markReach')<sup>8+</sup>
L
lwx1059628 已提交
6685

J
jiaoyanlin3 已提交
6686
on(type: 'markReach', frame: number, callback: Callback&lt;number&gt;): void
L
lwx1059628 已提交
6687

6688
订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。
6689

6690
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6691 6692 6693

**参数:**

6694 6695 6696 6697 6698
| 参数名   | 类型                     | 必填 | 说明                                       |
| :------- | :----------------------  | :--- | :----------------------------------------- |
| type     | string                   | 是   | 事件回调类型,支持的事件为:'markReach'。  |
| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。           |
| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调。 |
L
lwx1059628 已提交
6699 6700

**示例:**
6701

J
jiao_yanlin 已提交
6702
```js
6703 6704 6705
audioCapturer.on('markReach', 1000, (position) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
J
jiao_yanlin 已提交
6706
  }
L
lwx1059628 已提交
6707 6708 6709
});
```

6710
### off('markReach')<sup>8+</sup>
L
lwx1059628 已提交
6711

6712
off(type: 'markReach'): void
L
lwx1059628 已提交
6713

6714
取消订阅标记到达的事件。
6715

6716
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
6717 6718 6719

**参数:**

6720 6721 6722
| 参数名 | 类型   | 必填 | 说明                                          |
| :----- | :----- | :--- | :-------------------------------------------- |
| type   | string | 是   | 取消事件回调类型,支持的事件为:'markReach'。 |
L
lwx1059628 已提交
6723 6724 6725

**示例:**

J
jiao_yanlin 已提交
6726
```js
6727
audioCapturer.off('markReach');
L
lwx1059628 已提交
6728 6729
```

6730
### on('periodReach')<sup>8+</sup>
L
lwx1059628 已提交
6731

J
jiaoyanlin3 已提交
6732
on(type: 'periodReach', frame: number, callback: Callback&lt;number&gt;): void
L
lwx1059628 已提交
6733

6734
订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。
6735

6736
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6737 6738 6739

**参数:**

6740 6741 6742 6743 6744
| 参数名   | 类型                     | 必填 | 说明                                        |
| :------- | :----------------------- | :--- | :------------------------------------------ |
| type     | string                   | 是   | 事件回调类型,支持的事件为:'periodReach'。 |
| frame    | number                   | 是   | 触发事件的帧数。 该值必须大于0。            |
| callback | Callback\<number>         | 是   | 使用callback方式异步返回被触发事件的回调    |
L
lwx1059628 已提交
6745 6746 6747

**示例:**

J
jiao_yanlin 已提交
6748
```js
6749 6750 6751
audioCapturer.on('periodReach', 1000, (position) => {
  if (position == 1000) {
    console.info('ON Triggered successfully');
J
jiao_yanlin 已提交
6752
  }
L
lwx1059628 已提交
6753 6754 6755
});
```

6756
### off('periodReach')<sup>8+</sup>
L
lwx1059628 已提交
6757

6758
off(type: 'periodReach'): void
L
lwx1059628 已提交
6759

6760
取消订阅标记到达的事件。
6761

6762
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6763 6764 6765

**参数:**

6766 6767 6768
| 参数名 | 类型   | 必填 | 说明                                            |
| :----- | :----- | :--- | :---------------------------------------------- |
| type   | string | 是  | 取消事件回调类型,支持的事件为:'periodReach'。 |
L
lwx1059628 已提交
6769 6770 6771

**示例:**

J
jiao_yanlin 已提交
6772
```js
6773
audioCapturer.off('periodReach')
L
lwx1059628 已提交
6774 6775
```

6776
### on('stateChange') <sup>8+</sup>
L
lwx1059628 已提交
6777

6778
on(type: 'stateChange', callback: Callback<AudioState\>): void
L
lwx1059628 已提交
6779

6780
订阅监听状态变化。
6781

6782
**系统能力:** SystemCapability.Multimedia.Audio.Capturer
L
lwx1059628 已提交
6783 6784 6785

**参数:**

6786 6787 6788 6789
| 参数名   | 类型                       | 必填 | 说明                                        |
| :------- | :------------------------- | :--- | :------------------------------------------ |
| type     | string                     | 是   | 事件回调类型,支持的事件为:'stateChange'。 |
| callback | Callback\<[AudioState](#audiostate8)> | 是   | 返回监听的状态。                            |
L
lwx1059628 已提交
6790 6791 6792

**示例:**

J
jiao_yanlin 已提交
6793
```js
6794 6795 6796 6797 6798 6799
audioCapturer.on('stateChange', (state) => {
  if (state == 1) {
    console.info('audio capturer state is: STATE_PREPARED');
  }
  if (state == 2) {
    console.info('audio capturer state is: STATE_RUNNING');
J
jiao_yanlin 已提交
6800
  }
L
lwx1059628 已提交
6801 6802 6803
});
```

6804
## ToneType<sup>9+</sup>
L
lwx1059628 已提交
6805

6806
枚举,播放器的音调类型。
L
lwx1059628 已提交
6807

6808
**系统接口:** 该接口为系统接口
6809

6810
**系统能力:** SystemCapability.Multimedia.Audio.Tone
6811

6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840
| 名称                                              |  值    | 说明                          |
| :------------------------------------------------ | :----- | :----------------------------|
| TONE_TYPE_DIAL_0                                  | 0      | 键0的DTMF音。                 |
| TONE_TYPE_DIAL_1                                  | 1      | 键1的DTMF音。                 |
| TONE_TYPE_DIAL_2                                  | 2      | 键2的DTMF音。                 |
| TONE_TYPE_DIAL_3                                  | 3      | 键3的DTMF音。                 |
| TONE_TYPE_DIAL_4                                  | 4      | 键4的DTMF音。                 |
| TONE_TYPE_DIAL_5                                  | 5      | 键5的DTMF音。                 |
| TONE_TYPE_DIAL_6                                  | 6      | 键6的DTMF音。                 |
| TONE_TYPE_DIAL_7                                  | 7      | 键7的DTMF音。                 |
| TONE_TYPE_DIAL_8                                  | 8      | 键8的DTMF音。                 |
| TONE_TYPE_DIAL_9                                  | 9      | 键9的DTMF音。                 |
| TONE_TYPE_DIAL_S                                  | 10     | 键*的DTMF音。                 |
| TONE_TYPE_DIAL_P                                  | 11     | 键#的DTMF音。                 |
| TONE_TYPE_DIAL_A                                  | 12     | 键A的DTMF音。                 |
| TONE_TYPE_DIAL_B                                  | 13     | 键B的DTMF音。                 |
| TONE_TYPE_DIAL_C                                  | 14     | 键C的DTMF音。                 |
| TONE_TYPE_DIAL_D                                  | 15     | 键D的DTMF音。                 |
| TONE_TYPE_COMMON_SUPERVISORY_DIAL                 | 100    | 呼叫监管音调,拨号音。          |
| TONE_TYPE_COMMON_SUPERVISORY_BUSY                 | 101    | 呼叫监管音调,忙。              |
| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION           | 102    | 呼叫监管音调,拥塞。            |
| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK            | 103    | 呼叫监管音调,无线电 ACK。      |
| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE  | 104    | 呼叫监管音调,无线电不可用。     |
| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING         | 106    | 呼叫监管音调,呼叫等待。        |
| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE             | 107    | 呼叫监管音调,铃声。            |
| TONE_TYPE_COMMON_PROPRIETARY_BEEP                 | 200    | 专有声调,一般蜂鸣声。          |
| TONE_TYPE_COMMON_PROPRIETARY_ACK                  | 201    | 专有声调,ACK。                |
| TONE_TYPE_COMMON_PROPRIETARY_PROMPT               | 203    | 专有声调,PROMPT。             |
| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP          | 204    | 专有声调,双重蜂鸣声。          |
L
lwx1059628 已提交
6841

6842
## TonePlayer<sup>9+</sup>
L
lwx1059628 已提交
6843

6844
提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。
L
lwx1059628 已提交
6845

6846
**系统接口:** 该接口为系统接口
L
lwx1059628 已提交
6847

6848
### load<sup>9+</sup>
L
lwx1059628 已提交
6849

6850
load(type: ToneType, callback: AsyncCallback&lt;void&gt;): void
L
lwx1059628 已提交
6851

6852
加载DTMF音调配置。使用callback方式异步返回结果。
6853

6854
**系统接口:** 该接口为系统接口
6855

6856
**系统能力:** SystemCapability.Multimedia.Audio.Tone
L
lwx1059628 已提交
6857 6858 6859

**参数:**

6860 6861 6862 6863
| 参数名          | 类型                        | 必填  | 说明                            |
| :--------------| :-------------------------- | :-----| :------------------------------ |
| type           | [ToneType](#tonetype9)       | 是    | 配置的音调类型。                 |
| callback       | AsyncCallback<void\>        | 是    | 使用callback方式异步返回结果。 |
L
lwx1059628 已提交
6864 6865 6866

**示例:**

J
jiao_yanlin 已提交
6867
```js
6868
tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err) => {
6869
  if (err) {
6870
    console.error(`callback call load failed error: ${err.message}`);
6871
    return;
6872 6873
  } else {
    console.info('callback call load success');
J
jiao_yanlin 已提交
6874
  }
L
lwx1059628 已提交
6875
});
6876 6877
```

6878
### load<sup>9+</sup>
6879

6880
load(type: ToneType): Promise&lt;void&gt;
6881

6882
加载DTMF音调配置。使用Promise方式异步返回结果。
6883

6884
**系统接口:** 该接口为系统接口
6885

6886
**系统能力:** SystemCapability.Multimedia.Audio.Tone
6887

6888
**参数:**
6889

6890 6891 6892
| 参数名         | 类型                    | 必填  |  说明             |
| :------------- | :--------------------- | :---  | ---------------- |
| type           | [ToneType](#tonetype9)   | 是    | 配置的音调类型。  |
6893

6894
**返回值:**
6895

6896 6897 6898
| 类型            | 说明                        |
| :--------------| :-------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
6899

6900
**示例:**
6901

6902
```js
6903 6904 6905 6906
tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => {
  console.info('promise call load ');
}).catch(() => {
  console.error('promise call load fail');
6907 6908
});
```
6909

6910
### start<sup>9+</sup>
6911

6912
start(callback: AsyncCallback&lt;void&gt;): void
6913

6914
启动DTMF音调播放。使用callback方式异步返回结果。
6915

6916
**系统接口:** 该接口为系统接口
6917

6918
**系统能力:** SystemCapability.Multimedia.Audio.Tone
6919 6920 6921

**参数:**

6922 6923 6924
| 参数名   | 类型                 | 必填 | 说明                           |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
6925 6926 6927 6928

**示例:**

```js
6929
tonePlayer.start((err) => {
6930
  if (err) {
6931
    console.error(`callback call start failed error: ${err.message}`);
6932
    return;
6933 6934
  } else {
    console.info('callback call start success');
6935 6936 6937 6938
  }
});
```

6939
### start<sup>9+</sup>
6940

6941
start(): Promise&lt;void&gt;
6942

6943
启动DTMF音调播放。使用Promise方式异步返回结果。
6944

6945
**系统接口:** 该接口为系统接口
6946

6947
**系统能力:** SystemCapability.Multimedia.Audio.Tone
6948 6949 6950

**返回值:**

6951 6952 6953
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
6954 6955 6956 6957

**示例:**

```js
6958 6959 6960 6961
tonePlayer.start().then(() => {
  console.info('promise call start');
}).catch(() => {
  console.error('promise call start fail');
6962 6963 6964
});
```

6965
### stop<sup>9+</sup>
6966

6967
stop(callback: AsyncCallback&lt;void&gt;): void
6968

6969
停止当前正在播放的音调。使用callback方式异步返回结果。
6970 6971 6972

**系统接口:** 该接口为系统接口

6973
**系统能力:** SystemCapability.Multimedia.Audio.Tone
6974 6975 6976

**参数:**

6977 6978 6979
| 参数名   | 类型                 | 必填 | 说明                           |
| :------- | :------------------- | :--- | :----------------------------- |
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。 |
6980 6981 6982 6983

**示例:**

```js
6984 6985 6986 6987 6988 6989 6990
tonePlayer.stop((err) => {
  if (err) {
    console.error(`callback call stop error: ${err.message}`);
    return;
  } else {
    console.error('callback call stop success ');
  }
6991 6992 6993
});
```

6994
### stop<sup>9+</sup>
6995

6996
stop(): Promise&lt;void&gt;
6997

6998
停止当前正在播放的音调。使用Promise方式异步返回结果。
6999

7000
**系统接口:** 该接口为系统接口
7001

7002
**系统能力:** SystemCapability.Multimedia.Audio.Tone
7003

7004
**返回值:**
7005

7006 7007 7008
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
7009 7010 7011 7012

**示例:**

```js
7013 7014 7015 7016
tonePlayer.stop().then(() => {
  console.info('promise call stop finish');
}).catch(() => {
  console.error('promise call stop fail');
7017 7018 7019
});
```

7020
### release<sup>9+</sup>
7021

7022
release(callback: AsyncCallback&lt;void&gt;): void
7023

7024
释放与此TonePlayer对象关联的资源。使用callback方式异步返回结果。
7025

7026
**系统接口:** 该接口为系统接口
7027

7028
**系统能力:** SystemCapability.Multimedia.Audio.Tone
7029 7030 7031

**参数:**

7032 7033 7034
| 参数名   | 类型                 | 必填 | 说明                            |
| :------- | :------------------- | :--- | :---------------------------- |
| callback | AsyncCallback<void\> | 是   | 使用callback方式异步返回结果。  |
7035 7036 7037 7038

**示例:**

```js
7039 7040 7041 7042 7043 7044 7045
tonePlayer.release((err) => {
  if (err) {
    console.error(`callback call release failed error: ${err.message}`);
    return;
  } else {
    console.info('callback call release success ');
  }
7046 7047 7048
});
```

7049
### release<sup>9+</sup>
7050

7051
release(): Promise&lt;void&gt;
7052

7053
释放与此TonePlayer对象关联的资源。使用Promise方式异步返回结果。
7054

7055
**系统接口:** 该接口为系统接口
7056

7057
**系统能力:** SystemCapability.Multimedia.Audio.Tone
7058

7059
**返回值:**
7060

7061 7062 7063
| 类型           | 说明                          |
| :------------- | :---------------------------- |
| Promise<void\> | 使用Promise方式异步返回结果。 |
7064 7065 7066 7067

**示例:**

```js
7068 7069 7070 7071
tonePlayer.release().then(() => {
  console.info('promise call release');
}).catch(() => {
  console.error('promise call release fail');
7072 7073 7074
});
```

7075
## ActiveDeviceType<sup>(deprecated)</sup>
7076

7077
枚举,活跃设备类型。
7078

7079 7080
> **说明:**
> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。
7081

7082 7083 7084 7085 7086 7087 7088 7089 7090 7091
**系统能力:** SystemCapability.Multimedia.Audio.Device

| 名称          |  值     | 说明                                                 |
| ------------- | ------ | ---------------------------------------------------- |
| SPEAKER       | 2      | 扬声器。                                             |
| BLUETOOTH_SCO | 7      | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 |

## InterruptActionType<sup>(deprecated)</sup>

枚举,中断事件返回类型。
7092

7093 7094 7095 7096
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃。

**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7097

7098 7099 7100 7101
| 名称           |  值     | 说明               |
| -------------- | ------ | ------------------ |
| TYPE_ACTIVATED | 0      | 表示触发焦点事件。 |
| TYPE_INTERRUPT | 1      | 表示音频打断事件。 |
7102

7103
## AudioInterrupt<sup>(deprecated)</sup>
7104

7105
音频监听事件传入的参数。
7106

7107 7108
> **说明:**
> 从 API version 7 开始支持,从 API version 9 开始废弃。
7109

7110
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7111

7112 7113 7114 7115 7116
| 名称            | 类型                        | 必填 | 说明                                                         |
| --------------- | --------------------------- | ----| ------------------------------------------------------------ |
| streamUsage     | [StreamUsage](#streamusage) | 是  | 音频流使用类型。                                             |
| contentType     | [ContentType](#contenttype) | 是  | 音频打断媒体类型。                                           |
| pauseWhenDucked | boolean                     | 是  | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 |
7117

7118 7119 7120
## InterruptAction<sup>(deprecated)</sup>

音频打断/获取焦点事件的回调方法。
7121

7122
> **说明:**
J
jiaoyanlin3 已提交
7123
> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。
7124

7125
**系统能力:** SystemCapability.Multimedia.Audio.Renderer
7126

7127 7128 7129 7130 7131 7132
| 名称       | 类型                                        | 必填 | 说明                                                         |
| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ |
| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是   | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 |
| type       | [InterruptType](#interrupttype)             | 否   | 打断事件类型。                                               |
| hint       | [InterruptHint](#interrupthint)             | 否   | 打断事件提示。                                               |
| activated  | boolean                                     | 否   | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 |