js-apis-audio.md 25.3 KB
Newer Older
Z
zengyawen 已提交
1
# 音频管理
2

Z
zengyawen 已提交
3
## 导入模块
M
mamingshuai 已提交
4 5 6 7 8

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

Z
zengyawen 已提交
9 10

## 权限
M
mamingshuai 已提交
11 12 13



Z
zengyawen 已提交
14 15 16 17

## getAudioManager

getAudioManager(): AudioManager
M
mamingshuai 已提交
18 19 20 21

获取音频管理器。

**返回值:**
Z
zengyawen 已提交
22 23 24
| 类型 | 说明 |
| -------- | -------- |
| [AudioManager](#audiomanager) | 音频管理类。 |
M
mamingshuai 已提交
25 26 27 28 29 30

**示例:**
```
var audioManager = audio.getAudioManager();
```

Z
zengyawen 已提交
31 32

## AudioVolumeType
M
mamingshuai 已提交
33

34
枚举,音频流类型。
M
mamingshuai 已提交
35

Z
zengyawen 已提交
36 37 38 39 40 41 42
| 名称 | 默认值 | 描述 |
| -------- | -------- | -------- |
| RINGTONE | 2 | 表示铃声。 |
| MEDIA | 3 | 表示媒体。 |


## DeviceFlag
M
mamingshuai 已提交
43

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

Z
zengyawen 已提交
46 47 48 49 50 51 52 53
| 名称 | 默认值 | 描述 |
| -------- | -------- | -------- |
| OUTPUT_DEVICES_FLAG | 1 | 表示输出设备种类。 |
| INPUT_DEVICES_FLAG | 2 | 表示输入设备种类。 |
| ALL_DEVICES_FLAG | 3 | 表示所有设备种类。 |


## DeviceRole
M
mamingshuai 已提交
54

55
枚举,设备角色。
M
mamingshuai 已提交
56

Z
zengyawen 已提交
57 58 59 60
| 名称 | 默认值 | 描述 |
| -------- | -------- | -------- |
| INPUT_DEVICE | 1 | 输入设备角色。 |
| OUTPUT_DEVICE | 2 | 输出设备角色。 |
M
mamingshuai 已提交
61 62


Z
zengyawen 已提交
63 64 65
## DeviceType

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

Z
zengyawen 已提交
67 68 69 70 71 72 73 74 75
| 名称           | 默认值 | 描述                                                    |
| -------------- | ------ | ------------------------------------------------------- |
| INVALID        | 0      | 无效设备。                                              |
| EARPIECE       | 1      | 听筒。                                                  |
| SPEAKER        | 2      | 扬声器。                                                |
| WIRED_HEADSET  | 3      | 有线耳机。                                              |
| BLUETOOTH_SCO  | 7      | 蓝牙设备SCO连接(Synchronous Connection Oriented)。      |
| BLUETOOTH_A2DP | 8      | 蓝牙设备A2DP连接(Advanced Audio Distribution Profile)。 |
| MIC            | 15     | 麦克风。                                                |
M
magekkkk 已提交
76

Z
zengyawen 已提交
77
## ActiveDeviceType<sup>7+</sup>
M
magekkkk 已提交
78

Z
zengyawen 已提交
79
枚举,活跃设备类型。
M
magekkkk 已提交
80

Z
zengyawen 已提交
81 82 83 84
| 名称          | 默认值 | 描述                                               |
| ------------- | ------ | -------------------------------------------------- |
| SPEAKER       | 2      | 扬声器。                                           |
| BLUETOOTH_SCO | 7      | 蓝牙设备SCO连接(Synchronous Connection Oriented)。 |
M
mamingshuai 已提交
85

Z
zengyawen 已提交
86
## AudioRingMode<sup>7+</sup><a name="audioringmode"></a>
87 88 89

枚举,铃声模式。

Z
zengyawen 已提交
90 91 92 93 94 95 96 97
| 名称 | 默认值 | 描述 |
| -------- | -------- | -------- |
| RINGER_MODE_SILENT | 0 | 静音模式 |
| RINGER_MODE_VIBRATE | 1 | 震动模式 |
| RINGER_MODE_NORMAL | 2 | 响铃模式 |


## AudioManager
M
mamingshuai 已提交
98

99
管理音频音量和音频设备。
M
mamingshuai 已提交
100

Z
zengyawen 已提交
101 102 103
### setVolume

setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback&lt;void&gt;): void
M
mamingshuai 已提交
104

