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