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