105
设置指定流的音量,使用callback方式返回异步结果。
M
mamingshuai 已提交
106 107 108

**参数:**

Z
zengyawen 已提交
109 110 111 112 113
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调表示成功还是失败。 |
114

M
mamingshuai 已提交
115 116 117
**示例:**

```
118
audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err)=>{
M
mamingshuai 已提交
119
   if (err) {
120
	   console.error('Failed to set the volume. ${err.message}');
M
mamingshuai 已提交
121 122
	   return;
   }
123
   console.log('Callback invoked to indicate a successful volume setting.');
M
mamingshuai 已提交
124 125 126
})
```

Z
zengyawen 已提交
127 128 129
### setVolume

setVolume(volumeType: AudioVolumeType, volume: number): Promise&lt;void&gt;
M
mamingshuai 已提交
130

131
设置指定流的音量,使用promise方式返回异步结果。
M
mamingshuai 已提交
132 133 134

**参数:**

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

**返回值:**

Z
zengyawen 已提交
142 143 144
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
M
mamingshuai 已提交
145 146 147 148

**示例:**

```
149 150
audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(()=>
    console.log('Promise returned to indicate a successful volume setting.');
M
mamingshuai 已提交
151 152 153
)
```

Z
zengyawen 已提交
154 155 156
### getVolume

getVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
M
mamingshuai 已提交
157

158
获取指定流的音量,使用callback方式返回异步结果。
M
mamingshuai 已提交
159 160 161

**参数:**

Z
zengyawen 已提交
162 163 164 165
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调返回音量大小。 |
166

M
mamingshuai 已提交
167 168 169
**示例:**

```
170
audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
M
mamingshuai 已提交
171
   if (err) {
172
	   console.error('Failed to obtain the volume. ${err.message}');
M
mamingshuai 已提交
173 174
	   return;
   }
175
   console.log('Callback invoked to indicate that the volume is obtained.');
M
mamingshuai 已提交
176 177 178
})
```

Z
zengyawen 已提交
179 180 181
### getVolume

getVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
M
mamingshuai 已提交
182

183
获取指定流的音量,使用promise方式返回异步结果。
M
mamingshuai 已提交
184 185 186

**参数:**

Z
zengyawen 已提交
187 188 189
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
M
mamingshuai 已提交
190 191 192

**返回值:**

Z
zengyawen 已提交
193 194 195
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | Promise回调返回音量大小。 |
M
mamingshuai 已提交
196 197 198 199

**示例:**

```
200 201
audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value) =>
    console.log('Promise returned to indicate that the volume is obtained.' + value);
M
mamingshuai 已提交
202 203 204
)
```

Z
zengyawen 已提交
205 206 207
### getMinVolume

getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
M
mamingshuai 已提交
208

209
获取指定流的最小音量,使用callback方式返回异步结果。
M
mamingshuai 已提交
210 211 212

**参数:**

Z
zengyawen 已提交
213 214 215 216
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调返回最小音量。 |
217

M
mamingshuai 已提交
218 219 220
**示例:**

```
Z
zengyawen 已提交
221
audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
222 223 224 225 226
    if (err) {
        console.error('Failed to obtain the minimum volume. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate that the minimum volume is obtained.' + value);
M
mamingshuai 已提交
227 228 229
})
```

Z
zengyawen 已提交
230 231 232
### getMinVolume

getMinVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
M
mamingshuai 已提交
233

234
获取指定流的最小音量,使用promise方式返回异步结果。
M
mamingshuai 已提交
235 236 237

**参数:**

Z
zengyawen 已提交
238 239 240
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
M
mamingshuai 已提交
241 242 243

**返回值:**

Z
zengyawen 已提交
244 245 246
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | Promise回调返回最小音量。 |
M
mamingshuai 已提交
247 248 249 250

**示例:**

```
251 252
audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value) =>
    console.log('Promised returned to indicate that the minimum  volume is obtained.' + value);
M
mamingshuai 已提交
253 254 255
)
```

Z
zengyawen 已提交
256 257 258
### getMaxVolume

getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback&lt;number&gt;): void
M
mamingshuai 已提交
259

260
获取指定流的最大音量,使用callback方式返回异步结果。
M
mamingshuai 已提交
261 262 263

**参数:**

Z
zengyawen 已提交
264 265 266 267
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调返回最大音量大小。 |
268

M
mamingshuai 已提交
269 270 271
**示例:**

```
272 273 274 275 276 277
audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err, value) => {
    if (err) {
        console.error('Failed to obtain the maximum volume. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the maximum volume is obtained.' + value);
M
mamingshuai 已提交
278 279 280
})
```

Z
zengyawen 已提交
281 282 283
### getMaxVolume

getMaxVolume(volumeType: AudioVolumeType): Promise&lt;number&gt;
M
mamingshuai 已提交
284

285
获取指定流的最大音量,使用promise方式返回异步结果。
M
mamingshuai 已提交
286 287 288

**参数:**

Z
zengyawen 已提交
289 290 291
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
M
mamingshuai 已提交
292 293 294

**返回值:**

Z
zengyawen 已提交
295 296 297
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;number&gt; | Promise回调返回最大音量大小。 |
M
mamingshuai 已提交
298 299 300 301 302

**示例:**

```
audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data)=>
303
    console.log('Promised returned to indicate that the maximum volume is obtained.');
Z
zengyawen 已提交
304 305 306
)
```

Z
zengyawen 已提交
307 308 309
### mute<sup>7+</sup>

mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback&lt;void&gt;): void
Z
zengyawen 已提交
310

311
设置指定音量流静音,使用callback方式返回异步结果。
Z
zengyawen 已提交
312 313 314

**参数:**

Z
zengyawen 已提交
315 316 317 318 319
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调表示成功还是失败。 |
320

Z
zengyawen 已提交
321 322 323
**示例:**

```
324 325 326 327 328 329 330 331 332
audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err) => {
    if (err) {
        console.error('Failed to mute the stream. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate that the stream is muted.');
})
```

Z
zengyawen 已提交
333 334 335
### mute<sup>7+</sup>

mute(volumeType: AudioVolumeType, mute: boolean): Promise&lt;void&gt;
336 337 338 339 340

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

**参数:**

Z
zengyawen 已提交
341 342 343 344
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 |
345 346 347

**返回值:**

Z
zengyawen 已提交
348 349 350
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调表示成功还是失败。 |
351 352 353

**示例:**

Z
zengyawen 已提交
354

355 356 357 358 359 360 361
```
audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() =>
    console.log('Promise returned to indicate that the stream is muted.');
)
```


Z
zengyawen 已提交
362
### isMute<sup>7+</sup>
363

Z
zengyawen 已提交
364
isMute(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
365

Z
zengyawen 已提交
366
获取指定音量流是否被静音,使用callback方式返回异步结果。
367

Z
zengyawen 已提交
368
**参数:**
369

Z
zengyawen 已提交
370 371 372 373
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回流静音状态,true为静音,false为非静音。 |
374 375 376 377 378

**示例:**

```
audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, value) => {
M
mamingshuai 已提交
379
   if (err) {
380
	   console.error('Failed to obtain the mute status. ${err.message}');
M
mamingshuai 已提交
381 382
	   return;
   }
383
   console.log('Callback invoked to indicate that the mute status of the stream is obtained.' + value);
Z
zengyawen 已提交
384 385 386
})
```

Z
zengyawen 已提交
387 388 389 390

### isMute<sup>7+</sup>

isMute(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
Z
zengyawen 已提交
391

392
获取指定音量流是否被静音,使用promise方式返回异步结果。
Z
zengyawen 已提交
393 394 395

**参数:**

Z
zengyawen 已提交
396 397 398
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
Z
zengyawen 已提交
399 400 401

**返回值:**

Z
zengyawen 已提交
402 403 404
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise回调返回流静音状态,true为静音,false为非静音。 |
M
mamingshuai 已提交
405

Z
zengyawen 已提交
406 407 408
**示例:**

```
409 410
audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value) =>
    console.log('Promise returned to indicate that the mute status of the stream is obtained.' + value);
Z
zengyawen 已提交
411 412 413
)
```

Z
zengyawen 已提交
414 415 416
### isActive<sup>7+</sup>

isActive(volumeType: AudioVolumeType, callback: AsyncCallback&lt;boolean&gt;): void
Z
zengyawen 已提交
417

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

**参数:**

Z
zengyawen 已提交
422 423 424 425
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回流的活跃状态,true为活跃,false为不活跃。 |
426 427 428 429 430 431 432 433 434 435 436 437 438

**示例:**

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

Z
zengyawen 已提交
439 440 441
### isActive<sup>7+</sup>

isActive(volumeType: AudioVolumeType): Promise&lt;boolean&gt;
442 443 444 445 446

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

**参数:**

Z
zengyawen 已提交
447 448 449
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 |
450 451 452

**返回值:**

Z
zengyawen 已提交
453 454 455
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 |
Z
zengyawen 已提交
456

457 458 459 460 461 462 463 464
**示例:**

```
audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value) =>
    console.log('Promise returned to indicate that the active status of the stream is obtained.' + value);
)
```

Z
zengyawen 已提交
465 466 467
### setRingerMode<sup>7+</sup>

setRingerMode(mode: AudioRingMode, callback: AsyncCallback&lt;void&gt;): void
468 469 470 471 472

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

**参数:**

Z
zengyawen 已提交
473 474 475 476
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回设置成功或失败。 |
477 478 479 480 481 482 483 484 485 486 487 488 489

**示例:**

```
audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err) => {
   if (err) {
       console.error('Failed to set the ringer mode.​ ${err.message}');
       return;
    }
    console.log('Callback invoked to indicate a successful setting of the ringer mode.');
})
```

Z
zengyawen 已提交
490 491 492
### setRingerMode<sup>7+</sup>

setRingerMode(mode: AudioRingMode): Promise&lt;void&gt;
493 494 495 496 497

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

**参数:**

Z
zengyawen 已提交
498 499 500
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 |
501 502 503

**返回值:**

Z
zengyawen 已提交
504 505 506
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
507 508 509 510 511 512 513 514 515 516

**示例:**

```
audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() =>
    console.log('Promise returned to indicate a successful setting of the ringer mode.');
)
```


Z
zengyawen 已提交
517
### getRingerMode<sup>7+</sup>
518

Z
zengyawen 已提交
519
getRingerMode(callback: AsyncCallback&lt;AudioRingMode&gt;): void
520

Z
zengyawen 已提交
521
获取铃声模式,使用callback方式返回异步结果。
522

Z
zengyawen 已提交
523
**参数:**
524

Z
zengyawen 已提交
525 526 527
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[AudioRingMode](#audioringmode)&gt; | 是 | 回调返回系统的铃声模式。 |
528 529 530 531 532 533 534 535 536 537 538 539 540 541

**示例:**

```
audioManager.getRingerMode((err, value) => {
   if (err) {
	   console.error('Failed to obtain the ringer mode.​ ${err.message}');
	   return;
   }
   console.log('Callback invoked to indicate that the ringer mode is obtained.' + value);
})
```


Z
zengyawen 已提交
542
### getRingerMode<sup>7+</sup>
543

Z
zengyawen 已提交
544
getRingerMode(): Promise&lt;AudioRingMode&gt;
545

Z
zengyawen 已提交
546
获取铃声模式,使用promise方式返回异步结果。
547 548 549

**返回值:**

Z
zengyawen 已提交
550 551 552
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[AudioRingMode](#audioringmode7-)&gt; | Promise回调返回系统的铃声模式。 |
553 554 555 556 557 558 559 560 561

**示例:**

```
audioManager.getRingerMode().then((value) =>
    console.log('Promise returned to indicate that the ringer mode is obtained.' + value);
)
```

Z
zengyawen 已提交
562 563 564
### setAudioParameter<sup>7+</sup>

setAudioParameter(key: string, value: string, callback: AsyncCallback&lt;void&gt;): void
565 566 567 568 569

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

**参数:**

Z
zengyawen 已提交
570 571 572 573 574
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 被设置的音频参数的键。 |
| value | string | 是 | 被设置的音频参数的值。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回设置成功或失败。 |
575 576 577 578 579 580 581 582 583 584 585 586 587

**示例:**

```
audioManager.setAudioParameter('PBits per sample', '8 bit', (err) => {
    if (err) {
        console.error('Failed to set the audio parameter. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate a successful setting of the audio parameter.');
})
```

Z
zengyawen 已提交
588 589 590
### setAudioParameter<sup>7+</sup>

setAudioParameter(key: string, value: string): Promise&lt;void&gt;
591 592 593 594 595

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

**参数:**

Z
zengyawen 已提交
596 597 598 599
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 被设置的音频参数的键。 |
| value | string | 是 | 被设置的音频参数的值。 |
600 601 602

**返回值:**

Z
zengyawen 已提交
603 604 605
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
606 607 608 609 610 611 612 613 614

**示例:**

```
audioManager.setAudioParameter('PBits per sample', '8 bit').then(() =>
    console.log('Promise returned to indicate a successful setting of the audio parameter.');
)
```

Z
zengyawen 已提交
615 616 617
### getAudioParameter<sup>7+</sup>

getAudioParameter(key: string, callback: AsyncCallback&lt;string&gt;): void
618 619 620 621 622

获取指定音频参数值,使用callback方式返回异步结果。

**参数:**

Z
zengyawen 已提交
623 624 625 626
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待获取的音频参数的键。 |
| callback | AsyncCallback&lt;string&gt; | 是 | 回调返回获取的音频参数的值。 |
627 628 629 630 631 632 633 634 635 636 637 638 639

**示例:**

```
audioManager.getAudioParameter('PBits per sample', (err, value) => {
    if (err) {
        console.error('Failed to obtain the value of the audio parameter. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate that the value of the audio parameter is obtained.' + value);
})
```

Z
zengyawen 已提交
640 641 642
### getAudioParameter<sup>7+</sup>

getAudioParameter(key: string): Promise&lt;string&gt;
643 644 645 646 647

获取指定音频参数值,使用promise方式返回异步结果。

**参数:**

Z
zengyawen 已提交
648 649 650
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | string | 是 | 待获取的音频参数的键。 |
651 652 653

**返回值:**

Z
zengyawen 已提交
654 655 656
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;string&gt; | Promise回调返回获取的音频参数的值。 |
657 658 659 660 661 662 663 664 665

**示例:**

```
audioManager.getAudioParameter('PBits per sample').then((value) =>
    console.log('Promise returned to indicate that the value of the audio parameter is obtained.' + value);
)
```

Z
zengyawen 已提交
666 667 668
### getDevices

getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback&lt;AudioDeviceDescriptors&gt;): void
669 670 671 672 673

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

**参数:**

Z
zengyawen 已提交
674 675 676 677
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 |
| callback | AsyncCallback&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是 | 回调,返回设备列表。 |
678 679 680 681 682 683 684 685 686 687 688 689

**示例:**
```
audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value)=>{
   if (err) {
	   console.error('Failed to obtain the device list. ${err.message}');
	   return;
   }
   console.log('Callback invoked to indicate that the device list is obtained.');
})
```

Z
zengyawen 已提交
690 691 692
### getDevices

(deviceFlag: DeviceFlag): Promise&lt;AudioDeviceDescriptors&gt;
693 694 695 696 697

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

**参数:**

Z
zengyawen 已提交
698 699 700
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 |
701 702 703

**返回值:**

Z
zengyawen 已提交
704 705 706
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | Promise回调返回设备列表。 |
707 708 709 710 711 712 713 714 715

**示例:**

```
audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data)=>
    console.log('Promise returned to indicate that the device list is obtained.');
)
```

Z
zengyawen 已提交
716 717 718
### setDeviceActive<sup>7+</sup>

setDeviceActive(deviceType: DeviceType, active: boolean, callback: AsyncCallback&lt;void&gt;): void
719 720 721 722 723

设置设备激活状态,使用callback方式返回异步结果。

**参数:**

Z
zengyawen 已提交
724 725 726 727 728
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceType | [DeviceType](#devicetype) | 是 | 音频设备类型。 |
| active | boolean | 是 | 设备激活状态。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回设置成功或失败。 |
729 730 731 732

**示例:**

```
Z
zengyawen 已提交
733
audioManager.setDeviceActive(audio.DeviceType.SPEAKER, true, (err)=> {
734 735 736 737 738 739 740 741
    if (err) {
        console.error('Failed to set the active status of the device. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate that the device is set to the active status.');
})
```

Z
zengyawen 已提交
742 743 744
### setDeviceActive<sup>7+</sup>

setDeviceActive(deviceType: DeviceType, active: boolean): Promise&lt;void&gt;
745 746 747 748 749

设置设备激活状态,使用promise方式返回异步结果。

**参数:**

Z
zengyawen 已提交
750 751 752 753
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceType | [DeviceType](#devicetype) | 是 | 音频设备类型。 |
| active | boolean | 是 | 设备激活状态。 |
754 755 756

**返回值:**

Z
zengyawen 已提交
757 758 759
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
760 761 762

**示例:**

Z
zengyawen 已提交
763

764
```
Z
zengyawen 已提交
765
audioManager.setDeviceActive(audio.DeviceType.SPEAKER, true).then(()=>
766 767 768 769
    console.log('Promise returned to indicate that the device is set to the active status.');
)
```

Z
zengyawen 已提交
770 771 772
### isDeviceActive<sup>7+</sup>

isDeviceActive(deviceType: DeviceType, callback: AsyncCallback&lt;boolean&gt;): void
773

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

**参数:**

Z
zengyawen 已提交
778 779 780 781
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceType | [DeviceType](#devicetype) | 是 | 音频设备类型。 |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回设备的激活状态。 |
782 783 784 785

**示例:**

```
Z
zengyawen 已提交
786
audioManager.isDeviceActive(audio.DeviceType.SPEAKER, (err, value) => {
787 788 789 790 791 792 793 794
    if (err) {
        console.error('Failed to obtain the active status of the device. ${err.message}');
	return;
    }
    console.log('Callback invoked to indicate that the active status of the device is obtained.');
})
```

Z
zengyawen 已提交
795 796 797 798

### isDeviceActive<sup>7+</sup>

isDeviceActive(deviceType: DeviceType): Promise&lt;boolean&gt;
799

800
获取指定设备的激活状态,使用promise方式返回异步结果。
801 802 803

**参数:**

Z
zengyawen 已提交
804 805 806
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| deviceType | [DeviceType](#devicetype) | 是 | 音频设备类型。 |
807 808 809

**返回值:**

Z
zengyawen 已提交
810 811 812
| Type | Description |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise回调返回设备的激活状态。 |
813 814 815 816

**示例:**

```
Z
zengyawen 已提交
817
audioManager.isDeviceActive(audio.DeviceType.SPEAKER).then((value) =>
818 819 820 821
    console.log('Promise returned to indicate that the active status of the device is obtained.' + value);
)
```

Z
zengyawen 已提交
822 823 824
### setMicrophoneMute<sup>7+</sup>

setMicrophoneMute(mute: boolean, callback: AsyncCallback&lt;void&gt;): void
825 826 827 828 829

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

**参数:**

Z
zengyawen 已提交
830 831 832 833
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调返回设置成功或失败。 |
834 835 836 837 838 839 840 841 842 843 844 845 846

**示例:**

```
audioManager.setMicrophoneMute(true, (err) => {
    if (err) {
        console.error('Failed to mute the microphone. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the microphone is muted.');
})
```

Z
zengyawen 已提交
847 848 849
### setMicrophoneMute<sup>7+</sup>

setMicrophoneMute(mute: boolean): Promise&lt;void&gt;
850 851 852 853 854

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

**参数:**

Z
zengyawen 已提交
855 856 857
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 |
858 859 860

**返回值:**

Z
zengyawen 已提交
861 862 863
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise回调返回设置成功或失败。 |
864 865 866 867 868 869 870 871 872

**示例:**

```
audioManager.setMicrophoneMute(true).then(() =>
    console.log('Promise returned to indicate that the microphone is muted.');
)
```

Z
zengyawen 已提交
873 874 875
### isMicrophoneMute<sup>7+</sup>

isMicrophoneMute(callback: AsyncCallback&lt;boolean&gt;): void
876 877 878 879 880

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

**参数:**

Z
zengyawen 已提交
881 882 883
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 |
884 885 886 887 888 889 890 891 892 893 894 895 896

**示例:**

```
audioManager.isMicrophoneMute((err, value) => {
    if (err) {
        console.error('Failed to obtain the mute status of the microphone. ${err.message}');
        return;
    }
    console.log('Callback invoked to indicate that the mute status of the microphone is obtained.' + value);
})
```

Z
zengyawen 已提交
897
### isMicrophoneMute<sup>7+</sup>
898

Z
zengyawen 已提交
899
isMicrophoneMute(): Promise&lt;boolean&gt;
900

Z
zengyawen 已提交
901
获取麦克风静音状态,使用promise方式返回异步结果。
902 903 904

**返回值:**

Z
zengyawen 已提交
905 906 907
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 |
908 909 910

**示例:**

Z
zengyawen 已提交
911

912 913 914 915 916 917
```
audioManager.isMicrophoneMute().then((value) =>
    console.log('Promise returned to indicate that the mute status of the microphone is obtained.', + value);
)
```

Z
zengyawen 已提交
918 919

## AudioDeviceDescriptor
920 921 922

描述音频设备。

Z
zengyawen 已提交
923 924 925 926 927 928 929
| 名称 | 参数型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| deviceRole | [DeviceRole](#devicerole) | 是 | 否 | 设备角色。 |
| deviceType | [DeviceType](#devicetype) | 是 | 否 | 设备类型。 |


## AudioDeviceDescriptors
M
mamingshuai 已提交
930

Z
zengyawen 已提交
931 932 933
| 名称 | 描述 |
| -------- | -------- |
| 设备属性数组 | AudioDeviceDescriptor的数组,只读。 |