1# @ohos.multimedia.audio (音频管理) 2 3音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。 4 5该模块提供以下音频相关的常用功能: 6 7- [AudioManager](#audiomanager):音频管理。 8- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。 9- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。 10- [TonePlayer](#toneplayer9):用于管理和播放DTMF(Dual Tone Multi Frequency,双音多频)音调,如拨号音、通话回铃音等。 11 12> **说明:** 13> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 14 15## 导入模块 16 17```ts 18import audio from '@ohos.multimedia.audio'; 19``` 20 21## 常量 22 23| 名称 | 类型 | 可读 | 可写 | 说明 | 24| --------------------------------------- | ----------| ---- | ---- | ------------------ | 25| LOCAL_NETWORK_ID<sup>9+</sup> | string | 是 | 否 | 本地设备网络id。<br/>此接口为系统接口。<br> **系统能力:** SystemCapability.Multimedia.Audio.Device | 26| DEFAULT_VOLUME_GROUP_ID<sup>9+</sup> | number | 是 | 否 | 默认音量组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Volume | 27| DEFAULT_INTERRUPT_GROUP_ID<sup>9+</sup> | number | 是 | 否 | 默认音频中断组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Interrupt | 28 29**示例:** 30 31```ts 32import audio from '@ohos.multimedia.audio'; 33 34const localNetworkId = audio.LOCAL_NETWORK_ID; 35const defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID; 36const defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID; 37``` 38 39## audio.getAudioManager 40 41getAudioManager(): AudioManager 42 43获取音频管理器。 44 45**系统能力:** SystemCapability.Multimedia.Audio.Core 46 47**返回值:** 48 49| 类型 | 说明 | 50| ----------------------------- | ------------ | 51| [AudioManager](#audiomanager) | 音频管理类。 | 52 53**示例:** 54```ts 55import audio from '@ohos.multimedia.audio'; 56let audioManager = audio.getAudioManager(); 57``` 58 59## audio.createAudioRenderer<sup>8+</sup> 60 61createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void 62 63获取音频渲染器。使用callback方式异步返回结果。 64 65**系统能力:** SystemCapability.Multimedia.Audio.Renderer 66 67**参数:** 68 69| 参数名 | 类型 | 必填 | 说明 | 70| -------- | ----------------------------------------------- | ---- | ---------------- | 71| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 | 72| callback | AsyncCallback<[AudioRenderer](#audiorenderer8)> | 是 | 音频渲染器对象。 | 73 74**示例:** 75 76```ts 77import fs from '@ohos.file.fs'; 78import audio from '@ohos.multimedia.audio'; 79 80let audioStreamInfo: audio.AudioStreamInfo = { 81 samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 82 channels: audio.AudioChannel.CHANNEL_1, 83 sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 84 encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 85} 86 87let audioRendererInfo: audio.AudioRendererInfo = { 88 content: audio.ContentType.CONTENT_TYPE_SPEECH, 89 usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, 90 rendererFlags: 0 91} 92 93let audioRendererOptions: audio.AudioRendererOptions = { 94 streamInfo: audioStreamInfo, 95 rendererInfo: audioRendererInfo 96} 97 98audio.createAudioRenderer(audioRendererOptions,(err, data) => { 99 if (err) { 100 console.error(`AudioRenderer Created: Error: ${err}`); 101 } else { 102 console.info('AudioRenderer Created: Success: SUCCESS'); 103 let audioRenderer = data; 104 } 105}); 106``` 107 108## audio.createAudioRenderer<sup>8+</sup> 109 110createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\> 111 112获取音频渲染器。使用Promise方式异步返回结果。 113 114**系统能力:** SystemCapability.Multimedia.Audio.Renderer 115 116**参数:** 117 118| 参数名 | 类型 | 必填 | 说明 | 119| :------ | :--------------------------------------------- | :--- | :----------- | 120| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 | 121 122**返回值:** 123 124| 类型 | 说明 | 125| ----------------------------------------- | ---------------- | 126| Promise<[AudioRenderer](#audiorenderer8)> | 音频渲染器对象。 | 127 128**示例:** 129 130```ts 131import fs from '@ohos.file.fs'; 132import audio from '@ohos.multimedia.audio'; 133import { BusinessError } from '@ohos.base'; 134 135let audioStreamInfo: audio.AudioStreamInfo = { 136 samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 137 channels: audio.AudioChannel.CHANNEL_1, 138 sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 139 encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 140} 141 142let audioRendererInfo: audio.AudioRendererInfo = { 143 content: audio.ContentType.CONTENT_TYPE_SPEECH, 144 usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, 145 rendererFlags: 0 146} 147 148let audioRendererOptions: audio.AudioRendererOptions = { 149 streamInfo: audioStreamInfo, 150 rendererInfo: audioRendererInfo 151} 152 153let audioRenderer: audio.AudioRenderer; 154audio.createAudioRenderer(audioRendererOptions).then((data) => { 155 audioRenderer = data; 156 console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS'); 157}).catch((err: BusinessError) => { 158 console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`); 159}); 160``` 161 162## audio.createAudioCapturer<sup>8+</sup> 163 164createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void 165 166获取音频采集器。使用callback方式异步返回结果。 167 168**系统能力:** SystemCapability.Multimedia.Audio.Capturer 169 170**需要权限:** ohos.permission.MICROPHONE 171 172**参数:** 173 174| 参数名 | 类型 | 必填 | 说明 | 175| :------- | :---------------------------------------------- | :--- | :--------------- | 176| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是 | 配置音频采集器。 | 177| callback | AsyncCallback<[AudioCapturer](#audiocapturer8)> | 是 | 音频采集器对象。 | 178 179**示例:** 180 181```ts 182import audio from '@ohos.multimedia.audio'; 183let audioStreamInfo: audio.AudioStreamInfo = { 184 samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 185 channels: audio.AudioChannel.CHANNEL_2, 186 sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 187 encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 188} 189 190let audioCapturerInfo: audio.AudioCapturerInfo = { 191 source: audio.SourceType.SOURCE_TYPE_MIC, 192 capturerFlags: 0 193} 194 195let audioCapturerOptions: audio.AudioCapturerOptions = { 196 streamInfo: audioStreamInfo, 197 capturerInfo: audioCapturerInfo 198} 199 200audio.createAudioCapturer(audioCapturerOptions, (err, data) => { 201 if (err) { 202 console.error(`AudioCapturer Created : Error: ${err}`); 203 } else { 204 console.info('AudioCapturer Created : Success : SUCCESS'); 205 let audioCapturer = data; 206 } 207}); 208``` 209 210## audio.createAudioCapturer<sup>8+</sup> 211 212createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\> 213 214获取音频采集器。使用promise 方式异步返回结果。 215 216**系统能力:** SystemCapability.Multimedia.Audio.Capturer 217 218**需要权限:** ohos.permission.MICROPHONE 219 220**参数:** 221 222| 参数名 | 类型 | 必填 | 说明 | 223| :------ | :--------------------------------------------- | :--- | :--------------- | 224| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是 | 配置音频采集器。 | 225 226**返回值:** 227 228| 类型 | 说明 | 229| ----------------------------------------- | -------------- | 230| Promise<[AudioCapturer](#audiocapturer8)> | 音频采集器对象 | 231 232**示例:** 233 234```ts 235import audio from '@ohos.multimedia.audio'; 236import { BusinessError } from '@ohos.base'; 237 238let audioStreamInfo: audio.AudioStreamInfo = { 239 samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 240 channels: audio.AudioChannel.CHANNEL_2, 241 sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 242 encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 243} 244 245let audioCapturerInfo: audio.AudioCapturerInfo = { 246 source: audio.SourceType.SOURCE_TYPE_MIC, 247 capturerFlags: 0 248} 249 250let audioCapturerOptions:audio.AudioCapturerOptions = { 251 streamInfo: audioStreamInfo, 252 capturerInfo: audioCapturerInfo 253} 254 255let audioCapturer: audio.AudioCapturer; 256audio.createAudioCapturer(audioCapturerOptions).then((data) => { 257 audioCapturer = data; 258 console.info('AudioCapturer Created : Success : Stream Type: SUCCESS'); 259}).catch((err: BusinessError) => { 260 console.error(`AudioCapturer Created : ERROR : ${err}`); 261}); 262``` 263 264## audio.createTonePlayer<sup>9+</sup> 265 266createTonePlayer(options: AudioRendererInfo, callback: AsyncCallback<TonePlayer>): void 267 268创建DTMF播放器。使用callback方式异步返回结果。 269 270**系统能力:** SystemCapability.Multimedia.Audio.Tone 271 272**系统接口:** 该接口为系统接口 273 274**参数:** 275 276| 参数名 | 类型 | 必填 | 说明 | 277| -------- | ----------------------------------------------- | ---- | -------------- | 278| options | [AudioRendererInfo](#audiorendererinfo8) | 是 | 配置音频渲染器信息。| 279| callback | AsyncCallback<[TonePlayer](#toneplayer9)> | 是 | 回调函数,回调返回音频渲染器对象。| 280 281**示例:** 282 283```ts 284import audio from '@ohos.multimedia.audio'; 285 286let audioRendererInfo: audio.AudioRendererInfo = { 287 usage : audio.StreamUsage.STREAM_USAGE_DTMF, 288 rendererFlags : 0 289} 290let tonePlayer: audio.TonePlayer; 291 292audio.createTonePlayer(audioRendererInfo, (err, data) => { 293 console.info(`callback call createTonePlayer: audioRendererInfo: ${audioRendererInfo}`); 294 if (err) { 295 console.error(`callback call createTonePlayer return error: ${err.message}`); 296 } else { 297 console.info(`callback call createTonePlayer return data: ${data}`); 298 tonePlayer = data; 299 } 300}); 301``` 302 303## audio.createTonePlayer<sup>9+</sup> 304 305createTonePlayer(options: AudioRendererInfo): Promise<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```ts 328import audio from '@ohos.multimedia.audio'; 329let tonePlayer: audio.TonePlayer; 330async function createTonePlayerBefore(){ 331 let audioRendererInfo: audio.AudioRendererInfo = { 332 usage : audio.StreamUsage.STREAM_USAGE_DTMF, 333 rendererFlags : 0 334 } 335 tonePlayer = await audio.createTonePlayer(audioRendererInfo); 336} 337``` 338 339## AudioVolumeType 340 341枚举,音频流类型。 342 343**系统能力:** SystemCapability.Multimedia.Audio.Volume 344 345| 名称 | 值 | 说明 | 346| ---------------------------- | ------ | ---------- | 347| VOICE_CALL<sup>8+</sup> | 0 | 语音电话。 | 348| RINGTONE | 2 | 铃声。 | 349| MEDIA | 3 | 媒体。 | 350| ALARM<sup>10+</sup> | 4 | 闹钟。 | 351| ACCESSIBILITY<sup>10+</sup> | 5 | 无障碍。 | 352| VOICE_ASSISTANT<sup>8+</sup> | 9 | 语音助手。 | 353| ULTRASONIC<sup>10+</sup> | 10 | 超声波。<br/>此接口为系统接口。| 354| ALL<sup>9+</sup> | 100 | 所有公共音频流。<br/>此接口为系统接口。| 355 356## InterruptRequestResultType<sup>9+</sup> 357 358枚举,音频中断请求结果类型。 359 360**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 361 362**系统接口:** 该接口为系统接口 363 364| 名称 | 值 | 说明 | 365| ---------------------------- | ------ | ---------- | 366| INTERRUPT_REQUEST_GRANT | 0 | 请求音频中断成功。 | 367| INTERRUPT_REQUEST_REJECT | 1 | 请求音频中断失败,可能具有较高优先级类型。 | 368 369## InterruptMode<sup>9+</sup> 370 371枚举,焦点模型。 372 373**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 374 375| 名称 | 值 | 说明 | 376| ---------------------------- | ------ | ---------- | 377| SHARE_MODE | 0 | 共享焦点模式。 | 378| INDEPENDENT_MODE | 1 | 独立焦点模式。 | 379 380## DeviceFlag 381 382枚举,可获取的设备种类。 383 384**系统能力:** SystemCapability.Multimedia.Audio.Device 385 386| 名称 | 值 | 说明 | 387| ------------------------------- | ------ | ------------------------------------------------- | 388| NONE_DEVICES_FLAG<sup>9+</sup> | 0 | 无 <br/>此接口为系统接口。 | 389| OUTPUT_DEVICES_FLAG | 1 | 输出设备。 | 390| INPUT_DEVICES_FLAG | 2 | 输入设备。 | 391| ALL_DEVICES_FLAG | 3 | 所有设备。 | 392| DISTRIBUTED_OUTPUT_DEVICES_FLAG<sup>9+</sup> | 4 | 分布式输出设备。<br/>此接口为系统接口。 | 393| DISTRIBUTED_INPUT_DEVICES_FLAG<sup>9+</sup> | 8 | 分布式输入设备。<br/>此接口为系统接口。 | 394| ALL_DISTRIBUTED_DEVICES_FLAG<sup>9+</sup> | 12 | 分布式输入和输出设备。<br/>此接口为系统接口。 | 395 396## DeviceRole 397 398枚举,设备角色。 399 400**系统能力:** SystemCapability.Multimedia.Audio.Device 401 402| 名称 | 值 | 说明 | 403| ------------- | ------ | -------------- | 404| INPUT_DEVICE | 1 | 输入设备角色。 | 405| OUTPUT_DEVICE | 2 | 输出设备角色。 | 406 407## DeviceType 408 409枚举,设备类型。 410 411**系统能力:** SystemCapability.Multimedia.Audio.Device 412 413| 名称 | 值 | 说明 | 414| ---------------------| ------ | --------------------------------------------------------- | 415| INVALID | 0 | 无效设备。 | 416| EARPIECE | 1 | 听筒。 | 417| SPEAKER | 2 | 扬声器。 | 418| WIRED_HEADSET | 3 | 有线耳机,带麦克风。 | 419| WIRED_HEADPHONES | 4 | 有线耳机,无麦克风。 | 420| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 | 421| BLUETOOTH_A2DP | 8 | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 | 422| MIC | 15 | 麦克风。 | 423| USB_HEADSET | 22 | USB耳机,带麦克风。 | 424| DEFAULT<sup>9+</sup> | 1000 | 默认设备类型。 | 425 426## CommunicationDeviceType<sup>9+</sup> 427 428枚举,用于通信的可用设备类型。 429 430**系统能力:** SystemCapability.Multimedia.Audio.Communication 431 432| 名称 | 值 | 说明 | 433| ------------- | ------ | -------------| 434| SPEAKER | 2 | 扬声器。 | 435 436## AudioRingMode 437 438枚举,铃声模式。 439 440**系统能力:** SystemCapability.Multimedia.Audio.Communication 441 442| 名称 | 值 | 说明 | 443| ------------------- | ------ | ---------- | 444| RINGER_MODE_SILENT | 0 | 静音模式。 | 445| RINGER_MODE_VIBRATE | 1 | 震动模式。 | 446| RINGER_MODE_NORMAL | 2 | 响铃模式。 | 447 448## AudioSampleFormat<sup>8+</sup> 449 450枚举,音频采样格式。 451 452**系统能力:** SystemCapability.Multimedia.Audio.Core 453 454| 名称 | 值 | 说明 | 455| ---------------------------------- | ------ | -------------------------- | 456| SAMPLE_FORMAT_INVALID | -1 | 无效格式。 | 457| SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 | 458| SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | 459| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 460| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 461| SAMPLE_FORMAT_F32LE<sup>9+</sup> | 4 | 带符号的32位浮点数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 462 463## AudioErrors<sup>9+</sup> 464 465枚举,音频错误码。 466 467**系统能力:** SystemCapability.Multimedia.Audio.Core 468 469| 名称 | 值 | 说明 | 470| ---------------------| --------| ----------------- | 471| ERROR_INVALID_PARAM | 6800101 | 无效入参。 | 472| ERROR_NO_MEMORY | 6800102 | 分配内存失败。 | 473| ERROR_ILLEGAL_STATE | 6800103 | 状态不支持。 | 474| ERROR_UNSUPPORTED | 6800104 | 参数选项不支持。 | 475| ERROR_TIMEOUT | 6800105 | 处理超时。 | 476| ERROR_STREAM_LIMIT | 6800201 | 音频流数量达到限制。| 477| ERROR_SYSTEM | 6800301 | 系统处理异常。 | 478 479## AudioChannel<sup>8+</sup> 480 481枚举, 音频声道。 482 483**系统能力:** SystemCapability.Multimedia.Audio.Core 484 485| 名称 | 值 | 说明 | 486| --------- | -------- | -------- | 487| CHANNEL_1 | 0x1 << 0 | 第一声道。 | 488| CHANNEL_2 | 0x1 << 1 | 第二声道。 | 489 490## AudioSamplingRate<sup>8+</sup> 491 492枚举,音频采样率,具体设备支持的采样率规格会存在差异。 493 494**系统能力:** SystemCapability.Multimedia.Audio.Core 495 496| 名称 | 值 | 说明 | 497| ----------------- | ------ | --------------- | 498| SAMPLE_RATE_8000 | 8000 | 采样率为8000。 | 499| SAMPLE_RATE_11025 | 11025 | 采样率为11025。 | 500| SAMPLE_RATE_12000 | 12000 | 采样率为12000。 | 501| SAMPLE_RATE_16000 | 16000 | 采样率为16000。 | 502| SAMPLE_RATE_22050 | 22050 | 采样率为22050。 | 503| SAMPLE_RATE_24000 | 24000 | 采样率为24000。 | 504| SAMPLE_RATE_32000 | 32000 | 采样率为32000。 | 505| SAMPLE_RATE_44100 | 44100 | 采样率为44100。 | 506| SAMPLE_RATE_48000 | 48000 | 采样率为48000。 | 507| SAMPLE_RATE_64000 | 64000 | 采样率为64000。 | 508| SAMPLE_RATE_96000 | 96000 | 采样率为96000。 | 509 510## AudioEncodingType<sup>8+</sup> 511 512枚举,音频编码类型。 513 514**系统能力:** SystemCapability.Multimedia.Audio.Core 515 516| 名称 | 值 | 说明 | 517| --------------------- | ------ | --------- | 518| ENCODING_TYPE_INVALID | -1 | 无效。 | 519| ENCODING_TYPE_RAW | 0 | PCM编码。 | 520 521## ContentType 522 523枚举,音频内容类型。 524 525**系统能力:** SystemCapability.Multimedia.Audio.Core 526 527| 名称 | 值 | 说明 | 528| ---------------------------------- | ------ | ---------- | 529| CONTENT_TYPE_UNKNOWN | 0 | 未知类型。 | 530| CONTENT_TYPE_SPEECH | 1 | 语音。 | 531| CONTENT_TYPE_MUSIC | 2 | 音乐。 | 532| CONTENT_TYPE_MOVIE | 3 | 电影。 | 533| CONTENT_TYPE_SONIFICATION | 4 | 通知音。 | 534| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5 | 铃声。 | 535## StreamUsage 536 537枚举,音频流使用类型。 538 539**系统能力:** SystemCapability.Multimedia.Audio.Core 540 541| 名称 | 值 | 说明 | 542| ------------------------------------------| ------ | ---------- | 543| STREAM_USAGE_UNKNOWN | 0 | 未知类型。 | 544| STREAM_USAGE_MEDIA | 1 | 媒体。 | 545| STREAM_USAGE_MUSIC<sup>10+</sup> | 1 | 音乐。 | 546| STREAM_USAGE_VOICE_COMMUNICATION | 2 | 语音通信。 | 547| STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3 | 语音播报。 | 548| STREAM_USAGE_ALARM<sup>10+</sup> | 4 | 闹钟。 | 549| STREAM_USAGE_VOICE_MESSAGE<sup>10+</sup> | 5 | 语音消息。 | 550| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | 通知铃声。 | 551| STREAM_USAGE_RINGTONE<sup>10+</sup> | 6 | 铃声。 | 552| STREAM_USAGE_NOTIFICATION<sup>10+</sup> | 7 | 通知。 | 553| STREAM_USAGE_ACCESSIBILITY<sup>10+</sup> | 8 | 无障碍。 | 554| STREAM_USAGE_SYSTEM<sup>10+</sup> | 9 | 系统音(如屏幕锁定或按键音)。<br/>此接口为系统接口。 | 555| STREAM_USAGE_MOVIE<sup>10+</sup> | 10 | 电影或视频。| 556| STREAM_USAGE_GAME<sup>10+</sup> | 11 | 游戏音效。 | 557| STREAM_USAGE_AUDIOBOOK<sup>10+</sup> | 12 | 有声读物。 | 558| STREAM_USAGE_NAVIGATION<sup>10+</sup> | 13 | 导航。 | 559| STREAM_USAGE_DTMF<sup>10+</sup> | 14 | 拨号音。<br/>此接口为系统接口。 | 560| STREAM_USAGE_ENFORCED_TONE<sup>10+</sup> | 15 | 强制音(如相机快门音)。<br/>此接口为系统接口。 | 561| STREAM_USAGE_ULTRASONIC<sup>10+</sup> | 16 | 超声波。<br/>此接口为系统接口。 | 562 563 564## InterruptRequestType<sup>9+</sup> 565 566枚举,音频中断请求类型。 567 568**系统接口:** 该接口为系统接口 569 570**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 571 572| 名称 | 值 | 说明 | 573| ---------------------------------- | ------ | ------------------------- | 574| INTERRUPT_REQUEST_TYPE_DEFAULT | 0 | 默认类型,可中断音频请求。 | 575 576## AudioState<sup>8+</sup> 577 578枚举,音频状态。 579 580**系统能力:** SystemCapability.Multimedia.Audio.Core 581 582| 名称 | 值 | 说明 | 583| -------------- | ------ | ---------------- | 584| STATE_INVALID | -1 | 无效状态。 | 585| STATE_NEW | 0 | 创建新实例状态。 | 586| STATE_PREPARED | 1 | 准备状态。 | 587| STATE_RUNNING | 2 | 可运行状态。 | 588| STATE_STOPPED | 3 | 停止状态。 | 589| STATE_RELEASED | 4 | 释放状态。 | 590| STATE_PAUSED | 5 | 暂停状态。 | 591 592## AudioEffectMode<sup>10+</sup> 593 594枚举,音效模式。 595 596**系统能力:** SystemCapability.Multimedia.Audio.Renderer 597 598| 名称 | 值 | 说明 | 599| ------------------ | ------ | ---------- | 600| EFFECT_NONE | 0 | 关闭音效。 | 601| EFFECT_DEFAULT | 1 | 默认音效。 | 602 603## AudioRendererRate<sup>8+</sup> 604 605枚举,音频渲染速度。 606 607**系统能力:** SystemCapability.Multimedia.Audio.Renderer 608 609| 名称 | 值 | 说明 | 610| ------------------ | ------ | ---------- | 611| RENDER_RATE_NORMAL | 0 | 正常速度。 | 612| RENDER_RATE_DOUBLE | 1 | 2倍速。 | 613| RENDER_RATE_HALF | 2 | 0.5倍数。 | 614 615## InterruptType 616 617枚举,中断类型。 618 619**系统能力:** SystemCapability.Multimedia.Audio.Renderer 620 621| 名称 | 值 | 说明 | 622| -------------------- | ------ | ---------------------- | 623| INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 | 624| INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 | 625 626## InterruptForceType<sup>9+</sup> 627 628枚举,强制打断类型。 629 630**系统能力:** SystemCapability.Multimedia.Audio.Renderer 631 632| 名称 | 值 | 说明 | 633| --------------- | ------ | ------------------------------------ | 634| INTERRUPT_FORCE | 0 | 由系统进行操作,强制打断音频播放。 | 635| INTERRUPT_SHARE | 1 | 由应用进行操作,可以选择打断或忽略。 | 636 637## InterruptHint 638 639枚举,中断提示。 640 641**系统能力:** SystemCapability.Multimedia.Audio.Renderer 642 643| 名称 | 值 | 说明 | 644| ---------------------------------- | ------ | -------------------------------------------- | 645| INTERRUPT_HINT_NONE<sup>8+</sup> | 0 | 无提示。 | 646| INTERRUPT_HINT_RESUME | 1 | 提示音频恢复。 | 647| INTERRUPT_HINT_PAUSE | 2 | 提示音频暂停。 | 648| INTERRUPT_HINT_STOP | 3 | 提示音频停止。 | 649| INTERRUPT_HINT_DUCK | 4 | 提示音频躲避。(躲避:音量减弱,而不会停止) | 650| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5 | 提示音量恢复。 | 651 652## AudioStreamInfo<sup>8+</sup> 653 654音频流信息。 655 656**系统能力:** SystemCapability.Multimedia.Audio.Core 657 658| 名称 | 类型 | 必填 | 说明 | 659| ------------ | ------------------------------------------------- | ---- | ------------------ | 660| samplingRate | [AudioSamplingRate](#audiosamplingrate8) | 是 | 音频文件的采样率。 | 661| channels | [AudioChannel](#audiochannel8) | 是 | 音频文件的通道数。 | 662| sampleFormat | [AudioSampleFormat](#audiosampleformat8) | 是 | 音频采样格式。 | 663| encodingType | [AudioEncodingType](#audioencodingtype8) | 是 | 音频编码格式。 | 664 665## AudioRendererInfo<sup>8+</sup> 666 667音频渲染器信息。 668 669**系统能力:** SystemCapability.Multimedia.Audio.Core 670 671| 名称 | 类型 | 必填 | 说明 | 672| ------------- | --------------------------- | ---- | ---------------- | 673| content | [ContentType](#contenttype) | 否 | 媒体类型。<br>API version 8、9为必填参数,从API version 10开始,变更为可选参数。 | 674| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 675| rendererFlags | number | 是 | 音频渲染器标志。<br>0代表普通音频渲染器,1代表低时延音频渲染器。js接口暂不支持低时延音频渲染器。 | 676 677## InterruptResult<sup>9+</sup> 678 679音频中断结果。 680 681**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 682 683**系统接口:** 该接口为系统接口 684 685| 名称 | 类型 | 必填 | 说明 | 686| --------------| -------------------------------------------------------------- | ---- | ---------------- | 687| requestResult | [InterruptRequestResultType](#interruptrequestresulttype9) | 是 | 表示音频请求中断类型。 | 688| interruptNode | number | 是 | 音频请求中断的节点。 | 689 690## AudioRendererOptions<sup>8+</sup> 691 692音频渲染器选项信息。 693 694| 名称 | 类型 | 必填 | 说明 | 695| ------------ | ---------------------------------------- | ---- | ---------------- | 696| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 表示音频流信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer | 697| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer | 698| privacyType<sup>10+</sup> | [AudioPrivacyType](#audioprivacytype) | 否 | 表示音频流是否可以被其他应用录制,默认值为0。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture | 699 700## AudioPrivacyType<sup>10+</sup><a name="audioprivacytype"></a> 701 702枚举类型,用于标识对应播放音频流是否支持被其他应用录制。 703 704**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 705 706| 名称 | 值 | 说明 | 707| -------------------- | ---- | -------------------------------- | 708| PRIVACY_TYPE_PUBLIC | 0 | 表示音频流可以被其他应用录制。 | 709| PRIVACY_TYPE_PRIVATE | 1 | 表示音频流不可以被其他应用录制。 | 710 711## InterruptEvent<sup>9+</sup> 712 713播放中断时,应用接收的中断事件。 714 715**系统能力:** SystemCapability.Multimedia.Audio.Renderer 716 717| 名称 | 类型 |必填 | 说明 | 718| --------- | ------------------------------------------ | ---- | ------------------------------------ | 719| eventType | [InterruptType](#interrupttype) | 是 | 中断事件类型,开始或是结束。 | 720| forceType | [InterruptForceType](#interruptforcetype9) | 是 | 操作是由系统执行或是由应用程序执行。 | 721| hintType | [InterruptHint](#interrupthint) | 是 | 中断提示。 | 722 723## VolumeEvent<sup>9+</sup> 724 725音量改变时,应用接收的事件。 726 727**系统能力:** SystemCapability.Multimedia.Audio.Volume 728 729| 名称 | 类型 | 必填 | 说明 | 730| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 731| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 732| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 733| updateUi | boolean | 是 | 在UI中显示音量变化。 | 734| volumeGroupId | number | 是 | 音量组id。可用于getGroupManager入参。<br/>此接口为系统接口。 | 735| networkId | string | 是 | 网络id。<br/>此接口为系统接口。 | 736 737## MicStateChangeEvent<sup>9+</sup> 738 739麦克风状态变化时,应用接收的事件。 740 741**系统能力:** SystemCapability.Multimedia.Audio.Device 742 743| 名称 | 类型 | 必填 | 说明 | 744| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- | 745| mute | boolean | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 | 746 747## ConnectType<sup>9+</sup> 748 749枚举,设备连接类型。 750 751**系统接口:** 该接口为系统接口 752 753**系统能力:** SystemCapability.Multimedia.Audio.Volume 754 755| 名称 | 值 | 说明 | 756| :------------------------------ | :----- | :--------------------- | 757| CONNECT_TYPE_LOCAL | 1 | 本地设备。 | 758| CONNECT_TYPE_DISTRIBUTED | 2 | 分布式设备。 | 759 760## VolumeGroupInfos<sup>9+</sup> 761 762音量组信息,数组类型,为[VolumeGroupInfo](#volumegroupinfo9)的数组,只读。 763 764**系统接口:** 该接口为系统接口 765 766**系统能力:** SystemCapability.Multimedia.Audio.Volume 767 768## VolumeGroupInfo<sup>9+</sup> 769 770音量组信息。 771 772**系统接口:** 该接口为系统接口 773 774**系统能力:** SystemCapability.Multimedia.Audio.Volume 775 776| 名称 | 类型 | 可读 | 可写 | 说明 | 777| -------------------------- | -------------------------- | ---- | ---- | ---------- | 778| networkId<sup>9+</sup> | string | 是 | 否 | 组网络id。 | 779| groupId<sup>9+</sup> | number | 是 | 否 | 组设备组id。 | 780| mappingId<sup>9+</sup> | number | 是 | 否 | 组映射id。 | 781| groupName<sup>9+</sup> | string | 是 | 否 | 组名。 | 782| type<sup>9+</sup> | [ConnectType](#connecttype9)| 是 | 否 | 连接设备类型。 | 783 784## DeviceChangeAction 785 786描述设备连接状态变化和设备信息。 787 788**系统能力:** SystemCapability.Multimedia.Audio.Device 789 790| 名称 | 类型 | 必填 | 说明 | 791| :---------------- | :------------------------------------------------ | :--- | :----------------- | 792| type | [DeviceChangeType](#devicechangetype) | 是 | 设备连接状态变化。 | 793| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 设备信息。 | 794 795## DeviceChangeType 796 797枚举,设备连接状态变化。 798 799**系统能力:** SystemCapability.Multimedia.Audio.Device 800 801| 名称 | 值 | 说明 | 802| :--------- | :--- | :------------- | 803| CONNECT | 0 | 设备连接。 | 804| DISCONNECT | 1 | 断开设备连接。 | 805 806## AudioCapturerOptions<sup>8+</sup> 807 808音频采集器选项信息。 809 810| 名称 | 类型 | 必填 | 说明 | 811| ----------------------------------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 812| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 表示音频流信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer | 813| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo) | 是 | 表示采集器信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer | 814| playbackCaptureConfig<sup>10+</sup> | [AudioPlaybackCaptureConfig](#audioplaybackcaptureconfig) | 否 | 音频内录的配置信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture | 815 816## AudioCapturerInfo<sup>8+</sup><a name="audiocapturerinfo"></a> 817 818描述音频采集器信息。 819 820**系统能力:** SystemCapability.Multimedia.Audio.Core 821 822| 名称 | 类型 | 必填 | 说明 | 823| :------------ | :------------------------ | :--- | :--------------- | 824| source | [SourceType](#sourcetype) | 是 | 音源类型。 | 825| capturerFlags | number | 是 | 音频采集器标志。 | 826 827## SourceType<sup>8+</sup><a name="sourcetype"></a> 828 829枚举,音源类型。 830 831| 名称 | 值 | 说明 | 832| :------------------------------------------- | :----- | :--------------------- | 833| SOURCE_TYPE_INVALID | -1 | 无效的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 834| SOURCE_TYPE_MIC | 0 | Mic音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 835| SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup> | 1 | 语音识别源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 836| SOURCE_TYPE_PLAYBACK_CAPTURE<sup>10+</sup> | 2 | 播放音频流(内录)录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture | 837| SOURCE_TYPE_WAKEUP <sup>10+</sup> | 3 | 语音唤醒音频流录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core <br/>**需要权限:** ohos.permission.MANAGE_INTELLIGENT_VOICE <br/> 此接口为系统接口| 838| SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 语音通话场景的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 839 840## AudioPlaybackCaptureConfig<sup>10+</sup><a name="audioplaybackcaptureconfig"></a> 841 842播放音频流录制(内录)的配置信息。 843 844**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 845 846| 名称 | 类型 | 必填 | 说明 | 847| ------------- | --------------------------------------------- | ---- | -------------------------------- | 848| filterOptions | [CaptureFilterOptions](#capturefilteroptions) | 是 | 需要录制的播放音频流的筛选信息。 | 849 850## CaptureFilterOptions<sup>10+</sup><a name="capturefilteroptions"></a> 851 852待录制的播放音频流的筛选信息。 853 854**需要权限:** ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO 855 856当应用指定录制的StreamUsage值中包含SOURCE_TYPE_VOICE_COMMUNICATION的播放音频流时,需要校验应用是否拥有该权限。 857 858**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 859 860| 名称 | 类型 | 必填 | 说明 | 861| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ | 862| usages | Array<[StreamUsage](#streamusage)> | 是 | 指定需要录制的播放音频流的[StreamUsage](#streamusage)类型。可同时指定0个或多个StreamUsage。Array为空时,默认录制StreamUsage为STREAM_USAGE_MEDIA的播放音频流。 | 863 864## AudioScene<sup>8+</sup><a name="audioscene"></a> 865 866枚举,音频场景。 867 868**系统能力:** SystemCapability.Multimedia.Audio.Communication 869 870| 名称 | 值 | 说明 | 871| :--------------------- | :----- | :-------------------------------------------- | 872| AUDIO_SCENE_DEFAULT | 0 | 默认音频场景。 | 873| AUDIO_SCENE_RINGING | 1 | 响铃模式。<br/>此接口为系统接口。 | 874| AUDIO_SCENE_PHONE_CALL | 2 | 电话模式。<br/>此接口为系统接口。 | 875| AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 | 876 877## VolumeAdjustType<sup>10+</sup> 878 879枚举,音量调节类型。 880 881**系统能力:** SystemCapability.Multimedia.Audio.Volume 882 883| 名称 | 值 | 说明 | 884| :--------------------- | :----- | :-------------------------------------------- | 885| VOLUME_UP | 0 | 向上调节音量。<br/>此接口为系统接口。 | 886| VOLUME_DOWN | 1 | 向下调节音量。<br/>此接口为系统接口。 | 887 888## AudioManager 889 890管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。 891 892### setAudioParameter 893 894setAudioParameter(key: string, value: string, callback: AsyncCallback<void>): void 895 896音频参数设置,使用callback方式异步返回结果。 897 898本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 899 900**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS 901 902**系统能力:** SystemCapability.Multimedia.Audio.Core 903 904**参数:** 905 906| 参数名 | 类型 | 必填 | 说明 | 907| -------- | ------------------------- | ---- | ------------------------ | 908| key | string | 是 | 被设置的音频参数的键。 | 909| value | string | 是 | 被设置的音频参数的值。 | 910| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 911 912**示例:** 913 914```ts 915import { BusinessError } from '@ohos.base'; 916audioManager.setAudioParameter('key_example', 'value_example', (err: BusinessError) => { 917 if (err) { 918 console.error(`Failed to set the audio parameter. ${err}`); 919 return; 920 } 921 console.info('Callback invoked to indicate a successful setting of the audio parameter.'); 922}); 923``` 924 925### setAudioParameter 926 927setAudioParameter(key: string, value: string): Promise<void> 928 929音频参数设置,使用Promise方式异步返回结果。 930 931本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 932 933**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS 934 935**系统能力:** SystemCapability.Multimedia.Audio.Core 936 937**参数:** 938 939| 参数名 | 类型 | 必填 | 说明 | 940| ------ | ------ | ---- | ---------------------- | 941| key | string | 是 | 被设置的音频参数的键。 | 942| value | string | 是 | 被设置的音频参数的值。 | 943 944**返回值:** 945 946| 类型 | 说明 | 947| ------------------- | ------------------------------- | 948| Promise<void> | Promise回调返回设置成功或失败。 | 949 950**示例:** 951 952```ts 953audioManager.setAudioParameter('key_example', 'value_example').then(() => { 954 console.info('Promise returned to indicate a successful setting of the audio parameter.'); 955}); 956``` 957 958### getAudioParameter 959 960getAudioParameter(key: string, callback: AsyncCallback<string>): void 961 962获取指定音频参数值,使用callback方式异步返回结果。 963 964本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 965 966**系统能力:** SystemCapability.Multimedia.Audio.Core 967 968**参数:** 969 970| 参数名 | 类型 | 必填 | 说明 | 971| -------- | --------------------------- | ---- | ---------------------------- | 972| key | string | 是 | 待获取的音频参数的键。 | 973| callback | AsyncCallback<string> | 是 | 回调返回获取的音频参数的值。 | 974 975**示例:** 976 977```ts 978import { BusinessError } from '@ohos.base'; 979audioManager.getAudioParameter('key_example', (err: BusinessError, value: string) => { 980 if (err) { 981 console.error(`Failed to obtain the value of the audio parameter. ${err}`); 982 return; 983 } 984 console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`); 985}); 986``` 987 988### getAudioParameter 989 990getAudioParameter(key: string): Promise<string> 991 992获取指定音频参数值,使用Promise方式异步返回结果。 993 994本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 995 996**系统能力:** SystemCapability.Multimedia.Audio.Core 997 998**参数:** 999 1000| 参数名 | 类型 | 必填 | 说明 | 1001| ------ | ------ | ---- | ---------------------- | 1002| key | string | 是 | 待获取的音频参数的键。 | 1003 1004**返回值:** 1005 1006| 类型 | 说明 | 1007| --------------------- | ----------------------------------- | 1008| Promise<string> | Promise回调返回获取的音频参数的值。 | 1009 1010**示例:** 1011 1012```ts 1013audioManager.getAudioParameter('key_example').then((value: string) => { 1014 console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`); 1015}); 1016``` 1017 1018### setAudioScene<sup>8+</sup> 1019 1020setAudioScene\(scene: AudioScene, callback: AsyncCallback<void\>\): void 1021 1022设置音频场景模式,使用callback方式异步返回结果。 1023 1024**系统接口:** 该接口为系统接口 1025 1026**系统能力:** SystemCapability.Multimedia.Audio.Communication 1027 1028**参数:** 1029 1030| 参数名 | 类型 | 必填 | 说明 | 1031| :------- | :----------------------------------- | :--- | :------------------- | 1032| scene | <a href="#audioscene">AudioScene</a> | 是 | 音频场景模式。 | 1033| callback | AsyncCallback<void\> | 是 | 用于返回结果的回调。 | 1034 1035**示例:** 1036 1037```ts 1038import { BusinessError } from '@ohos.base'; 1039audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL, (err: BusinessError) => { 1040 if (err) { 1041 console.error(`Failed to set the audio scene mode. ${err}`); 1042 return; 1043 } 1044 console.info('Callback invoked to indicate a successful setting of the audio scene mode.'); 1045}); 1046``` 1047 1048### setAudioScene<sup>8+</sup> 1049 1050setAudioScene\(scene: AudioScene\): Promise<void\> 1051 1052设置音频场景模式,使用Promise方式返回异步结果。 1053 1054**系统接口:** 该接口为系统接口 1055 1056**系统能力:** SystemCapability.Multimedia.Audio.Communication 1057 1058**参数:** 1059 1060| 参数名 | 类型 | 必填 | 说明 | 1061| :----- | :----------------------------------- | :--- | :------------- | 1062| scene | <a href="#audioscene">AudioScene</a> | 是 | 音频场景模式。 | 1063 1064**返回值:** 1065 1066| 类型 | 说明 | 1067| :------------- | :------------------- | 1068| Promise<void\> | 用于返回结果的回调。 | 1069 1070**示例:** 1071 1072```ts 1073import { BusinessError } from '@ohos.base'; 1074audioManager.setAudioScene(audio.AudioScene.AUDIO_SCENE_PHONE_CALL).then(() => { 1075 console.info('Promise returned to indicate a successful setting of the audio scene mode.'); 1076}).catch ((err: BusinessError) => { 1077 console.error(`Failed to set the audio scene mode ${err}`); 1078}); 1079``` 1080 1081### getAudioScene<sup>8+</sup> 1082 1083getAudioScene\(callback: AsyncCallback<AudioScene\>\): void 1084 1085获取音频场景模式,使用callback方式返回异步结果。 1086 1087**系统能力:** SystemCapability.Multimedia.Audio.Communication 1088 1089**参数:** 1090 1091| 参数名 | 类型 | 必填 | 说明 | 1092| :------- | :-------------------------------------------------- | :--- | :--------------------------- | 1093| callback | AsyncCallback<<a href="#audioscene">AudioScene</a>> | 是 | 用于返回音频场景模式的回调。 | 1094 1095**示例:** 1096 1097```ts 1098import { BusinessError } from '@ohos.base'; 1099audioManager.getAudioScene((err: BusinessError, value: audio.AudioScene) => { 1100 if (err) { 1101 console.error(`Failed to obtain the audio scene mode. ${err}`); 1102 return; 1103 } 1104 console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`); 1105}); 1106``` 1107 1108### getAudioScene<sup>8+</sup> 1109 1110getAudioScene\(\): Promise<AudioScene\> 1111 1112获取音频场景模式,使用Promise方式返回异步结果。 1113 1114**系统能力:** SystemCapability.Multimedia.Audio.Communication 1115 1116**返回值:** 1117 1118| 类型 | 说明 | 1119| :-------------------------------------------- | :--------------------------- | 1120| Promise<<a href="#audioscene">AudioScene</a>> | 用于返回音频场景模式的回调。 | 1121 1122**示例:** 1123 1124```ts 1125import { BusinessError } from '@ohos.base'; 1126audioManager.getAudioScene().then((value: audio.AudioScene) => { 1127 console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`); 1128}).catch ((err: BusinessError) => { 1129 console.error(`Failed to obtain the audio scene mode ${err}`); 1130}); 1131``` 1132 1133### getAudioSceneSync<sup>10+</sup> 1134 1135getAudioSceneSync\(\): AudioScene 1136 1137获取音频场景模式,同步返回结果。 1138 1139**系统能力:** SystemCapability.Multimedia.Audio.Communication 1140 1141**返回值:** 1142 1143| 类型 | 说明 | 1144| :-------------------------------------------- | :--------------------------- | 1145| <a href="#audioscene">AudioScene</a> | 返回音频场景模式。 | 1146 1147**示例:** 1148 1149```ts 1150import { BusinessError } from '@ohos.base'; 1151 1152try { 1153 let value: audio.AudioScene = audioManager.getAudioSceneSync(); 1154 console.info(`indicate that the audio scene mode is obtained ${value}.`); 1155} catch (err) { 1156 let error = err as BusinessError; 1157 console.error(`Failed to obtain the audio scene mode ${error}`); 1158} 1159``` 1160 1161### getVolumeManager<sup>9+</sup> 1162 1163getVolumeManager(): AudioVolumeManager 1164 1165获取音频音量管理器。 1166 1167**系统能力:** SystemCapability.Multimedia.Audio.Volume 1168 1169**示例:** 1170 1171```ts 1172import audio from '@ohos.multimedia.audio'; 1173let audioVolumeManager: audio.AudioVolumeManager = audioManager.getVolumeManager(); 1174``` 1175 1176### getStreamManager<sup>9+</sup> 1177 1178getStreamManager(): AudioStreamManager 1179 1180获取音频流管理器。 1181 1182**系统能力:** SystemCapability.Multimedia.Audio.Core 1183 1184**示例:** 1185 1186```ts 1187import audio from '@ohos.multimedia.audio'; 1188let audioStreamManager: audio.AudioStreamManager = audioManager.getStreamManager(); 1189``` 1190 1191### getRoutingManager<sup>9+</sup> 1192 1193getRoutingManager(): AudioRoutingManager 1194 1195获取音频路由设备管理器。 1196 1197**系统能力:** SystemCapability.Multimedia.Audio.Device 1198 1199**示例:** 1200 1201```ts 1202import audio from '@ohos.multimedia.audio'; 1203let audioRoutingManager: audio.AudioRoutingManager = audioManager.getRoutingManager(); 1204``` 1205 1206### setVolume<sup>(deprecated)</sup> 1207 1208setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void 1209 1210设置指定流的音量,使用callback方式异步返回结果。 1211 1212> **说明:** 1213> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。 1214 1215**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1216 1217仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 1218 1219**系统能力:** SystemCapability.Multimedia.Audio.Volume 1220 1221**参数:** 1222 1223| 参数名 | 类型 | 必填 | 说明 | 1224| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 1225| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1226| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 1227| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 1228 1229**示例:** 1230 1231```ts 1232import { BusinessError } from '@ohos.base'; 1233audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => { 1234 if (err) { 1235 console.error(`Failed to set the volume. ${err}`); 1236 return; 1237 } 1238 console.info('Callback invoked to indicate a successful volume setting.'); 1239}); 1240``` 1241 1242### setVolume<sup>(deprecated)</sup> 1243 1244setVolume(volumeType: AudioVolumeType, volume: number): Promise<void> 1245 1246设置指定流的音量,使用Promise方式异步返回结果。 1247 1248> **说明:** 1249> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。 1250 1251**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1252 1253仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 1254 1255**系统能力:** SystemCapability.Multimedia.Audio.Volume 1256 1257**参数:** 1258 1259| 参数名 | 类型 | 必填 | 说明 | 1260| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 1261| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1262| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 1263 1264**返回值:** 1265 1266| 类型 | 说明 | 1267| ------------------- | ----------------------------- | 1268| Promise<void> | Promise回调表示成功还是失败。 | 1269 1270**示例:** 1271 1272```ts 1273audioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => { 1274 console.info('Promise returned to indicate a successful volume setting.'); 1275}); 1276``` 1277 1278### getVolume<sup>(deprecated)</sup> 1279 1280getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1281 1282获取指定流的音量,使用callback方式异步返回结果。 1283 1284> **说明:** 1285> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。 1286 1287**系统能力:** SystemCapability.Multimedia.Audio.Volume 1288 1289**参数:** 1290 1291| 参数名 | 类型 | 必填 | 说明 | 1292| ---------- | ----------------------------------- | ---- | ------------------ | 1293| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1294| callback | AsyncCallback<number> | 是 | 回调返回音量大小。 | 1295 1296**示例:** 1297 1298```ts 1299import { BusinessError } from '@ohos.base'; 1300audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1301 if (err) { 1302 console.error(`Failed to obtain the volume. ${err}`); 1303 return; 1304 } 1305 console.info('Callback invoked to indicate that the volume is obtained.'); 1306}); 1307``` 1308 1309### getVolume<sup>(deprecated)</sup> 1310 1311getVolume(volumeType: AudioVolumeType): Promise<number> 1312 1313获取指定流的音量,使用Promise方式异步返回结果。 1314 1315> **说明:** 1316> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。 1317 1318**系统能力:** SystemCapability.Multimedia.Audio.Volume 1319 1320**参数:** 1321 1322| 参数名 | 类型 | 必填 | 说明 | 1323| ---------- | ----------------------------------- | ---- | ------------ | 1324| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1325 1326**返回值:** 1327 1328| 类型 | 说明 | 1329| --------------------- | ------------------------- | 1330| Promise<number> | Promise回调返回音量大小。 | 1331 1332**示例:** 1333 1334```ts 1335audioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 1336 console.info(`Promise returned to indicate that the volume is obtained ${value} .`); 1337}); 1338``` 1339 1340### getMinVolume<sup>(deprecated)</sup> 1341 1342getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1343 1344获取指定流的最小音量,使用callback方式异步返回结果。 1345 1346> **说明:** 1347> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。 1348 1349**系统能力:** SystemCapability.Multimedia.Audio.Volume 1350 1351**参数:** 1352 1353| 参数名 | 类型 | 必填 | 说明 | 1354| ---------- | ----------------------------------- | ---- | ------------------ | 1355| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1356| callback | AsyncCallback<number> | 是 | 回调返回最小音量。 | 1357 1358**示例:** 1359 1360```ts 1361import { BusinessError } from '@ohos.base'; 1362audioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1363 if (err) { 1364 console.error(`Failed to obtain the minimum volume. ${err}`); 1365 return; 1366 } 1367 console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`); 1368}); 1369``` 1370 1371### getMinVolume<sup>(deprecated)</sup> 1372 1373getMinVolume(volumeType: AudioVolumeType): Promise<number> 1374 1375获取指定流的最小音量,使用Promise方式异步返回结果。 1376 1377> **说明:** 1378> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。 1379 1380**系统能力:** SystemCapability.Multimedia.Audio.Volume 1381 1382**参数:** 1383 1384| 参数名 | 类型 | 必填 | 说明 | 1385| ---------- | ----------------------------------- | ---- | ------------ | 1386| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1387 1388**返回值:** 1389 1390| 类型 | 说明 | 1391| --------------------- | ------------------------- | 1392| Promise<number> | Promise回调返回最小音量。 | 1393 1394**示例:** 1395 1396```ts 1397audioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 1398 console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`); 1399}); 1400``` 1401 1402### getMaxVolume<sup>(deprecated)</sup> 1403 1404getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1405 1406获取指定流的最大音量,使用callback方式异步返回结果。 1407 1408> **说明:** 1409> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。 1410 1411**系统能力:** SystemCapability.Multimedia.Audio.Volume 1412 1413**参数:** 1414 1415| 参数名 | 类型 | 必填 | 说明 | 1416| ---------- | ----------------------------------- | ---- | ---------------------- | 1417| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1418| callback | AsyncCallback<number> | 是 | 回调返回最大音量大小。 | 1419 1420**示例:** 1421 1422```ts 1423import { BusinessError } from '@ohos.base'; 1424audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1425 if (err) { 1426 console.error(`Failed to obtain the maximum volume. ${err}`); 1427 return; 1428 } 1429 console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`); 1430}); 1431``` 1432 1433### getMaxVolume<sup>(deprecated)</sup> 1434 1435getMaxVolume(volumeType: AudioVolumeType): Promise<number> 1436 1437获取指定流的最大音量,使用Promise方式异步返回结果。 1438 1439> **说明:** 1440> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。 1441 1442**系统能力:** SystemCapability.Multimedia.Audio.Volume 1443 1444**参数:** 1445 1446| 参数名 | 类型 | 必填 | 说明 | 1447| ---------- | ----------------------------------- | ---- | ------------ | 1448| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1449 1450**返回值:** 1451 1452| 类型 | 说明 | 1453| --------------------- | ----------------------------- | 1454| Promise<number> | Promise回调返回最大音量大小。 | 1455 1456**示例:** 1457 1458```ts 1459audioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => { 1460 console.info('Promised returned to indicate that the maximum volume is obtained.'); 1461}); 1462``` 1463 1464### mute<sup>(deprecated)</sup> 1465 1466mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void 1467 1468设置指定音量流静音,使用callback方式异步返回结果。 1469 1470> **说明:** 1471> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。 1472 1473**系统能力:** SystemCapability.Multimedia.Audio.Volume 1474 1475**参数:** 1476 1477| 参数名 | 类型 | 必填 | 说明 | 1478| ---------- | ----------------------------------- | ---- | ------------------------------------- | 1479| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1480| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 1481| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 1482 1483**示例:** 1484 1485```ts 1486import { BusinessError } from '@ohos.base'; 1487audioManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => { 1488 if (err) { 1489 console.error(`Failed to mute the stream. ${err}`); 1490 return; 1491 } 1492 console.info('Callback invoked to indicate that the stream is muted.'); 1493}); 1494``` 1495 1496### mute<sup>(deprecated)</sup> 1497 1498mute(volumeType: AudioVolumeType, mute: boolean): Promise<void> 1499 1500设置指定音量流静音,使用Promise方式异步返回结果。 1501 1502> **说明:** 1503> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[mute](#mute9)替代,替代接口能力仅对系统应用开放。 1504 1505**系统能力:** SystemCapability.Multimedia.Audio.Volume 1506 1507**参数:** 1508 1509| 参数名 | 类型 | 必填 | 说明 | 1510| ---------- | ----------------------------------- | ---- | ------------------------------------- | 1511| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1512| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 1513 1514**返回值:** 1515 1516| 类型 | 说明 | 1517| ------------------- | ----------------------------- | 1518| Promise<void> | Promise回调表示成功还是失败。 | 1519 1520**示例:** 1521 1522 1523```ts 1524audioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => { 1525 console.info('Promise returned to indicate that the stream is muted.'); 1526}); 1527``` 1528 1529### isMute<sup>(deprecated)</sup> 1530 1531isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 1532 1533获取指定音量流是否被静音,使用callback方式异步返回结果。 1534 1535> **说明:** 1536> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。 1537 1538**系统能力:** SystemCapability.Multimedia.Audio.Volume 1539 1540**参数:** 1541 1542| 参数名 | 类型 | 必填 | 说明 | 1543| ---------- | ----------------------------------- | ---- | ----------------------------------------------- | 1544| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1545| callback | AsyncCallback<boolean> | 是 | 回调返回流静音状态,true为静音,false为非静音。 | 1546 1547**示例:** 1548 1549```ts 1550import { BusinessError } from '@ohos.base'; 1551audioManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 1552 if (err) { 1553 console.error(`Failed to obtain the mute status. ${err}`); 1554 return; 1555 } 1556 console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`); 1557}); 1558``` 1559 1560### isMute<sup>(deprecated)</sup> 1561 1562isMute(volumeType: AudioVolumeType): Promise<boolean> 1563 1564获取指定音量流是否被静音,使用Promise方式异步返回结果。 1565 1566> **说明:** 1567> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。 1568 1569**系统能力:** SystemCapability.Multimedia.Audio.Volume 1570 1571**参数:** 1572 1573| 参数名 | 类型 | 必填 | 说明 | 1574| ---------- | ----------------------------------- | ---- | ------------ | 1575| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1576 1577**返回值:** 1578 1579| 类型 | 说明 | 1580| ---------------------- | ------------------------------------------------------ | 1581| Promise<boolean> | Promise回调返回流静音状态,true为静音,false为非静音。 | 1582 1583**示例:** 1584 1585```ts 1586audioManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 1587 console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`); 1588}); 1589``` 1590 1591### isActive<sup>(deprecated)</sup> 1592 1593isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 1594 1595获取指定音量流是否为活跃状态,使用callback方式异步返回结果。 1596 1597> **说明:** 1598> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。 1599 1600**系统能力:** SystemCapability.Multimedia.Audio.Volume 1601 1602**参数:** 1603 1604| 参数名 | 类型 | 必填 | 说明 | 1605| ---------- | ----------------------------------- | ---- | ------------------------------------------------- | 1606| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1607| callback | AsyncCallback<boolean> | 是 | 回调返回流的活跃状态,true为活跃,false为不活跃。 | 1608 1609**示例:** 1610 1611```ts 1612import { BusinessError } from '@ohos.base'; 1613audioManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 1614 if (err) { 1615 console.error(`Failed to obtain the active status of the stream. ${err}`); 1616 return; 1617 } 1618 console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`); 1619}); 1620``` 1621 1622### isActive<sup>(deprecated)</sup> 1623 1624isActive(volumeType: AudioVolumeType): Promise<boolean> 1625 1626获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。 1627 1628> **说明:** 1629> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。 1630 1631**系统能力:** SystemCapability.Multimedia.Audio.Volume 1632 1633**参数:** 1634 1635| 参数名 | 类型 | 必填 | 说明 | 1636| ---------- | ----------------------------------- | ---- | ------------ | 1637| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1638 1639**返回值:** 1640 1641| 类型 | 说明 | 1642| ---------------------- | -------------------------------------------------------- | 1643| Promise<boolean> | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 | 1644 1645**示例:** 1646 1647```ts 1648audioManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 1649 console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`); 1650}); 1651``` 1652 1653### setRingerMode<sup>(deprecated)</sup> 1654 1655setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void 1656 1657设置铃声模式,使用callback方式异步返回结果。 1658 1659> **说明:** 1660> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。 1661 1662**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1663 1664仅在静音和非静音状态切换时需要该权限。 1665 1666**系统能力:** SystemCapability.Multimedia.Audio.Communication 1667 1668**参数:** 1669 1670| 参数名 | 类型 | 必填 | 说明 | 1671| -------- | ------------------------------- | ---- | ------------------------ | 1672| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 1673| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 1674 1675**示例:** 1676 1677```ts 1678import { BusinessError } from '@ohos.base'; 1679audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => { 1680 if (err) { 1681 console.error(`Failed to set the ringer mode. ${err}`); 1682 return; 1683 } 1684 console.info('Callback invoked to indicate a successful setting of the ringer mode.'); 1685}); 1686``` 1687 1688### setRingerMode<sup>(deprecated)</sup> 1689 1690setRingerMode(mode: AudioRingMode): Promise<void> 1691 1692设置铃声模式,使用Promise方式异步返回结果。 1693 1694> **说明:** 1695> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setRingerMode](#setringermode9)替代,替代接口能力仅对系统应用开放。 1696 1697 1698**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1699 1700仅在静音和非静音状态切换时需要该权限。 1701 1702**系统能力:** SystemCapability.Multimedia.Audio.Communication 1703 1704**参数:** 1705 1706| 参数名 | 类型 | 必填 | 说明 | 1707| ------ | ------------------------------- | ---- | -------------- | 1708| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 1709 1710**返回值:** 1711 1712| 类型 | 说明 | 1713| ------------------- | ------------------------------- | 1714| Promise<void> | Promise回调返回设置成功或失败。 | 1715 1716**示例:** 1717 1718```ts 1719audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => { 1720 console.info('Promise returned to indicate a successful setting of the ringer mode.'); 1721}); 1722``` 1723 1724### getRingerMode<sup>(deprecated)</sup> 1725 1726getRingerMode(callback: AsyncCallback<AudioRingMode>): void 1727 1728获取铃声模式,使用callback方式异步返回结果。 1729 1730> **说明:** 1731> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。 1732 1733**系统能力:** SystemCapability.Multimedia.Audio.Communication 1734 1735**参数:** 1736 1737| 参数名 | 类型 | 必填 | 说明 | 1738| -------- | ---------------------------------------------------- | ---- | ------------------------ | 1739| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | 是 | 回调返回系统的铃声模式。 | 1740 1741**示例:** 1742 1743```ts 1744import { BusinessError } from '@ohos.base'; 1745audioManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => { 1746 if (err) { 1747 console.error(`Failed to obtain the ringer mode. ${err}`); 1748 return; 1749 } 1750 console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`); 1751}); 1752``` 1753 1754### getRingerMode<sup>(deprecated)</sup> 1755 1756getRingerMode(): Promise<AudioRingMode> 1757 1758获取铃声模式,使用Promise方式异步返回结果。 1759 1760> **说明:** 1761> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。 1762 1763**系统能力:** SystemCapability.Multimedia.Audio.Communication 1764 1765**返回值:** 1766 1767| 类型 | 说明 | 1768| ---------------------------------------------- | ------------------------------- | 1769| Promise<[AudioRingMode](#audioringmode)> | Promise回调返回系统的铃声模式。 | 1770 1771**示例:** 1772 1773```ts 1774audioManager.getRingerMode().then((value: audio.AudioRingMode) => { 1775 console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`); 1776}); 1777``` 1778 1779### getDevices<sup>(deprecated)</sup> 1780 1781getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void 1782 1783获取音频设备列表,使用callback方式异步返回结果。 1784 1785> **说明:** 1786> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。 1787 1788**系统能力:** SystemCapability.Multimedia.Audio.Device 1789 1790**参数:** 1791 1792| 参数名 | 类型 | 必填 | 说明 | 1793| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 1794| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 1795| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调,返回设备列表。 | 1796 1797**示例:** 1798```ts 1799import { BusinessError } from '@ohos.base'; 1800audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => { 1801 if (err) { 1802 console.error(`Failed to obtain the device list. ${err}`); 1803 return; 1804 } 1805 console.info('Callback invoked to indicate that the device list is obtained.'); 1806}); 1807``` 1808 1809### getDevices<sup>(deprecated)</sup> 1810 1811getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> 1812 1813获取音频设备列表,使用Promise方式异步返回结果。 1814 1815> **说明:** 1816> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。 1817 1818**系统能力:** SystemCapability.Multimedia.Audio.Device 1819 1820**参数:** 1821 1822| 参数名 | 类型 | 必填 | 说明 | 1823| ---------- | ------------------------- | ---- | ---------------- | 1824| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 1825 1826**返回值:** 1827 1828| 类型 | 说明 | 1829| ------------------------------------------------------------ | ------------------------- | 1830| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise回调返回设备列表。 | 1831 1832**示例:** 1833 1834```ts 1835audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => { 1836 console.info('Promise returned to indicate that the device list is obtained.'); 1837}); 1838``` 1839 1840### setDeviceActive<sup>(deprecated)</sup> 1841 1842setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void 1843 1844设置设备激活状态,使用callback方式异步返回结果。 1845 1846> **说明:** 1847> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。 1848 1849**系统能力:** SystemCapability.Multimedia.Audio.Device 1850 1851**参数:** 1852 1853| 参数名 | 类型 | 必填 | 说明 | 1854| ---------- | ------------------------------------- | ---- | ------------------------ | 1855| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1856| active | boolean | 是 | 设备激活状态。 | 1857| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 1858 1859**示例:** 1860 1861```ts 1862import { BusinessError } from '@ohos.base'; 1863audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err: BusinessError) => { 1864 if (err) { 1865 console.error(`Failed to set the active status of the device. ${err}`); 1866 return; 1867 } 1868 console.info('Callback invoked to indicate that the device is set to the active status.'); 1869}); 1870``` 1871 1872### setDeviceActive<sup>(deprecated)</sup> 1873 1874setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void> 1875 1876设置设备激活状态,使用Promise方式异步返回结果。 1877 1878> **说明:** 1879> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。 1880 1881**系统能力:** SystemCapability.Multimedia.Audio.Device 1882 1883**参数:** 1884 1885| 参数名 | 类型 | 必填 | 说明 | 1886| ---------- | ------------------------------------- | ---- | ------------------ | 1887| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1888| active | boolean | 是 | 设备激活状态。 | 1889 1890**返回值:** 1891 1892| 类型 | 说明 | 1893| ------------------- | ------------------------------- | 1894| Promise<void> | Promise回调返回设置成功或失败。 | 1895 1896**示例:** 1897 1898 1899```ts 1900audioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => { 1901 console.info('Promise returned to indicate that the device is set to the active status.'); 1902}); 1903``` 1904 1905### isDeviceActive<sup>(deprecated)</sup> 1906 1907isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void 1908 1909获取指定设备的激活状态,使用callback方式异步返回结果。 1910 1911> **说明:** 1912> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。 1913 1914**系统能力:** SystemCapability.Multimedia.Audio.Device 1915 1916**参数:** 1917 1918| 参数名 | 类型 | 必填 | 说明 | 1919| ---------- | ------------------------------------- | ---- | ------------------------ | 1920| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1921| callback | AsyncCallback<boolean> | 是 | 回调返回设备的激活状态。 | 1922 1923**示例:** 1924 1925```ts 1926import { BusinessError } from '@ohos.base'; 1927audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err: BusinessError, value: boolean) => { 1928 if (err) { 1929 console.error(`Failed to obtain the active status of the device. ${err}`); 1930 return; 1931 } 1932 console.info('Callback invoked to indicate that the active status of the device is obtained.'); 1933}); 1934``` 1935 1936### isDeviceActive<sup>(deprecated)</sup> 1937 1938isDeviceActive(deviceType: ActiveDeviceType): Promise<boolean> 1939 1940获取指定设备的激活状态,使用Promise方式异步返回结果。 1941 1942> **说明:** 1943> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。 1944 1945**系统能力:** SystemCapability.Multimedia.Audio.Device 1946 1947**参数:** 1948 1949| 参数名 | 类型 | 必填 | 说明 | 1950| ---------- | ------------------------------------- | ---- | ------------------ | 1951| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1952 1953**返回值:** 1954 1955| Type | Description | 1956| ---------------------- | ------------------------------- | 1957| Promise<boolean> | Promise回调返回设备的激活状态。 | 1958 1959**示例:** 1960 1961```ts 1962audioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value: boolean) => { 1963 console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`); 1964}); 1965``` 1966 1967### setMicrophoneMute<sup>(deprecated)</sup> 1968 1969setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void 1970 1971设置麦克风静音状态,使用callback方式异步返回结果。 1972 1973> **说明:** 1974> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。 1975 1976**需要权限:** ohos.permission.MICROPHONE 1977 1978**系统能力:** SystemCapability.Multimedia.Audio.Device 1979 1980**参数:** 1981 1982| 参数名 | 类型 | 必填 | 说明 | 1983| -------- | ------------------------- | ---- | --------------------------------------------- | 1984| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 1985| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 1986 1987**示例:** 1988 1989```ts 1990import { BusinessError } from '@ohos.base'; 1991audioManager.setMicrophoneMute(true, (err: BusinessError) => { 1992 if (err) { 1993 console.error(`Failed to mute the microphone. ${err}`); 1994 return; 1995 } 1996 console.info('Callback invoked to indicate that the microphone is muted.'); 1997}); 1998``` 1999 2000### setMicrophoneMute<sup>(deprecated)</sup> 2001 2002setMicrophoneMute(mute: boolean): Promise<void> 2003 2004设置麦克风静音状态,使用Promise方式异步返回结果。 2005 2006> **说明:** 2007> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[setMicrophoneMute](#setmicrophonemute9)替代。 2008 2009**需要权限:** ohos.permission.MICROPHONE 2010 2011**系统能力:** SystemCapability.Multimedia.Audio.Device 2012 2013**参数:** 2014 2015| 参数名 | 类型 | 必填 | 说明 | 2016| ------ | ------- | ---- | --------------------------------------------- | 2017| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 2018 2019**返回值:** 2020 2021| 类型 | 说明 | 2022| ------------------- | ------------------------------- | 2023| Promise<void> | Promise回调返回设置成功或失败。 | 2024 2025**示例:** 2026 2027```ts 2028audioManager.setMicrophoneMute(true).then(() => { 2029 console.info('Promise returned to indicate that the microphone is muted.'); 2030}); 2031``` 2032 2033### isMicrophoneMute<sup>(deprecated)</sup> 2034 2035isMicrophoneMute(callback: AsyncCallback<boolean>): void 2036 2037获取麦克风静音状态,使用callback方式异步返回结果。 2038 2039> **说明:** 2040> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。 2041 2042**需要权限:** ohos.permission.MICROPHONE 2043 2044**系统能力:** SystemCapability.Multimedia.Audio.Device 2045 2046**参数:** 2047 2048| 参数名 | 类型 | 必填 | 说明 | 2049| -------- | ---------------------------- | ---- | ------------------------------------------------------- | 2050| callback | AsyncCallback<boolean> | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 | 2051 2052**示例:** 2053 2054```ts 2055import { BusinessError } from '@ohos.base'; 2056audioManager.isMicrophoneMute((err: BusinessError, value: boolean) => { 2057 if (err) { 2058 console.error(`Failed to obtain the mute status of the microphone. ${err}`); 2059 return; 2060 } 2061 console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`); 2062}); 2063``` 2064 2065### isMicrophoneMute<sup>(deprecated)</sup> 2066 2067isMicrophoneMute(): Promise<boolean> 2068 2069获取麦克风静音状态,使用Promise方式异步返回结果。 2070 2071> **说明:** 2072> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。 2073 2074**需要权限:** ohos.permission.MICROPHONE 2075 2076**系统能力:** SystemCapability.Multimedia.Audio.Device 2077 2078**返回值:** 2079 2080| 类型 | 说明 | 2081| ---------------------- | ------------------------------------------------------------ | 2082| Promise<boolean> | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 | 2083 2084**示例:** 2085 2086```ts 2087audioManager.isMicrophoneMute().then((value: boolean) => { 2088 console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`); 2089}); 2090``` 2091 2092### on('volumeChange')<sup>(deprecated)</sup> 2093 2094on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void 2095 2096> **说明:** 2097> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeManager中的[on('volumeChange')](#onvolumechange9)替代。 2098 2099监听系统音量变化事件。 2100 2101**系统接口:** 该接口为系统接口 2102 2103目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。 2104 2105**系统能力:** SystemCapability.Multimedia.Audio.Volume 2106 2107**参数:** 2108 2109| 参数名 | 类型 | 必填 | 说明 | 2110| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 2111| type | string | 是 | 事件回调类型,支持的事件为:'volumeChange'(系统音量变化事件,检测到系统音量改变时,触发该事件)。 | 2112| callback | Callback<[VolumeEvent](#volumeevent9)> | 是 | 回调方法。 | 2113 2114**示例:** 2115 2116```ts 2117audioManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => { 2118 console.info(`VolumeType of stream: ${volumeEvent.volumeType} `); 2119 console.info(`Volume level: ${volumeEvent.volume} `); 2120 console.info(`Whether to updateUI: ${volumeEvent.updateUi} `); 2121}); 2122``` 2123 2124### on('ringerModeChange')<sup>(deprecated)</sup> 2125 2126on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void 2127 2128监听铃声模式变化事件。 2129 2130> **说明:** 2131> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[on('ringerModeChange')](#onringermodechange9)替代。 2132 2133**系统接口:** 该接口为系统接口 2134 2135**系统能力:** SystemCapability.Multimedia.Audio.Communication 2136 2137**参数:** 2138 2139| 参数名 | 类型 | 必填 | 说明 | 2140| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | 2141| type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 | 2142| callback | Callback<[AudioRingMode](#audioringmode)> | 是 | 回调方法。 | 2143 2144**示例:** 2145 2146```ts 2147audioManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => { 2148 console.info(`Updated ringermode: ${ringerMode}`); 2149}); 2150``` 2151 2152### on('deviceChange')<sup>(deprecated)</sup> 2153 2154on(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void 2155 2156设备更改。音频设备连接状态变化。 2157 2158> **说明:** 2159> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[on('deviceChange')](#ondevicechange9)替代。 2160 2161**系统能力:** SystemCapability.Multimedia.Audio.Device 2162 2163**参数:** 2164 2165| 参数名 | 类型 | 必填 | 说明 | 2166| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 2167| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | 2168| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是 | 获取设备更新详情。 | 2169 2170**示例:** 2171 2172```ts 2173audioManager.on('deviceChange', (deviceChanged: audio.DeviceChangeAction) => { 2174 console.info(`device change type : ${deviceChanged.type} `); 2175 console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `); 2176 console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `); 2177 console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `); 2178}); 2179``` 2180 2181### off('deviceChange')<sup>(deprecated)</sup> 2182 2183off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void 2184 2185取消订阅音频设备连接变化事件。 2186 2187> **说明:** 2188> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[off('deviceChange')](#offdevicechange9)替代。 2189 2190**系统能力:** SystemCapability.Multimedia.Audio.Device 2191 2192**参数:** 2193 2194| 参数名 | 类型 | 必填 | 说明 | 2195| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 2196| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | 2197| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 获取设备更新详情。 | 2198 2199**示例:** 2200 2201```ts 2202audioManager.off('deviceChange'); 2203``` 2204 2205### on('interrupt') 2206 2207on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void 2208 2209请求焦点并开始监听音频打断事件(当应用程序的音频被另一个播放事件中断,回调通知此应用程序)。 2210 2211与[on('audioInterrupt')](#onaudiointerrupt9)作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。 2212 2213**系统能力:** SystemCapability.Multimedia.Audio.Renderer 2214 2215**参数:** 2216 2217| 参数名 | 类型 | 必填 | 说明 | 2218| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | 2219| type | string | 是 | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 | 2220| interrupt | AudioInterrupt | 是 | 音频打断事件类型的参数。 | 2221| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | 是 | 音频打断事件回调方法。 | 2222 2223**示例:** 2224 2225```ts 2226import audio from '@ohos.multimedia.audio'; 2227let interAudioInterrupt: audio.AudioInterrupt = { 2228 streamUsage:2, 2229 contentType:0, 2230 pauseWhenDucked:true 2231}; 2232audioManager.on('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => { 2233 if (InterruptAction.actionType === 0) { 2234 console.info('An event to gain the audio focus starts.'); 2235 console.info(`Focus gain event: ${InterruptAction} `); 2236 } 2237 if (InterruptAction.actionType === 1) { 2238 console.info('An audio interruption event starts.'); 2239 console.info(`Audio interruption event: ${InterruptAction} `); 2240 } 2241}); 2242``` 2243 2244### off('interrupt') 2245 2246off(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<InterruptAction>): void 2247 2248取消监听音频打断事件(删除监听事件,取消打断)。 2249 2250**系统能力:** SystemCapability.Multimedia.Audio.Renderer 2251 2252**参数:** 2253 2254| 参数名 | 类型 | 必填 | 说明 | 2255| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | 2256| type | string | 是 | 音频打断事件回调类型,支持的事件为:'interrupt'(多应用之间第二个应用会打断第一个应用,触发该事件)。 | 2257| interrupt | AudioInterrupt | 是 | 音频打断事件类型的参数。 | 2258| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | 否 | 音频打断事件回调方法。 | 2259 2260**示例:** 2261 2262```ts 2263import audio from '@ohos.multimedia.audio'; 2264let interAudioInterrupt: audio.AudioInterrupt = { 2265 streamUsage:2, 2266 contentType:0, 2267 pauseWhenDucked:true 2268}; 2269audioManager.off('interrupt', interAudioInterrupt, (InterruptAction: audio.InterruptAction) => { 2270 if (InterruptAction.actionType === 0) { 2271 console.info('An event to release the audio focus starts.'); 2272 console.info(`Focus release event: ${InterruptAction} `); 2273 } 2274}); 2275``` 2276 2277## AudioVolumeManager<sup>9+</sup> 2278 2279音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getvolumemanager9)获取AudioVolumeManager实例。 2280 2281### getVolumeGroupInfos<sup>9+</sup> 2282 2283getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos\>\): void 2284 2285获取音量组信息列表,使用callback方式异步返回结果。 2286 2287**系统接口:** 该接口为系统接口 2288 2289**系统能力:** SystemCapability.Multimedia.Audio.Volume 2290 2291**参数:** 2292 2293| 参数名 | 类型 | 必填 | 说明 | 2294| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 2295| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。 | 2296| callback | AsyncCallback<[VolumeGroupInfos](#volumegroupinfos9)> | 是 | 回调,返回音量组信息列表。 | 2297 2298**示例:** 2299```ts 2300import { BusinessError } from '@ohos.base'; 2301audioVolumeManager.getVolumeGroupInfos(audio.LOCAL_NETWORK_ID, (err: BusinessError, value: audio.VolumeGroupInfos) => { 2302 if (err) { 2303 console.error(`Failed to obtain the volume group infos list. ${err}`); 2304 return; 2305 } 2306 console.info('Callback invoked to indicate that the volume group infos list is obtained.'); 2307}); 2308``` 2309 2310### getVolumeGroupInfos<sup>9+</sup> 2311 2312getVolumeGroupInfos(networkId: string\): Promise<VolumeGroupInfos\> 2313 2314获取音量组信息列表,使用promise方式异步返回结果。 2315 2316**系统接口:** 该接口为系统接口 2317 2318**系统能力:** SystemCapability.Multimedia.Audio.Volume 2319 2320**参数:** 2321 2322| 参数名 | 类型 | 必填 | 说明 | 2323| ---------- | ------------------| ---- | -------------------- | 2324| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。 | 2325 2326**返回值:** 2327 2328| 类型 | 说明 | 2329| ------------------- | ----------------------------- | 2330| Promise<[VolumeGroupInfos](#volumegroupinfos9)> | 音量组信息列表。 | 2331 2332**示例:** 2333 2334```ts 2335async function getVolumeGroupInfos(){ 2336 let volumegroupinfos: audio.VolumeGroupInfos = await audio.getAudioManager().getVolumeManager().getVolumeGroupInfos(audio.LOCAL_NETWORK_ID); 2337 console.info('Promise returned to indicate that the volumeGroup list is obtained.'+JSON.stringify(volumegroupinfos)) 2338} 2339``` 2340 2341### getVolumeGroupInfosSync<sup>10+</sup> 2342 2343getVolumeGroupInfosSync(networkId: string\): VolumeGroupInfos 2344 2345获取音量组信息列表,同步返回结果。 2346 2347**系统接口:** 该接口为系统接口 2348 2349**系统能力:** SystemCapability.Multimedia.Audio.Volume 2350 2351**参数:** 2352 2353| 参数名 | 类型 | 必填 | 说明 | 2354| ---------- | ------------------| ---- | -------------------- | 2355| networkId | string | 是 | 设备的网络id。本地设备audio.LOCAL_NETWORK_ID。 | 2356 2357**返回值:** 2358 2359| 类型 | 说明 | 2360| ------------------- | ----------------------------- | 2361| [VolumeGroupInfos](#volumegroupinfos9) | 音量组信息列表。 | 2362 2363**错误码:** 2364 2365以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2366 2367| 错误码ID | 错误信息 | 2368| ------- | --------------------------------------------| 2369| 6800101 | invalid parameter error | 2370 2371**示例:** 2372 2373```ts 2374import { BusinessError } from '@ohos.base'; 2375 2376try { 2377 let volumegroupinfos: audio.VolumeGroupInfos = audioVolumeManager.getVolumeGroupInfosSync(audio.LOCAL_NETWORK_ID); 2378 console.info(`Indicate that the volumeGroup list is obtained. ${JSON.stringify(volumegroupinfos)}`); 2379} catch (err) { 2380 let error = err as BusinessError; 2381 console.error(`Failed to obtain the volumeGroup list ${error}`); 2382} 2383``` 2384 2385### getVolumeGroupManager<sup>9+</sup> 2386 2387getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void 2388 2389获取音频组管理器,使用callback方式异步返回结果。 2390 2391**系统能力:** SystemCapability.Multimedia.Audio.Volume 2392 2393**参数:** 2394 2395| 参数名 | 类型 | 必填 | 说明 | 2396| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 2397| groupId | number | 是 | 音量组id。 | 2398| callback | AsyncCallback<[AudioVolumeGroupManager](#audiovolumegroupmanager9)> | 是 | 回调,返回一个音量组实例。 | 2399 2400**示例:** 2401 2402```ts 2403import { BusinessError } from '@ohos.base'; 2404let groupid: number = audio.DEFAULT_VOLUME_GROUP_ID; 2405audioVolumeManager.getVolumeGroupManager(groupid, (err: BusinessError, value: audio.AudioVolumeGroupManager) => { 2406 if (err) { 2407 console.error(`Failed to obtain the volume group infos list. ${err}`); 2408 return; 2409 } 2410 console.info('Callback invoked to indicate that the volume group infos list is obtained.'); 2411}); 2412 2413``` 2414 2415### getVolumeGroupManager<sup>9+</sup> 2416 2417getVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\> 2418 2419获取音频组管理器,使用promise方式异步返回结果。 2420 2421**系统能力:** SystemCapability.Multimedia.Audio.Volume 2422 2423**参数:** 2424 2425| 参数名 | 类型 | 必填 | 说明 | 2426| ---------- | ---------------------------------------- | ---- | ---------------- | 2427| groupId | number | 是 | 音量组id。 | 2428 2429**返回值:** 2430 2431| 类型 | 说明 | 2432| ------------------- | ----------------------------- | 2433| Promise< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | 音量组实例。 | 2434 2435**示例:** 2436 2437```ts 2438import audio from '@ohos.multimedia.audio'; 2439let groupid: number = audio.DEFAULT_VOLUME_GROUP_ID; 2440let audioVolumeGroupManager: audio.AudioVolumeGroupManager | undefined = undefined; 2441async function getVolumeGroupManager(){ 2442 audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupid); 2443 console.info('Callback invoked to indicate that the volume group infos list is obtained.'); 2444} 2445``` 2446 2447### getVolumeGroupManagerSync<sup>10+</sup> 2448 2449getVolumeGroupManagerSync(groupId: number\): AudioVolumeGroupManager 2450 2451获取音频组管理器,同步返回结果。 2452 2453**系统能力:** SystemCapability.Multimedia.Audio.Volume 2454 2455**参数:** 2456 2457| 参数名 | 类型 | 必填 | 说明 | 2458| ---------- | ---------------------------------------- | ---- | ---------------- | 2459| groupId | number | 是 | 音量组id。 | 2460 2461**返回值:** 2462 2463| 类型 | 说明 | 2464| ------------------- | ----------------------------- | 2465| [AudioVolumeGroupManager](#audiovolumegroupmanager9) | 音量组实例。 | 2466 2467**错误码:** 2468 2469以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2470 2471| 错误码ID | 错误信息 | 2472| ------- | --------------------------------------------| 2473| 6800101 | invalid parameter error | 2474 2475**示例:** 2476 2477```ts 2478import { BusinessError } from '@ohos.base'; 2479 2480try { 2481 let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID); 2482 console.info(`Get audioVolumeGroupManager success.`); 2483} catch (err) { 2484 let error = err as BusinessError; 2485 console.error(`Failed to get audioVolumeGroupManager, error: ${error}`); 2486} 2487``` 2488 2489### on('volumeChange')<sup>9+</sup> 2490 2491on(type: 'volumeChange', callback: Callback\<VolumeEvent>): void 2492 2493监听系统音量变化事件,使用callback方式异步返回结果。 2494 2495**系统能力:** SystemCapability.Multimedia.Audio.Volume 2496 2497**参数:** 2498 2499| 参数名 | 类型 | 必填 | 说明 | 2500| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 2501| type | string | 是 | 事件回调类型,支持的事件为:'volumeChange'。 | 2502| callback | Callback<[VolumeEvent](#volumeevent9)> | 是 | 回调方法。 | 2503 2504**错误码:** 2505 2506以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2507 2508| 错误码ID | 错误信息 | 2509| ------- | --------------------------------------------| 2510| 6800101 | if input parameter value error | 2511 2512**示例:** 2513 2514```ts 2515audioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => { 2516 console.info(`VolumeType of stream: ${volumeEvent.volumeType} `); 2517 console.info(`Volume level: ${volumeEvent.volume} `); 2518 console.info(`Whether to updateUI: ${volumeEvent.updateUi} `); 2519}); 2520``` 2521 2522## AudioVolumeGroupManager<sup>9+</sup> 2523 2524管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。 2525 2526### setVolume<sup>9+</sup> 2527 2528setVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void 2529 2530设置指定流的音量,使用callback方式异步返回结果。 2531 2532**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 2533 2534仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 2535 2536**系统接口:** 该接口为系统接口 2537 2538**系统能力:** SystemCapability.Multimedia.Audio.Volume 2539 2540**参数:** 2541 2542| 参数名 | 类型 | 必填 | 说明 | 2543| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 2544| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2545| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 2546| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 2547 2548**示例:** 2549 2550```ts 2551import { BusinessError } from '@ohos.base'; 2552audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => { 2553 if (err) { 2554 console.error(`Failed to set the volume. ${err}`); 2555 return; 2556 } 2557 console.info('Callback invoked to indicate a successful volume setting.'); 2558}); 2559``` 2560 2561### setVolume<sup>9+</sup> 2562 2563setVolume(volumeType: AudioVolumeType, volume: number): Promise<void> 2564 2565设置指定流的音量,使用Promise方式异步返回结果。 2566 2567**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 2568 2569仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 2570 2571**系统接口:** 该接口为系统接口 2572 2573**系统能力:** SystemCapability.Multimedia.Audio.Volume 2574 2575**参数:** 2576 2577| 参数名 | 类型 | 必填 | 说明 | 2578| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 2579| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2580| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 2581 2582**返回值:** 2583 2584| 类型 | 说明 | 2585| ------------------- | ----------------------------- | 2586| Promise<void> | Promise回调表示成功还是失败。 | 2587 2588**示例:** 2589 2590```ts 2591audioVolumeGroupManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => { 2592 console.info('Promise returned to indicate a successful volume setting.'); 2593}); 2594``` 2595 2596### getVolume<sup>9+</sup> 2597 2598getVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2599 2600获取指定流的音量,使用callback方式异步返回结果。 2601 2602**系统能力:** SystemCapability.Multimedia.Audio.Volume 2603 2604**参数:** 2605 2606| 参数名 | 类型 | 必填 | 说明 | 2607| ---------- | ----------------------------------- | ---- | ------------------ | 2608| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2609| callback | AsyncCallback<number> | 是 | 回调返回音量大小。 | 2610 2611**示例:** 2612 2613```ts 2614import { BusinessError } from '@ohos.base'; 2615audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2616 if (err) { 2617 console.error(`Failed to obtain the volume. ${err}`); 2618 return; 2619 } 2620 console.info('Callback invoked to indicate that the volume is obtained.'); 2621}); 2622``` 2623 2624### getVolume<sup>9+</sup> 2625 2626getVolume(volumeType: AudioVolumeType): Promise<number> 2627 2628获取指定流的音量,使用Promise方式异步返回结果。 2629 2630**系统能力:** SystemCapability.Multimedia.Audio.Volume 2631 2632**参数:** 2633 2634| 参数名 | 类型 | 必填 | 说明 | 2635| ---------- | ----------------------------------- | ---- | ------------ | 2636| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2637 2638**返回值:** 2639 2640| 类型 | 说明 | 2641| --------------------- | ------------------------- | 2642| Promise<number> | Promise回调返回音量大小。 | 2643 2644**示例:** 2645 2646```ts 2647audioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 2648 console.info(`Promise returned to indicate that the volume is obtained ${value}.`); 2649}); 2650``` 2651 2652### getVolumeSync<sup>10+</sup> 2653 2654getVolumeSync(volumeType: AudioVolumeType): number; 2655 2656获取指定流的音量,同步返回结果。 2657 2658**系统能力:** SystemCapability.Multimedia.Audio.Volume 2659 2660**参数:** 2661 2662| 参数名 | 类型 | 必填 | 说明 | 2663| ---------- | ----------------------------------- | ---- | ------------ | 2664| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2665 2666**返回值:** 2667 2668| 类型 | 说明 | 2669| --------------------- | ------------------------- | 2670| number | 返回音量大小。 | 2671 2672**错误码:** 2673 2674以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2675 2676| 错误码ID | 错误信息 | 2677| ------- | --------------------------------------------| 2678| 6800101 | invalid parameter error | 2679 2680**示例:** 2681 2682```ts 2683import { BusinessError } from '@ohos.base'; 2684 2685try { 2686 let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA); 2687 console.info(`Indicate that the volume is obtained ${value}.`); 2688} catch (err) { 2689 let error = err as BusinessError; 2690 console.info(`Failed to obtain the volume, error ${error}.`); 2691} 2692``` 2693 2694### getMinVolume<sup>9+</sup> 2695 2696getMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2697 2698获取指定流的最小音量,使用callback方式异步返回结果。 2699 2700**系统能力:** SystemCapability.Multimedia.Audio.Volume 2701 2702**参数:** 2703 2704| 参数名 | 类型 | 必填 | 说明 | 2705| ---------- | ----------------------------------- | ---- | ------------------ | 2706| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2707| callback | AsyncCallback<number> | 是 | 回调返回最小音量。 | 2708 2709**示例:** 2710 2711```ts 2712import { BusinessError } from '@ohos.base'; 2713audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2714 if (err) { 2715 console.error(`Failed to obtain the minimum volume. ${err}`); 2716 return; 2717 } 2718 console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`); 2719}); 2720``` 2721 2722### getMinVolume<sup>9+</sup> 2723 2724getMinVolume(volumeType: AudioVolumeType): Promise<number> 2725 2726获取指定流的最小音量,使用Promise方式异步返回结果。 2727 2728**系统能力:** SystemCapability.Multimedia.Audio.Volume 2729 2730**参数:** 2731 2732| 参数名 | 类型 | 必填 | 说明 | 2733| ---------- | ----------------------------------- | ---- | ------------ | 2734| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2735 2736**返回值:** 2737 2738| 类型 | 说明 | 2739| --------------------- | ------------------------- | 2740| Promise<number> | Promise回调返回最小音量。 | 2741 2742**示例:** 2743 2744```ts 2745audioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 2746 console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`); 2747}); 2748``` 2749 2750### getMinVolumeSync<sup>10+</sup> 2751 2752getMinVolumeSync(volumeType: AudioVolumeType): number; 2753 2754获取指定流的最小音量,同步返回结果。 2755 2756**系统能力:** SystemCapability.Multimedia.Audio.Volume 2757 2758**参数:** 2759 2760| 参数名 | 类型 | 必填 | 说明 | 2761| ---------- | ----------------------------------- | ---- | ------------ | 2762| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2763 2764**返回值:** 2765 2766| 类型 | 说明 | 2767| --------------------- | ------------------------- | 2768| number | 返回最小音量。 | 2769 2770**错误码:** 2771 2772以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2773 2774| 错误码ID | 错误信息 | 2775| ------- | --------------------------------------------| 2776| 6800101 | invalid parameter error | 2777 2778**示例:** 2779 2780```ts 2781import { BusinessError } from '@ohos.base'; 2782 2783try { 2784 let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA); 2785 console.info(`Indicate that the minimum volume is obtained ${value}.`); 2786} catch (err) { 2787 let error = err as BusinessError; 2788 console.error(`Failed to obtain the minimum volume, error ${error}.`); 2789} 2790``` 2791 2792### getMaxVolume<sup>9+</sup> 2793 2794getMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2795 2796获取指定流的最大音量,使用callback方式异步返回结果。 2797 2798**系统能力:** SystemCapability.Multimedia.Audio.Volume 2799 2800**参数:** 2801 2802| 参数名 | 类型 | 必填 | 说明 | 2803| ---------- | ----------------------------------- | ---- | ---------------------- | 2804| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2805| callback | AsyncCallback<number> | 是 | 回调返回最大音量大小。 | 2806 2807**示例:** 2808 2809```ts 2810import { BusinessError } from '@ohos.base'; 2811audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2812 if (err) { 2813 console.error(`Failed to obtain the maximum volume. ${err}`); 2814 return; 2815 } 2816 console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`); 2817}); 2818``` 2819 2820### getMaxVolume<sup>9+</sup> 2821 2822getMaxVolume(volumeType: AudioVolumeType): Promise<number> 2823 2824获取指定流的最大音量,使用Promise方式异步返回结果。 2825 2826**系统能力:** SystemCapability.Multimedia.Audio.Volume 2827 2828**参数:** 2829 2830| 参数名 | 类型 | 必填 | 说明 | 2831| ---------- | ----------------------------------- | ---- | ------------ | 2832| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2833 2834**返回值:** 2835 2836| 类型 | 说明 | 2837| --------------------- | ----------------------------- | 2838| Promise<number> | Promise回调返回最大音量大小。 | 2839 2840**示例:** 2841 2842```ts 2843audioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => { 2844 console.info('Promised returned to indicate that the maximum volume is obtained.'); 2845}); 2846``` 2847 2848### getMaxVolumeSync<sup>10+</sup> 2849 2850getMaxVolumeSync(volumeType: AudioVolumeType): number; 2851 2852获取指定流的最大音量,同步返回结果。 2853 2854**系统能力:** SystemCapability.Multimedia.Audio.Volume 2855 2856**参数:** 2857 2858| 参数名 | 类型 | 必填 | 说明 | 2859| ---------- | ----------------------------------- | ---- | ------------ | 2860| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2861 2862**返回值:** 2863 2864| 类型 | 说明 | 2865| --------------------- | ----------------------------- | 2866| number | 返回最大音量大小。 | 2867 2868**错误码:** 2869 2870以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 2871 2872| 错误码ID | 错误信息 | 2873| ------- | --------------------------------------------| 2874| 6800101 | invalid parameter error | 2875 2876**示例:** 2877 2878```ts 2879import { BusinessError } from '@ohos.base'; 2880 2881try { 2882 let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA); 2883 console.info(`Indicate that the maximum volume is obtained. ${value}`); 2884} catch (err) { 2885 let error = err as BusinessError; 2886 console.error(`Failed to obtain the maximum volume, error ${error}.`); 2887} 2888``` 2889 2890### mute<sup>9+</sup> 2891 2892mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void 2893 2894设置指定音量流静音,使用callback方式异步返回结果。 2895 2896**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 2897 2898仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 2899 2900**系统接口:** 该接口为系统接口 2901 2902**系统能力:** SystemCapability.Multimedia.Audio.Volume 2903 2904**参数:** 2905 2906| 参数名 | 类型 | 必填 | 说明 | 2907| ---------- | ----------------------------------- | ---- | ------------------------------------- | 2908| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2909| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 2910| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 2911 2912**示例:** 2913 2914```ts 2915import { BusinessError } from '@ohos.base'; 2916audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => { 2917 if (err) { 2918 console.error(`Failed to mute the stream. ${err}`); 2919 return; 2920 } 2921 console.info('Callback invoked to indicate that the stream is muted.'); 2922}); 2923``` 2924 2925### mute<sup>9+</sup> 2926 2927mute(volumeType: AudioVolumeType, mute: boolean): Promise<void> 2928 2929设置指定音量流静音,使用Promise方式异步返回结果。 2930 2931**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 2932 2933仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 2934 2935**系统接口:** 该接口为系统接口 2936 2937**系统能力:** SystemCapability.Multimedia.Audio.Volume 2938 2939**参数:** 2940 2941| 参数名 | 类型 | 必填 | 说明 | 2942| ---------- | ----------------------------------- | ---- | ------------------------------------- | 2943| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2944| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 2945 2946**返回值:** 2947 2948| 类型 | 说明 | 2949| ------------------- | ----------------------------- | 2950| Promise<void> | Promise回调表示成功还是失败。 | 2951 2952**示例:** 2953 2954```ts 2955audioVolumeGroupManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => { 2956 console.info('Promise returned to indicate that the stream is muted.'); 2957}); 2958``` 2959 2960### isMute<sup>9+</sup> 2961 2962isMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 2963 2964获取指定音量流是否被静音,使用callback方式异步返回结果。 2965 2966**系统能力:** SystemCapability.Multimedia.Audio.Volume 2967 2968**参数:** 2969 2970| 参数名 | 类型 | 必填 | 说明 | 2971| ---------- | ----------------------------------- | ---- | ----------------------------------------------- | 2972| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2973| callback | AsyncCallback<boolean> | 是 | 回调返回流静音状态,true为静音,false为非静音。 | 2974 2975**示例:** 2976 2977```ts 2978import { BusinessError } from '@ohos.base'; 2979audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 2980 if (err) { 2981 console.error(`Failed to obtain the mute status. ${err}`); 2982 return; 2983 } 2984 console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`); 2985}); 2986``` 2987 2988### isMute<sup>9+</sup> 2989 2990isMute(volumeType: AudioVolumeType): Promise<boolean> 2991 2992获取指定音量流是否被静音,使用Promise方式异步返回结果。 2993 2994**系统能力:** SystemCapability.Multimedia.Audio.Volume 2995 2996**参数:** 2997 2998| 参数名 | 类型 | 必填 | 说明 | 2999| ---------- | ----------------------------------- | ---- | ------------ | 3000| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3001 3002**返回值:** 3003 3004| 类型 | 说明 | 3005| ---------------------- | ------------------------------------------------------ | 3006| Promise<boolean> | Promise回调返回流静音状态,true为静音,false为非静音。 | 3007 3008**示例:** 3009 3010```ts 3011audioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 3012 console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`); 3013}); 3014``` 3015 3016### isMuteSync<sup>10+</sup> 3017 3018isMuteSync(volumeType: AudioVolumeType): boolean 3019 3020获取指定音量流是否被静音,同步返回结果。 3021 3022**系统能力:** SystemCapability.Multimedia.Audio.Volume 3023 3024**参数:** 3025 3026| 参数名 | 类型 | 必填 | 说明 | 3027| ---------- | ----------------------------------- | ---- | ------------ | 3028| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3029 3030**返回值:** 3031 3032| 类型 | 说明 | 3033| ---------------------- | ------------------------------------------------------ | 3034| boolean | 返回流静音状态,true为静音,false为非静音。 | 3035 3036**错误码:** 3037 3038以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3039 3040| 错误码ID | 错误信息 | 3041| ------- | --------------------------------------------| 3042| 6800101 | invalid parameter error | 3043 3044**示例:** 3045 3046```ts 3047import { BusinessError } from '@ohos.base'; 3048 3049try { 3050 let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA); 3051 console.info(`Indicate that the mute status of the stream is obtained ${value}.`); 3052} catch (err) { 3053 let error = err as BusinessError; 3054 console.error(`Failed to obtain the mute status of the stream, error ${error}.`); 3055} 3056``` 3057 3058### setRingerMode<sup>9+</sup> 3059 3060setRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void 3061 3062设置铃声模式,使用callback方式异步返回结果。 3063 3064**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3065 3066仅在静音和非静音状态切换时需要该权限。 3067 3068**系统接口:** 该接口为系统接口 3069 3070**系统能力:** SystemCapability.Multimedia.Audio.Volume 3071 3072**参数:** 3073 3074| 参数名 | 类型 | 必填 | 说明 | 3075| -------- | ------------------------------- | ---- | ------------------------ | 3076| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 3077| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 3078 3079**示例:** 3080 3081```ts 3082import { BusinessError } from '@ohos.base'; 3083audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => { 3084 if (err) { 3085 console.error(`Failed to set the ringer mode. ${err}`); 3086 return; 3087 } 3088 console.info('Callback invoked to indicate a successful setting of the ringer mode.'); 3089}); 3090``` 3091 3092### setRingerMode<sup>9+</sup> 3093 3094setRingerMode(mode: AudioRingMode): Promise<void> 3095 3096设置铃声模式,使用Promise方式异步返回结果。 3097 3098**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3099 3100仅在静音和非静音状态切换时需要该权限。 3101 3102**系统接口:** 该接口为系统接口 3103 3104**系统能力:** SystemCapability.Multimedia.Audio.Volume 3105 3106**参数:** 3107 3108| 参数名 | 类型 | 必填 | 说明 | 3109| ------ | ------------------------------- | ---- | -------------- | 3110| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 3111 3112**返回值:** 3113 3114| 类型 | 说明 | 3115| ------------------- | ------------------------------- | 3116| Promise<void> | Promise回调返回设置成功或失败。 | 3117 3118**示例:** 3119 3120```ts 3121audioVolumeGroupManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => { 3122 console.info('Promise returned to indicate a successful setting of the ringer mode.'); 3123}); 3124``` 3125 3126### getRingerMode<sup>9+</sup> 3127 3128getRingerMode(callback: AsyncCallback<AudioRingMode>): void 3129 3130获取铃声模式,使用callback方式异步返回结果。 3131 3132**系统能力:** SystemCapability.Multimedia.Audio.Volume 3133 3134**参数:** 3135 3136| 参数名 | 类型 | 必填 | 说明 | 3137| -------- | ---------------------------------------------------- | ---- | ------------------------ | 3138| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | 是 | 回调返回系统的铃声模式。 | 3139 3140**示例:** 3141 3142```ts 3143import { BusinessError } from '@ohos.base'; 3144audioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => { 3145 if (err) { 3146 console.error(`Failed to obtain the ringer mode. ${err}`); 3147 return; 3148 } 3149 console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`); 3150}); 3151``` 3152 3153### getRingerMode<sup>9+</sup> 3154 3155getRingerMode(): Promise<AudioRingMode> 3156 3157获取铃声模式,使用Promise方式异步返回结果。 3158 3159**系统能力:** SystemCapability.Multimedia.Audio.Volume 3160 3161**返回值:** 3162 3163| 类型 | 说明 | 3164| ---------------------------------------------- | ------------------------------- | 3165| Promise<[AudioRingMode](#audioringmode)> | Promise回调返回系统的铃声模式。 | 3166 3167**示例:** 3168 3169```ts 3170audioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => { 3171 console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`); 3172}); 3173``` 3174 3175### getRingerModeSync<sup>10+</sup> 3176 3177getRingerModeSync(): AudioRingMode 3178 3179获取铃声模式,同步返回结果。 3180 3181**系统能力:** SystemCapability.Multimedia.Audio.Volume 3182 3183**返回值:** 3184 3185| 类型 | 说明 | 3186| ---------------------------------------------- | ------------------------------- | 3187| [AudioRingMode](#audioringmode) | 返回系统的铃声模式。 | 3188 3189**示例:** 3190 3191```ts 3192import { BusinessError } from '@ohos.base'; 3193 3194try { 3195 let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync(); 3196 console.info(`Indicate that the ringer mode is obtained ${value}.`); 3197} catch (err) { 3198 let error = err as BusinessError; 3199 console.error(`Failed to obtain the ringer mode, error ${error}.`); 3200} 3201``` 3202 3203### on('ringerModeChange')<sup>9+</sup> 3204 3205on(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void 3206 3207监听铃声模式变化事件。 3208 3209**系统能力:** SystemCapability.Multimedia.Audio.Volume 3210 3211**参数:** 3212 3213| 参数名 | 类型 | 必填 | 说明 | 3214| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | 3215| type | string | 是 | 事件回调类型,支持的事件为:'ringerModeChange'(铃声模式变化事件,检测到铃声模式改变时,触发该事件)。 | 3216| callback | Callback<[AudioRingMode](#audioringmode)> | 是 | 回调方法。 | 3217 3218**错误码:** 3219 3220以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3221 3222| 错误码ID | 错误信息 | 3223| ------- | --------------------------------------------| 3224| 6800101 | if input parameter value error | 3225 3226**示例:** 3227 3228```ts 3229audioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => { 3230 console.info(`Updated ringermode: ${ringerMode}`); 3231}); 3232``` 3233### setMicrophoneMute<sup>9+</sup> 3234 3235setMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void 3236 3237设置麦克风静音状态,使用callback方式异步返回结果。 3238 3239**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG 3240 3241**系统能力:** SystemCapability.Multimedia.Audio.Volume 3242 3243**参数:** 3244 3245| 参数名 | 类型 | 必填 | 说明 | 3246| -------- | ------------------------- | ---- | --------------------------------------------- | 3247| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 3248| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 3249 3250**示例:** 3251 3252```ts 3253import { BusinessError } from '@ohos.base'; 3254audioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => { 3255 if (err) { 3256 console.error(`Failed to mute the microphone. ${err}`); 3257 return; 3258 } 3259 console.info('Callback invoked to indicate that the microphone is muted.'); 3260}); 3261``` 3262 3263### setMicrophoneMute<sup>9+</sup> 3264 3265setMicrophoneMute(mute: boolean): Promise<void> 3266 3267设置麦克风静音状态,使用Promise方式异步返回结果。 3268 3269**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG 3270 3271**系统能力:** SystemCapability.Multimedia.Audio.Volume 3272 3273**参数:** 3274 3275| 参数名 | 类型 | 必填 | 说明 | 3276| ------ | ------- | ---- | --------------------------------------------- | 3277| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 3278 3279**返回值:** 3280 3281| 类型 | 说明 | 3282| ------------------- | ------------------------------- | 3283| Promise<void> | Promise回调返回设置成功或失败。 | 3284 3285**示例:** 3286 3287```ts 3288audioVolumeGroupManager.setMicrophoneMute(true).then(() => { 3289 console.info('Promise returned to indicate that the microphone is muted.'); 3290}); 3291``` 3292 3293### isMicrophoneMute<sup>9+</sup> 3294 3295isMicrophoneMute(callback: AsyncCallback<boolean>): void 3296 3297获取麦克风静音状态,使用callback方式异步返回结果。 3298 3299**系统能力:** SystemCapability.Multimedia.Audio.Volume 3300 3301**参数:** 3302 3303| 参数名 | 类型 | 必填 | 说明 | 3304| -------- | ---------------------------- | ---- | ------------------------------------------------------- | 3305| callback | AsyncCallback<boolean> | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 | 3306 3307**示例:** 3308 3309```ts 3310import { BusinessError } from '@ohos.base'; 3311audioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => { 3312 if (err) { 3313 console.error(`Failed to obtain the mute status of the microphone. ${err}`); 3314 return; 3315 } 3316 console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`); 3317}); 3318``` 3319 3320### isMicrophoneMute<sup>9+</sup> 3321 3322isMicrophoneMute(): Promise<boolean> 3323 3324获取麦克风静音状态,使用Promise方式异步返回结果。 3325 3326**系统能力:** SystemCapability.Multimedia.Audio.Volume 3327 3328**返回值:** 3329 3330| 类型 | 说明 | 3331| ---------------------- | ------------------------------------------------------------ | 3332| Promise<boolean> | Promise回调返回系统麦克风静音状态,true为静音,false为非静音。 | 3333 3334**示例:** 3335 3336```ts 3337audioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => { 3338 console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`); 3339}); 3340``` 3341 3342### isMicrophoneMuteSync<sup>10+</sup> 3343 3344isMicrophoneMuteSync(): boolean 3345 3346获取麦克风静音状态,同步返回结果。 3347 3348**系统能力:** SystemCapability.Multimedia.Audio.Volume 3349 3350**返回值:** 3351 3352| 类型 | 说明 | 3353| ---------------------- | ------------------------------------------------------------ | 3354| boolean | 返回系统麦克风静音状态,true为静音,false为非静音。 | 3355 3356**示例:** 3357 3358```ts 3359import { BusinessError } from '@ohos.base'; 3360 3361try { 3362 let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync(); 3363 console.info(`Indicate that the mute status of the microphone is obtained ${value}.`); 3364} catch (err) { 3365 let error = err as BusinessError; 3366 console.error(`Failed to obtain the mute status of the microphone, error ${error}.`); 3367} 3368``` 3369 3370### on('micStateChange')<sup>9+</sup> 3371 3372on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void 3373 3374监听系统麦克风状态更改事件。 3375 3376目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。 3377 3378**系统能力:** SystemCapability.Multimedia.Audio.Volume 3379 3380**参数:** 3381 3382| 参数名 | 类型 | 必填 | 说明 | 3383| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 3384| type | string | 是 | 事件回调类型,支持的事件为:'micStateChange'(系统麦克风状态变化事件,检测到系统麦克风状态改变时,触发该事件)。 | 3385| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是 | 回调方法,返回变更后的麦克风状态。 | 3386 3387**错误码:** 3388 3389以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3390 3391| 错误码ID | 错误信息 | 3392| ------- | --------------------------------------------| 3393| 6800101 | if input parameter value error | 3394 3395**示例:** 3396 3397```ts 3398audioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => { 3399 console.info(`Current microphone status is: ${micStateChange.mute} `); 3400}); 3401``` 3402 3403### isVolumeUnadjustable<sup>10+</sup> 3404 3405isVolumeUnadjustable(): boolean 3406 3407获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节,使用同步方式返回结果。 3408 3409**系统能力:** SystemCapability.Multimedia.Audio.Volume 3410 3411**返回值:** 3412 3413| 类型 | 说明 | 3414| ---------------------- | ------------------------------------------------------ | 3415| boolean | 同步接口,返回固定音量模式开关状态,true为固定音量模式,false为非固定音量模式。 | 3416 3417**示例:** 3418 3419```ts 3420let volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable(); 3421console.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`); 3422``` 3423 3424### adjustVolumeByStep<sup>10+</sup> 3425 3426adjustVolumeByStep(adjustType: VolumeAdjustType, callback: AsyncCallback<void>): void 3427 3428调节当前最高优先级的流的音量,使音量值按步长加或减,使用callback方式异步返回结果。 3429 3430**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3431 3432仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 3433 3434**系统接口:** 该接口为系统接口 3435 3436**系统能力:** SystemCapability.Multimedia.Audio.Volume 3437 3438**参数:** 3439 3440| 参数名 | 类型 | 必填 | 说明 | 3441| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3442| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是 | 音量调节方向。 | 3443| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 3444 3445**错误码:** 3446 3447以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3448 3449| 错误码ID | 错误信息 | 3450| ------- | --------------------------------------------| 3451| 6800101 | Invalid parameter error. Return by callback. | 3452| 6800301 | System error. Return by callback. | 3453 3454**示例:** 3455 3456```ts 3457import { BusinessError } from '@ohos.base'; 3458audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP, (err: BusinessError) => { 3459 if (err) { 3460 console.error(`Failed to adjust the volume by step. ${err}`); 3461 return; 3462 } else { 3463 console.info('Success to adjust the volume by step.'); 3464 } 3465}); 3466``` 3467### adjustVolumeByStep<sup>10+</sup> 3468 3469adjustVolumeByStep(adjustType: VolumeAdjustType): Promise<void> 3470 3471单步设置当前最高优先级的流的音量,使用Promise方式异步返回结果。 3472 3473**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3474 3475仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 3476 3477**系统接口:** 该接口为系统接口 3478 3479**系统能力:** SystemCapability.Multimedia.Audio.Volume 3480 3481**参数:** 3482 3483| 参数名 | 类型 | 必填 | 说明 | 3484| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3485| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是 | 音量调节方向。 | 3486 3487**返回值:** 3488 3489| 类型 | 说明 | 3490| ------------------- | ----------------------------- | 3491| Promise<void> | Promise回调表示成功还是失败。 | 3492 3493**错误码:** 3494 3495以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3496 3497| 错误码ID | 错误信息 | 3498| ------- | --------------------------------------------| 3499| 6800101 | Invalid parameter error. Return by promise. | 3500| 6800301 | System error. Return by promise. | 3501 3502**示例:** 3503 3504```ts 3505import { BusinessError } from '@ohos.base'; 3506audioVolumeGroupManager.adjustVolumeByStep(audio.VolumeAdjustType.VOLUME_UP).then(() => { 3507 console.info('Success to adjust the volume by step.'); 3508}).catch((error: BusinessError) => { 3509 console.error('Fail to adjust the volume by step.'); 3510}); 3511``` 3512 3513### adjustSystemVolumeByStep<sup>10+</sup> 3514 3515adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType, callback: AsyncCallback<void>): void 3516 3517单步设置指定流的音量,使用callback方式异步返回结果。 3518 3519**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3520 3521仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 3522 3523**系统接口:** 该接口为系统接口 3524 3525**系统能力:** SystemCapability.Multimedia.Audio.Volume 3526 3527**参数:** 3528 3529| 参数名 | 类型 | 必填 | 说明 | 3530| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3531| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3532| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是 | 音量调节方向。 | 3533| callback | AsyncCallback<void> | 是 | 回调表示成功还是失败。 | 3534 3535**错误码:** 3536 3537以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3538 3539| 错误码ID | 错误信息 | 3540| ------- | --------------------------------------------| 3541| 6800101 | Invalid parameter error. Return by callback. | 3542| 6800301 | System error. Return by callback. | 3543 3544**示例:** 3545 3546```ts 3547import { BusinessError } from '@ohos.base'; 3548audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP, (err: BusinessError) => { 3549 if (err) { 3550 console.error(`Failed to adjust the system volume by step ${err}`); 3551 } else { 3552 console.info('Success to adjust the system volume by step.'); 3553 } 3554}); 3555``` 3556### adjustSystemVolumeByStep<sup>10+</sup> 3557 3558adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType): Promise<void> 3559 3560单步设置指定流的音量,使用Promise方式异步返回结果。 3561 3562**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 3563 3564仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 3565 3566**系统接口:** 该接口为系统接口 3567 3568**系统能力:** SystemCapability.Multimedia.Audio.Volume 3569 3570**参数:** 3571 3572| 参数名 | 类型 | 必填 | 说明 | 3573| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3574| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3575| adjustType | [VolumeAdjustType](#volumeadjusttype10) | 是 | 音量调节方向。 | 3576 3577**返回值:** 3578 3579| 类型 | 说明 | 3580| ------------------- | ----------------------------- | 3581| Promise<void> | Promise回调表示成功还是失败。 | 3582 3583**错误码:** 3584 3585以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3586 3587| 错误码ID | 错误信息 | 3588| ------- | --------------------------------------------| 3589| 6800101 | Invalid parameter error. Return by promise. | 3590| 6800301 | System error. Return by promise. | 3591 3592**示例:** 3593 3594```ts 3595import { BusinessError } from '@ohos.base'; 3596audioVolumeGroupManager.adjustSystemVolumeByStep(audio.AudioVolumeType.MEDIA, audio.VolumeAdjustType.VOLUME_UP).then(() => { 3597 console.info('Success to adjust the system volume by step.'); 3598}).catch((error: BusinessError) => { 3599 console.error('Fail to adjust the system volume by step.'); 3600}); 3601``` 3602 3603### getSystemVolumeInDb<sup>10+</sup> 3604 3605getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void 3606 3607获取音量增益dB值,使用callback方式异步返回结果。 3608 3609**系统能力:** SystemCapability.Multimedia.Audio.Volume 3610 3611**参数:** 3612 3613| 参数名 | 类型 | 必填 | 说明 | 3614| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3615| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3616| volumeLevel | number | 是 | 音量等级。 | 3617| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3618| callback | AsyncCallback<number> | 是 | 回调返回对应的音量增益dB值。 | 3619 3620**错误码:** 3621 3622以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3623 3624| 错误码ID | 错误信息 | 3625| ------- | --------------------------------------------| 3626| 6800101 | Invalid parameter error. Return by callback. | 3627| 6800301 | System error. Return by callback. | 3628 3629**示例:** 3630 3631```ts 3632import { BusinessError } from '@ohos.base'; 3633audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => { 3634 if (err) { 3635 console.error(`Failed to get the volume DB. ${err}`); 3636 } else { 3637 console.info(`Success to get the volume DB. ${dB}`); 3638 } 3639}); 3640``` 3641### getSystemVolumeInDb<sup>10+</sup> 3642 3643getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number> 3644 3645获取音量增益dB值,使用Promise方式异步返回结果。 3646 3647**系统能力:** SystemCapability.Multimedia.Audio.Volume 3648 3649**参数:** 3650 3651| 参数名 | 类型 | 必填 | 说明 | 3652| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3653| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3654| volumeLevel | number | 是 | 音量等级。 | 3655| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3656 3657**返回值:** 3658 3659| 类型 | 说明 | 3660| --------------------- | ---------------------------------- | 3661| Promise<number> | Promise回调返回对应的音量增益dB值。 | 3662 3663**错误码:** 3664 3665以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3666 3667| 错误码ID | 错误信息 | 3668| ------- | --------------------------------------------| 3669| 6800101 | Invalid parameter error. Return by promise. | 3670| 6800301 | System error. Return by promise. | 3671 3672**示例:** 3673 3674```ts 3675import { BusinessError } from '@ohos.base'; 3676audioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => { 3677 console.info(`Success to get the volume DB. ${value}`); 3678}).catch((error: BusinessError) => { 3679 console.error(`Fail to adjust the system volume by step. ${error}`); 3680}); 3681``` 3682 3683### getSystemVolumeInDbSync<sup>10+</sup> 3684 3685getSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number 3686 3687获取音量增益dB值,同步返回结果。 3688 3689**系统能力:** SystemCapability.Multimedia.Audio.Volume 3690 3691**参数:** 3692 3693| 参数名 | 类型 | 必填 | 说明 | 3694| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3695| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3696| volumeLevel | number | 是 | 音量等级。 | 3697| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3698 3699**返回值:** 3700 3701| 类型 | 说明 | 3702| --------------------- | ---------------------------------- | 3703| number | 返回对应的音量增益dB值。 | 3704 3705**错误码:** 3706 3707以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 3708 3709| 错误码ID | 错误信息 | 3710| ------- | --------------------------------------------| 3711| 6800101 | invalid parameter error | 3712 3713**示例:** 3714 3715```ts 3716import { BusinessError } from '@ohos.base'; 3717 3718try { 3719 let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER); 3720 console.info(`Success to get the volume DB. ${value}`); 3721} catch (err) { 3722 let error = err as BusinessError; 3723 console.error(`Fail to adjust the system volume by step. ${error}`); 3724} 3725``` 3726 3727## AudioStreamManager<sup>9+</sup> 3728 3729管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。 3730 3731### getCurrentAudioRendererInfoArray<sup>9+</sup> 3732 3733getCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void 3734 3735获取当前音频渲染器的信息。使用callback异步回调。 3736 3737**系统能力**: SystemCapability.Multimedia.Audio.Renderer 3738 3739**参数:** 3740 3741| 参数名 | 类型 | 必填 | 说明 | 3742| -------- | ----------------------------------- | -------- | --------------------------- | 3743| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器的信息。 | 3744 3745**示例:** 3746 3747```ts 3748import { BusinessError } from '@ohos.base'; 3749audioStreamManager.getCurrentAudioRendererInfoArray(async (err: BusinessError, AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 3750 console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****'); 3751 if (err) { 3752 console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`); 3753 } else { 3754 if (AudioRendererChangeInfoArray != null) { 3755 for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 3756 let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i]; 3757 console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3758 console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`); 3759 console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3760 console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3761 console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3762 console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`); 3763 for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3764 console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3765 console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3766 console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3767 console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3768 console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3769 console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3770 console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3771 console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3772 } 3773 } 3774 } 3775 } 3776}); 3777``` 3778 3779### getCurrentAudioRendererInfoArray<sup>9+</sup> 3780 3781getCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray> 3782 3783获取当前音频渲染器的信息。使用Promise异步回调。 3784 3785**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3786 3787**返回值:** 3788 3789| 类型 | 说明 | 3790| ---------------------------------------------------------------------------------| --------------------------------------- | 3791| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | 3792 3793**示例:** 3794 3795```ts 3796import { BusinessError } from '@ohos.base'; 3797async function getCurrentAudioRendererInfoArray(){ 3798 await audioStreamManager.getCurrentAudioRendererInfoArray().then((AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 3799 console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`); 3800 if (AudioRendererChangeInfoArray != null) { 3801 for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 3802 let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i]; 3803 console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3804 console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`); 3805 console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3806 console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3807 console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3808 console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`); 3809 for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3810 console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3811 console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3812 console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3813 console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3814 console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3815 console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3816 console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3817 console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3818 } 3819 } 3820 } 3821 }).catch((err: BusinessError) => { 3822 console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`); 3823 }); 3824} 3825``` 3826### getCurrentAudioRendererInfoArraySync<sup>10+</sup> 3827 3828getCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray 3829 3830获取当前音频渲染器的信息,同步返回结果。 3831 3832**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3833 3834**返回值:** 3835 3836| 类型 | 说明 | 3837| ---------------------------------------------------------------------------------| --------------------------------------- | 3838| [AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9) | 返回当前音频渲染器信息。 | 3839 3840**示例:** 3841 3842```ts 3843import { BusinessError } from '@ohos.base'; 3844 3845try { 3846 let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync(); 3847 console.info(`getCurrentAudioRendererInfoArraySync success.`); 3848 if (audioRendererChangeInfoArray != null) { 3849 for (let i = 0; i < audioRendererChangeInfoArray.length; i++) { 3850 let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i]; 3851 console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3852 console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`); 3853 console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3854 console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3855 console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3856 console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`); 3857 for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3858 console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3859 console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3860 console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3861 console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3862 console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3863 console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3864 console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3865 console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3866 } 3867 } 3868 } 3869} catch (err) { 3870 let error = err as BusinessError; 3871 console.error(`getCurrentAudioRendererInfoArraySync :ERROR: ${error}`); 3872} 3873``` 3874 3875### getCurrentAudioCapturerInfoArray<sup>9+</sup> 3876 3877getCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void 3878 3879获取当前音频采集器的信息。使用callback异步回调。 3880 3881**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3882 3883**参数:** 3884 3885| 参数名 | 类型 | 必填 | 说明 | 3886| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- | 3887| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器的信息。 | 3888 3889**示例:** 3890 3891```ts 3892import { BusinessError } from '@ohos.base'; 3893audioStreamManager.getCurrentAudioCapturerInfoArray(async (err: BusinessError, AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 3894 console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****'); 3895 if (err) { 3896 console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`); 3897 } else { 3898 if (AudioCapturerChangeInfoArray != null) { 3899 for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 3900 console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 3901 console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`); 3902 console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 3903 console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3904 console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`); 3905 for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3906 console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3907 console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3908 console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3909 console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3910 console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3911 console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3912 console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3913 console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3914 } 3915 } 3916 } 3917 } 3918}); 3919``` 3920 3921### getCurrentAudioCapturerInfoArray<sup>9+</sup> 3922 3923getCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray> 3924 3925获取当前音频采集器的信息。使用Promise异步回调。 3926 3927**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3928 3929**返回值:** 3930 3931| 类型 | 说明 | 3932| -----------------------------------------------------------------------------| ----------------------------------- | 3933| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | 3934 3935**示例:** 3936 3937```ts 3938import { BusinessError } from '@ohos.base'; 3939async function getCurrentAudioCapturerInfoArray(){ 3940 await audioStreamManager.getCurrentAudioCapturerInfoArray().then((AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 3941 console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****'); 3942 if (AudioCapturerChangeInfoArray != null) { 3943 for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 3944 console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 3945 console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`); 3946 console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 3947 console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3948 console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`); 3949 for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3950 console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3951 console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3952 console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3953 console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3954 console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3955 console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3956 console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3957 console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3958 } 3959 } 3960 } 3961 }).catch((err: BusinessError) => { 3962 console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`); 3963 }); 3964} 3965``` 3966### getCurrentAudioCapturerInfoArraySync<sup>10+</sup> 3967 3968getCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray 3969 3970获取当前音频采集器的信息,同步返回结果。 3971 3972**系统能力:** SystemCapability.Multimedia.Audio.Capturer 3973 3974**返回值:** 3975 3976| 类型 | 说明 | 3977| -----------------------------------------------------------------------------| ----------------------------------- | 3978| [AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9) | 返回当前音频采集器信息。 | 3979 3980**示例:** 3981 3982```ts 3983import { BusinessError } from '@ohos.base'; 3984 3985try { 3986 let audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync(); 3987 console.info('getCurrentAudioCapturerInfoArraySync success.'); 3988 if (audioCapturerChangeInfoArray != null) { 3989 for (let i = 0; i < audioCapturerChangeInfoArray.length; i++) { 3990 console.info(`StreamId for ${i} is: ${audioCapturerChangeInfoArray[i].streamId}`); 3991 console.info(`ClientUid for ${i} is: ${audioCapturerChangeInfoArray[i].clientUid}`); 3992 console.info(`Source for ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.source}`); 3993 console.info(`Flag ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3994 console.info(`State for ${i} is: ${audioCapturerChangeInfoArray[i].capturerState}`); 3995 for (let j = 0; j < audioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3996 console.info(`Id: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3997 console.info(`Type: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3998 console.info(`Role: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3999 console.info(`Name: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 4000 console.info(`Address: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 4001 console.info(`SampleRate: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 4002 console.info(`ChannelCount: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 4003 console.info(`ChannelMask: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 4004 } 4005 } 4006 } 4007} catch (err) { 4008 let error = err as BusinessError; 4009 console.error(`getCurrentAudioCapturerInfoArraySync ERROR: ${error}`); 4010} 4011``` 4012 4013### on('audioRendererChange')<sup>9+</sup> 4014 4015on(type: 'audioRendererChange', callback: Callback<AudioRendererChangeInfoArray>): void 4016 4017监听音频渲染器更改事件。 4018 4019**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4020 4021**参数:** 4022 4023| 参数名 | 类型 | 必填 | 说明 | 4024| -------- | ---------- | --------- | ------------------------------------------------------------------------ | 4025| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:当音频渲染器发生更改时触发。 | 4026| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。 | 4027 4028**错误码:** 4029 4030以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4031 4032| 错误码ID | 错误信息 | 4033| ------- | --------------------------------------------| 4034| 6800101 | if input parameter value error | 4035 4036**示例:** 4037 4038```ts 4039audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 4040 for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 4041 let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i]; 4042 console.info(`## RendererChange on is called for ${i} ##`); 4043 console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 4044 console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfo.clientUid}`); 4045 console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 4046 console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 4047 console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 4048 console.info(`State for ${i} is: ${AudioRendererChangeInfo.rendererState}`); 4049 for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 4050 console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 4051 console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 4052 console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 4053 console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 4054 console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 4055 console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 4056 console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 4057 console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 4058 } 4059 } 4060}); 4061``` 4062 4063### off('audioRendererChange')<sup>9+</sup> 4064 4065off(type: 'audioRendererChange'): void 4066 4067取消监听音频渲染器更改事件。 4068 4069**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4070 4071**参数:** 4072 4073| 参数名 | 类型 | 必填 | 说明 | 4074| -------- | ------- | ---- | ---------------- | 4075| type | string | 是 | 事件类型,支持的事件`'audioRendererChange'`:音频渲染器更改事件。 | 4076 4077**错误码:** 4078 4079以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4080 4081| 错误码ID | 错误信息 | 4082| ------- | --------------------------------------------| 4083| 6800101 | if input parameter value error | 4084 4085**示例:** 4086 4087```ts 4088audioStreamManager.off('audioRendererChange'); 4089console.info('######### RendererChange Off is called #########'); 4090``` 4091 4092### on('audioCapturerChange')<sup>9+</sup> 4093 4094on(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfoArray>): void 4095 4096监听音频采集器更改事件。 4097 4098**系统能力:** SystemCapability.Multimedia.Audio.Capturer 4099 4100**参数:** 4101 4102| 参数名 | 类型 | 必填 | 说明 | 4103| -------- | ------- | --------- | ----------------------------------------------------------------------- | 4104| type | string | 是 | 事件类型,支持的事件`'audioCapturerChange'`:当音频采集器发生更改时触发。 | 4105| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数。 | 4106 4107**错误码:** 4108 4109以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4110 4111| 错误码ID | 错误信息 | 4112| ------- | --------------------------------------------| 4113| 6800101 | if input parameter value error | 4114 4115**示例:** 4116 4117```ts 4118audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 4119 for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 4120 console.info(`## CapChange on is called for element ${i} ##`); 4121 console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 4122 console.info(`ClientUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`); 4123 console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 4124 console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 4125 console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`); 4126 let devDescriptor: audio.AudioCapturerChangeInfo = AudioCapturerChangeInfoArray[i].deviceDescriptors; 4127 for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 4128 console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 4129 console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 4130 console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 4131 console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 4132 console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 4133 console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 4134 console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 4135 console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 4136 } 4137 } 4138}); 4139``` 4140 4141### off('audioCapturerChange')<sup>9+</sup> 4142 4143off(type: 'audioCapturerChange'): void; 4144 4145取消监听音频采集器更改事件。 4146 4147**系统能力:** SystemCapability.Multimedia.Audio.Capturer 4148 4149**参数:** 4150 4151| 参数名 | 类型 | 必填 | 说明 | 4152| -------- | -------- | --- | ------------------------------------------------------------- | 4153| type | string |是 | 事件类型,支持的事件`'audioCapturerChange'`:音频采集器更改事件。 | 4154 4155**错误码:** 4156 4157以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4158 4159| 错误码ID | 错误信息 | 4160| ------- | --------------------------------------------| 4161| 6800101 | if input parameter value error | 4162 4163**示例:** 4164 4165```ts 4166audioStreamManager.off('audioCapturerChange'); 4167console.info('######### CapturerChange Off is called #########'); 4168 4169``` 4170 4171### isActive<sup>9+</sup> 4172 4173isActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 4174 4175获取指定音频流是否为活跃状态,使用callback方式异步返回结果。 4176 4177**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4178 4179**参数:** 4180 4181| 参数名 | 类型 | 必填 | 说明 | 4182| ---------- | ----------------------------------- | ---- | ------------------------------------------------- | 4183| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 4184| callback | AsyncCallback<boolean> | 是 | 回调返回流的活跃状态,true为活跃,false为不活跃。 | 4185 4186**示例:** 4187 4188```ts 4189import { BusinessError } from '@ohos.base'; 4190audioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 4191if (err) { 4192 console.error(`Failed to obtain the active status of the stream. ${err}`); 4193 return; 4194} 4195 console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`); 4196}); 4197``` 4198 4199### isActive<sup>9+</sup> 4200 4201isActive(volumeType: AudioVolumeType): Promise<boolean> 4202 4203获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。 4204 4205**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4206 4207**参数:** 4208 4209| 参数名 | 类型 | 必填 | 说明 | 4210| ---------- | ----------------------------------- | ---- | ------------ | 4211| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 4212 4213**返回值:** 4214 4215| 类型 | 说明 | 4216| ---------------------- | -------------------------------------------------------- | 4217| Promise<boolean> | Promise回调返回流的活跃状态,true为活跃,false为不活跃。 | 4218 4219**示例:** 4220 4221```ts 4222audioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 4223 console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`); 4224}); 4225``` 4226 4227### isActiveSync<sup>10+</sup> 4228 4229isActiveSync(volumeType: AudioVolumeType): boolean 4230 4231获取指定音频流是否为活跃状态,同步返回结果。 4232 4233**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4234 4235**参数:** 4236 4237| 参数名 | 类型 | 必填 | 说明 | 4238| ---------- | ----------------------------------- | ---- | ------------ | 4239| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 4240 4241**返回值:** 4242 4243| 类型 | 说明 | 4244| ---------------------- | -------------------------------------------------------- | 4245| boolean | 返回流的活跃状态,true为活跃,false为不活跃。 | 4246 4247**错误码:** 4248 4249以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4250 4251| 错误码ID | 错误信息 | 4252| ------- | --------------------------------------------| 4253| 6800101 | invalid parameter error | 4254 4255**示例:** 4256 4257```ts 4258import { BusinessError } from '@ohos.base'; 4259 4260try { 4261 let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA); 4262 console.info(`Indicate that the active status of the stream is obtained ${value}.`); 4263} catch (err) { 4264 let error = err as BusinessError; 4265 console.error(`Failed to obtain the active status of the stream ${error}.`); 4266} 4267``` 4268 4269### getAudioEffectInfoArray<sup>10+</sup> 4270 4271getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void 4272 4273获取当前音效模式的信息。使用callback异步回调。 4274 4275**系统能力**: SystemCapability.Multimedia.Audio.Renderer 4276 4277**参数:** 4278 4279| 参数名 | 类型 | 必填 | 说明 | 4280| -------- | ----------------------------------- | -------- | --------------------------- | 4281| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 4282| callback | AsyncCallback<[AudioEffectInfoArray](#audioeffectinfoarray10)> | 是 | 回调函数,返回当前音效模式的信息。| 4283 4284**错误码:** 4285 4286以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4287 4288| 错误码ID | 错误信息 | 4289| ------- | --------------------------------------------| 4290| 6800101 | Invalid parameter error. Return by callback.| 4291 4292**示例:** 4293 4294```ts 4295import { BusinessError } from '@ohos.base'; 4296audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA, async (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => { 4297 console.info('getAudioEffectInfoArray **** Get Callback Called ****'); 4298 if (err) { 4299 console.error(`getAudioEffectInfoArray :ERROR: ${err}`); 4300 return; 4301 } else { 4302 console.info(`The effect modes are: ${audioEffectInfoArray}`); 4303 } 4304}); 4305``` 4306 4307### getAudioEffectInfoArray<sup>10+</sup> 4308 4309getAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray> 4310 4311获取当前音效模式的信息。使用Promise异步回调。 4312 4313**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4314 4315**参数:** 4316 4317| 参数名 | 类型 | 必填 | 说明 | 4318| -------- | ----------------------------------- | -------- | --------------------------- | 4319| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 4320 4321**返回值:** 4322 4323| 类型 | 说明 | 4324| --------------------------------------------------------------------------| --------------------------------------- | 4325| Promise<[AudioEffectInfoArray](#audioeffectinfoarray10)> | Promise对象,返回当前音效模式的信息。 | 4326 4327**错误码:** 4328 4329以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4330 4331| 错误码ID | 错误信息 | 4332| ------- | --------------------------------------------| 4333| 6800101 | Invalid parameter error. Return by promise. | 4334 4335**示例:** 4336 4337```ts 4338import { BusinessError } from '@ohos.base'; 4339audioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MEDIA).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => { 4340 console.info('getAudioEffectInfoArray ######### Get Promise is called ##########'); 4341 console.info(`The effect modes are: ${audioEffectInfoArray}`); 4342}).catch((err: BusinessError) => { 4343 console.error(`getAudioEffectInfoArray :ERROR: ${err}`); 4344}); 4345``` 4346 4347### getAudioEffectInfoArraySync<sup>10+</sup> 4348 4349getAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray 4350 4351获取当前音效模式的信息,同步返回结果。 4352 4353**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4354 4355**参数:** 4356 4357| 参数名 | 类型 | 必填 | 说明 | 4358| -------- | ----------------------------------- | -------- | --------------------------- | 4359| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 4360 4361**返回值:** 4362 4363| 类型 | 说明 | 4364| --------------------------------------------------------------------------| --------------------------------------- | 4365| [AudioEffectInfoArray](#audioeffectinfoarray10) | 返回当前音效模式的信息。 | 4366 4367**错误码:** 4368 4369以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4370 4371| 错误码ID | 错误信息 | 4372| ------- | --------------------------------------------| 4373| 6800101 | invalid parameter error | 4374 4375**示例:** 4376 4377```ts 4378import { BusinessError } from '@ohos.base'; 4379 4380try { 4381 let audioEffectInfoArray: audio.AudioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MEDIA); 4382 console.info(`The effect modes are: ${audioEffectInfoArray}`); 4383} catch (err) { 4384 let error = err as BusinessError; 4385 console.error(`getAudioEffectInfoArraySync ERROR: ${error}`); 4386} 4387``` 4388 4389## AudioRoutingManager<sup>9+</sup> 4390 4391音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。 4392 4393### getDevices<sup>9+</sup> 4394 4395getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void 4396 4397获取音频设备列表,使用callback方式异步返回结果。 4398 4399**系统能力:** SystemCapability.Multimedia.Audio.Device 4400 4401**参数:** 4402 4403| 参数名 | 类型 | 必填 | 说明 | 4404| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 4405| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4406| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调,返回设备列表。 | 4407 4408**示例:** 4409 4410```ts 4411import { BusinessError } from '@ohos.base'; 4412audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => { 4413 if (err) { 4414 console.error(`Failed to obtain the device list. ${err}`); 4415 return; 4416 } 4417 console.info('Callback invoked to indicate that the device list is obtained.'); 4418}); 4419``` 4420 4421### getDevices<sup>9+</sup> 4422 4423getDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> 4424 4425获取音频设备列表,使用Promise方式异步返回结果。 4426 4427**系统能力:** SystemCapability.Multimedia.Audio.Device 4428 4429**参数:** 4430 4431| 参数名 | 类型 | 必填 | 说明 | 4432| ---------- | ------------------------- | ---- | ---------------- | 4433| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4434 4435**返回值:** 4436 4437| 类型 | 说明 | 4438| ------------------------------------------------------------ | ------------------------- | 4439| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise回调返回设备列表。 | 4440 4441**示例:** 4442 4443```ts 4444audioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => { 4445 console.info('Promise returned to indicate that the device list is obtained.'); 4446}); 4447``` 4448 4449### getDevicesSync<sup>10+</sup> 4450 4451getDevicesSync(deviceFlag: DeviceFlag): AudioDeviceDescriptors 4452 4453获取音频设备列表,同步返回结果。 4454 4455**系统能力:** SystemCapability.Multimedia.Audio.Device 4456 4457**参数:** 4458 4459| 参数名 | 类型 | 必填 | 说明 | 4460| ---------- | ------------------------- | ---- | ---------------- | 4461| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4462 4463**返回值:** 4464 4465| 类型 | 说明 | 4466| ------------------------------------------------------------ | ------------------------- | 4467| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回设备列表。 | 4468 4469**错误码:** 4470 4471以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4472 4473| 错误码ID | 错误信息 | 4474| ------- | --------------------------------------------| 4475| 6800101 | invalid parameter error | 4476 4477**示例:** 4478 4479```ts 4480import { BusinessError } from '@ohos.base'; 4481 4482try { 4483 let data: audio.AudioDeviceDescriptors = audioRoutingManager.getDevicesSync(audio.DeviceFlag.OUTPUT_DEVICES_FLAG); 4484 console.info(`Indicate that the device list is obtained ${data}`); 4485} catch (err) { 4486 let error = err as BusinessError; 4487 console.error(`Failed to obtain the device list. ${error}`); 4488} 4489``` 4490 4491### on('deviceChange')<sup>9+</sup> 4492 4493on(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction\>): void 4494 4495设备更改。音频设备连接状态变化。 4496 4497**系统能力:** SystemCapability.Multimedia.Audio.Device 4498 4499**参数:** 4500 4501| 参数名 | 类型 | 必填 | 说明 | 4502| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 4503| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | 4504| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4505| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是 | 获取设备更新详情。 | 4506 4507**错误码:** 4508 4509以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4510 4511| 错误码ID | 错误信息 | 4512| ------- | --------------------------------------------| 4513| 6800101 | if input parameter value error | 4514 4515**示例:** 4516 4517```ts 4518audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => { 4519 console.info('device change type : ' + deviceChanged.type); 4520 console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length); 4521 console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); 4522 console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); 4523}); 4524``` 4525 4526### off('deviceChange')<sup>9+</sup> 4527 4528off(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void 4529 4530取消订阅音频设备连接变化事件。 4531 4532**系统能力:** SystemCapability.Multimedia.Audio.Device 4533 4534**参数:** 4535 4536| 参数名 | 类型 | 必填 | 说明 | 4537| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 4538| type | string | 是 | 订阅的事件的类型。支持事件:'deviceChange' | 4539| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 获取设备更新详情。 | 4540 4541**错误码:** 4542 4543以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4544 4545| 错误码ID | 错误信息 | 4546| ------- | --------------------------------------------| 4547| 6800101 | if input parameter value error | 4548 4549**示例:** 4550 4551```ts 4552audioRoutingManager.off('deviceChange'); 4553``` 4554 4555### selectInputDevice<sup>9+</sup> 4556 4557selectInputDevice(inputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void 4558 4559选择音频输入设备,当前只能选择一个输入设备,使用callback方式异步返回结果。 4560 4561**系统接口:** 该接口为系统接口 4562 4563**系统能力:** SystemCapability.Multimedia.Audio.Device 4564 4565**参数:** 4566 4567| 参数名 | 类型 | 必填 | 说明 | 4568| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4569| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输入设备类。 | 4570| callback | AsyncCallback<void> | 是 | 回调,返回选择输入设备结果。 | 4571 4572**示例:** 4573```ts 4574import audio from '@ohos.multimedia.audio'; 4575import { BusinessError } from '@ohos.base'; 4576let inputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 4577 deviceRole : audio.DeviceRole.INPUT_DEVICE, 4578 deviceType : audio.DeviceType.EARPIECE, 4579 id : 1, 4580 name : "", 4581 address : "", 4582 sampleRates : [44100], 4583 channelCounts : [2], 4584 channelMasks : [0], 4585 networkId : audio.LOCAL_NETWORK_ID, 4586 interruptGroupId : 1, 4587 volumeGroupId : 1, 4588 displayName : "", 4589}]; 4590 4591async function selectInputDevice(){ 4592 audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor, (err: BusinessError) => { 4593 if (err) { 4594 console.error(`Result ERROR: ${err}`); 4595 } else { 4596 console.info('Select input devices result callback: SUCCESS'); 4597 } 4598 }); 4599} 4600``` 4601 4602### selectInputDevice<sup>9+</sup> 4603 4604selectInputDevice(inputAudioDevices: AudioDeviceDescriptors): Promise<void> 4605 4606**系统接口:** 该接口为系统接口 4607 4608选择音频输入设备,当前只能选择一个输入设备,使用Promise方式异步返回结果。 4609 4610**系统能力:** SystemCapability.Multimedia.Audio.Device 4611 4612**参数:** 4613 4614| 参数名 | 类型 | 必填 | 说明 | 4615| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4616| inputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输入设备类。 | 4617 4618**返回值:** 4619 4620| 类型 | 说明 | 4621| --------------------- | --------------------------- | 4622| Promise<void> | Promise返回选择输入设备结果。 | 4623 4624**示例:** 4625 4626```ts 4627import audio from '@ohos.multimedia.audio'; 4628import { BusinessError } from '@ohos.base'; 4629let inputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 4630 deviceRole : audio.DeviceRole.INPUT_DEVICE, 4631 deviceType : audio.DeviceType.EARPIECE, 4632 id : 1, 4633 name : "", 4634 address : "", 4635 sampleRates : [44100], 4636 channelCounts : [2], 4637 channelMasks : [0], 4638 networkId : audio.LOCAL_NETWORK_ID, 4639 interruptGroupId : 1, 4640 volumeGroupId : 1, 4641 displayName : "", 4642}]; 4643 4644async function getRoutingManager(){ 4645 audioRoutingManager.selectInputDevice(inputAudioDeviceDescriptor).then(() => { 4646 console.info('Select input devices result promise: SUCCESS'); 4647 }).catch((err: BusinessError) => { 4648 console.error(`Result ERROR: ${err}`); 4649 }); 4650} 4651``` 4652 4653### setCommunicationDevice<sup>9+</sup> 4654 4655setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void 4656 4657设置通信设备激活状态,使用callback方式异步返回结果。 4658 4659**系统能力:** SystemCapability.Multimedia.Audio.Communication 4660 4661**参数:** 4662 4663| 参数名 | 类型 | 必填 | 说明 | 4664| ---------- | ------------------------------------- | ---- | ------------------------ | 4665| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 音频设备类型。 | 4666| active | boolean | 是 | 设备激活状态。 | 4667| callback | AsyncCallback<void> | 是 | 回调返回设置成功或失败。 | 4668 4669**示例:** 4670 4671```ts 4672import { BusinessError } from '@ohos.base'; 4673audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err: BusinessError) => { 4674 if (err) { 4675 console.error(`Failed to set the active status of the device. ${err}`); 4676 return; 4677 } 4678 console.info('Callback invoked to indicate that the device is set to the active status.'); 4679}); 4680``` 4681 4682### setCommunicationDevice<sup>9+</sup> 4683 4684setCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void> 4685 4686设置通信设备激活状态,使用Promise方式异步返回结果。 4687 4688**系统能力:** SystemCapability.Multimedia.Audio.Communication 4689 4690**参数:** 4691 4692| 参数名 | 类型 | 必填 | 说明 | 4693| ---------- | ----------------------------------------------------- | ---- | ------------------ | 4694| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4695| active | boolean | 是 | 设备激活状态。 | 4696 4697**返回值:** 4698 4699| 类型 | 说明 | 4700| ------------------- | ------------------------------- | 4701| Promise<void> | Promise回调返回设置成功或失败。 | 4702 4703**示例:** 4704 4705```ts 4706audioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => { 4707 console.info('Promise returned to indicate that the device is set to the active status.'); 4708}); 4709``` 4710 4711### isCommunicationDeviceActive<sup>9+</sup> 4712 4713isCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void 4714 4715获取指定通信设备的激活状态,使用callback方式异步返回结果。 4716 4717**系统能力:** SystemCapability.Multimedia.Audio.Communication 4718 4719**参数:** 4720 4721| 参数名 | 类型 | 必填 | 说明 | 4722| ---------- | ---------------------------------------------------- | ---- | ------------------------ | 4723| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4724| callback | AsyncCallback<boolean> | 是 | 回调返回设备的激活状态。 | 4725 4726**示例:** 4727 4728```ts 4729import { BusinessError } from '@ohos.base'; 4730audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err: BusinessError, value: boolean) => { 4731 if (err) { 4732 console.error(`Failed to obtain the active status of the device. ${err}`); 4733 return; 4734 } 4735 console.info('Callback invoked to indicate that the active status of the device is obtained.'); 4736}); 4737``` 4738 4739### isCommunicationDeviceActive<sup>9+</sup> 4740 4741isCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean> 4742 4743获取指定通信设备的激活状态,使用Promise方式异步返回结果。 4744 4745**系统能力:** SystemCapability.Multimedia.Audio.Communication 4746 4747**参数:** 4748 4749| 参数名 | 类型 | 必填 | 说明 | 4750| ---------- | ---------------------------------------------------- | ---- | ------------------ | 4751| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4752 4753**返回值:** 4754 4755| Type | Description | 4756| ---------------------- | ------------------------------- | 4757| Promise<boolean> | Promise回调返回设备的激活状态。 | 4758 4759**示例:** 4760 4761```ts 4762audioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value: boolean) => { 4763 console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`); 4764}); 4765``` 4766 4767### isCommunicationDeviceActiveSync<sup>10+</sup> 4768 4769isCommunicationDeviceActiveSync(deviceType: CommunicationDeviceType): boolean 4770 4771获取指定通信设备的激活状态,同步返回结果。 4772 4773**系统能力:** SystemCapability.Multimedia.Audio.Communication 4774 4775**参数:** 4776 4777| 参数名 | 类型 | 必填 | 说明 | 4778| ---------- | ---------------------------------------------------- | ---- | ------------------ | 4779| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4780 4781**返回值:** 4782 4783| Type | Description | 4784| ---------------------- | ------------------------------- | 4785| boolean | 返回设备的激活状态。 | 4786 4787**错误码:** 4788 4789以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 4790 4791| 错误码ID | 错误信息 | 4792| ------- | --------------------------------------------| 4793| 6800101 | invalid parameter error | 4794 4795**示例:** 4796 4797```ts 4798import { BusinessError } from '@ohos.base'; 4799 4800try { 4801 let value: boolean = audioRoutingManager.isCommunicationDeviceActiveSync(audio.CommunicationDeviceType.SPEAKER); 4802 console.info(`Indicate that the active status of the device is obtained ${value}.`); 4803} catch (err) { 4804 let error = err as BusinessError; 4805 console.error(`Failed to obtain the active status of the device ${error}.`); 4806} 4807``` 4808 4809### selectOutputDevice<sup>9+</sup> 4810 4811selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void 4812 4813选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。 4814 4815**系统接口:** 该接口为系统接口 4816 4817**系统能力:** SystemCapability.Multimedia.Audio.Device 4818 4819**参数:** 4820 4821| 参数名 | 类型 | 必填 | 说明 | 4822| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4823| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输出设备类。 | 4824| callback | AsyncCallback<void> | 是 | 回调,返回获取输出设备结果。 | 4825 4826**示例:** 4827```ts 4828import audio from '@ohos.multimedia.audio'; 4829import { BusinessError } from '@ohos.base'; 4830let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 4831 deviceRole : audio.DeviceRole.OUTPUT_DEVICE, 4832 deviceType : audio.DeviceType.SPEAKER, 4833 id : 1, 4834 name : "", 4835 address : "", 4836 sampleRates : [44100], 4837 channelCounts : [2], 4838 channelMasks : [0], 4839 networkId : audio.LOCAL_NETWORK_ID, 4840 interruptGroupId : 1, 4841 volumeGroupId : 1, 4842 displayName : "", 4843}]; 4844 4845async function selectOutputDevice(){ 4846 audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor, (err: BusinessError) => { 4847 if (err) { 4848 console.error(`Result ERROR: ${err}`); 4849 } else { 4850 console.info('Select output devices result callback: SUCCESS'); } 4851 }); 4852} 4853``` 4854 4855### selectOutputDevice<sup>9+</sup> 4856 4857selectOutputDevice(outputAudioDevices: AudioDeviceDescriptors): Promise<void> 4858 4859**系统接口:** 该接口为系统接口 4860 4861选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。 4862 4863**系统能力:** SystemCapability.Multimedia.Audio.Device 4864 4865**参数:** 4866 4867| 参数名 | 类型 | 必填 | 说明 | 4868| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4869| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输出设备类。 | 4870 4871**返回值:** 4872 4873| 类型 | 说明 | 4874| --------------------- | --------------------------- | 4875| Promise<void> | Promise返回选择输出设备结果。 | 4876 4877**示例:** 4878 4879```ts 4880import audio from '@ohos.multimedia.audio'; 4881import { BusinessError } from '@ohos.base'; 4882let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 4883 deviceRole : audio.DeviceRole.OUTPUT_DEVICE, 4884 deviceType : audio.DeviceType.SPEAKER, 4885 id : 1, 4886 name : "", 4887 address : "", 4888 sampleRates : [44100], 4889 channelCounts : [2], 4890 channelMasks : [0], 4891 networkId : audio.LOCAL_NETWORK_ID, 4892 interruptGroupId : 1, 4893 volumeGroupId : 1, 4894 displayName : "", 4895}]; 4896 4897async function selectOutputDevice(){ 4898 audioRoutingManager.selectOutputDevice(outputAudioDeviceDescriptor).then(() => { 4899 console.info('Select output devices result promise: SUCCESS'); 4900 }).catch((err: BusinessError) => { 4901 console.error(`Result ERROR: ${err}`); 4902 }); 4903} 4904``` 4905 4906### selectOutputDeviceByFilter<sup>9+</sup> 4907 4908selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors, callback: AsyncCallback<void>): void 4909 4910**系统接口:** 该接口为系统接口 4911 4912根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用callback方式异步返回结果。 4913 4914**系统能力:** SystemCapability.Multimedia.Audio.Device 4915 4916**参数:** 4917 4918| 参数名 | 类型 | 必填 | 说明 | 4919| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4920| filter | [AudioRendererFilter](#audiorendererfilter9) | 是 | 过滤条件类。 | 4921| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输出设备类。 | 4922| callback | AsyncCallback<void> | 是 | 回调,返回获取输出设备结果。 | 4923 4924**示例:** 4925```ts 4926import audio from '@ohos.multimedia.audio'; 4927import { BusinessError } from '@ohos.base'; 4928let outputAudioRendererFilter: audio.AudioRendererFilter = { 4929 uid : 20010041, 4930 rendererInfo : { 4931 content : audio.ContentType.CONTENT_TYPE_MUSIC, 4932 usage : audio.StreamUsage.STREAM_USAGE_MEDIA, 4933 rendererFlags : 0 4934 }, 4935 rendererId : 0 4936}; 4937 4938let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 4939 deviceRole : audio.DeviceRole.OUTPUT_DEVICE, 4940 deviceType : audio.DeviceType.SPEAKER, 4941 id : 1, 4942 name : "", 4943 address : "", 4944 sampleRates : [44100], 4945 channelCounts : [2], 4946 channelMasks : [0], 4947 networkId : audio.LOCAL_NETWORK_ID, 4948 interruptGroupId : 1, 4949 volumeGroupId : 1, 4950 displayName : "", 4951}]; 4952 4953async function selectOutputDeviceByFilter(){ 4954 audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor, (err: BusinessError) => { 4955 if (err) { 4956 console.error(`Result ERROR: ${err}`); 4957 } else { 4958 console.info('Select output devices by filter result callback: SUCCESS'); } 4959 }); 4960} 4961``` 4962 4963### selectOutputDeviceByFilter<sup>9+</sup> 4964 4965selectOutputDeviceByFilter(filter: AudioRendererFilter, outputAudioDevices: AudioDeviceDescriptors): Promise<void> 4966 4967**系统接口:** 该接口为系统接口 4968 4969根据过滤条件,选择音频输出设备,当前只能选择一个输出设备,使用Promise方式异步返回结果。 4970 4971**系统能力:** SystemCapability.Multimedia.Audio.Device 4972 4973**参数:** 4974 4975| 参数名 | 类型 | 必填 | 说明 | 4976| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 4977| filter | [AudioRendererFilter](#audiorendererfilter9) | 是 | 过滤条件类。 | 4978| outputAudioDevices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 输出设备类。 | 4979 4980**返回值:** 4981 4982| 类型 | 说明 | 4983| --------------------- | --------------------------- | 4984| Promise<void> | Promise返回选择输出设备结果。 | 4985 4986**示例:** 4987 4988```ts 4989import audio from '@ohos.multimedia.audio'; 4990import { BusinessError } from '@ohos.base'; 4991let outputAudioRendererFilter: audio.AudioRendererFilter = { 4992 uid : 20010041, 4993 rendererInfo : { 4994 content : audio.ContentType.CONTENT_TYPE_MUSIC, 4995 usage : audio.StreamUsage.STREAM_USAGE_MEDIA, 4996 rendererFlags : 0 4997 }, 4998 rendererId : 0 4999}; 5000 5001let outputAudioDeviceDescriptor: audio.AudioDeviceDescriptors = [{ 5002 deviceRole : audio.DeviceRole.OUTPUT_DEVICE, 5003 deviceType : audio.DeviceType.SPEAKER, 5004 id : 1, 5005 name : "", 5006 address : "", 5007 sampleRates : [44100], 5008 channelCounts : [2], 5009 channelMasks : [0], 5010 networkId : audio.LOCAL_NETWORK_ID, 5011 interruptGroupId : 1, 5012 volumeGroupId : 1, 5013 displayName : "", 5014}]; 5015 5016async function selectOutputDeviceByFilter(){ 5017 audioRoutingManager.selectOutputDeviceByFilter(outputAudioRendererFilter, outputAudioDeviceDescriptor).then(() => { 5018 console.info('Select output devices by filter result promise: SUCCESS'); 5019 }).catch((err: BusinessError) => { 5020 console.error(`Result ERROR: ${err}`); 5021 }) 5022} 5023``` 5024 5025### getPreferOutputDeviceForRendererInfo<sup>10+</sup> 5026 5027getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void 5028 5029根据音频信息,返回优先级最高的输出设备,使用callback方式异步返回结果。 5030 5031**系统能力:** SystemCapability.Multimedia.Audio.Device 5032 5033**参数:** 5034 5035| 参数名 | 类型 | 必填 | 说明 | 5036| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 5037| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 5038| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调,返回优先级最高的输出设备信息。 | 5039 5040**错误码:** 5041 5042以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5043 5044| 错误码ID | 错误信息 | 5045| ------- |--------------------------------------------------| 5046| 6800101 | Input parameter value error. Return by callback. | 5047| 6800301 | System error. Return by callback. | 5048 5049**示例:** 5050```ts 5051import audio from '@ohos.multimedia.audio'; 5052import { BusinessError } from '@ohos.base'; 5053let rendererInfo: audio.AudioRendererInfo = { 5054 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 5055 rendererFlags : 0 5056} 5057 5058async function getPreferOutputDevice() { 5059 audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => { 5060 if (err) { 5061 console.error(`Result ERROR: ${err}`); 5062 } else { 5063 console.info(`device descriptor: ${desc}`); 5064 } 5065 }); 5066} 5067``` 5068 5069### getPreferOutputDeviceForRendererInfo<sup>10+</sup> 5070getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors> 5071 5072根据音频信息,返回优先级最高的输出设备,使用promise方式异步返回结果。 5073 5074**系统能力:** SystemCapability.Multimedia.Audio.Device 5075 5076**参数:** 5077 5078| 参数名 | 类型 | 必填 | 说明 | 5079| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 5080| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 5081 5082**返回值:** 5083 5084| 类型 | 说明 | 5085| --------------------- | --------------------------- | 5086| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise返回优先级最高的输出设备信息。 | 5087 5088**错误码:** 5089 5090以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5091 5092| 错误码ID | 错误信息 | 5093| ------- |-------------------------------------------------| 5094| 6800101 | Input parameter value error. Return by promise. | 5095| 6800301 | System error. Return by promise. | 5096 5097**示例:** 5098 5099```ts 5100import audio from '@ohos.multimedia.audio'; 5101import { BusinessError } from '@ohos.base'; 5102let rendererInfo: audio.AudioRendererInfo = { 5103 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 5104 rendererFlags : 0 5105} 5106 5107async function getPreferOutputDevice() { 5108 audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc: audio.AudioDeviceDescriptors) => { 5109 console.info(`device descriptor: ${desc}`); 5110 }).catch((err: BusinessError) => { 5111 console.error(`Result ERROR: ${err}`); 5112 }) 5113} 5114``` 5115### getPreferredOutputDeviceForRendererInfoSync<sup>10+</sup> 5116getPreferredOutputDeviceForRendererInfoSync(rendererInfo: AudioRendererInfo): AudioDeviceDescriptors 5117 5118根据音频信息,返回优先级最高的输出设备,同步返回结果。 5119 5120**系统能力:** SystemCapability.Multimedia.Audio.Device 5121 5122**参数:** 5123 5124| 参数名 | 类型 | 必填 | 说明 | 5125| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 5126| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 5127 5128**返回值:** 5129 5130| 类型 | 说明 | 5131| --------------------- | --------------------------- | 5132| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回优先级最高的输出设备信息。 | 5133 5134**错误码:** 5135 5136以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5137 5138| 错误码ID | 错误信息 | 5139| ------- | --------------------------------------------| 5140| 6800101 | invalid parameter error. | 5141 5142**示例:** 5143 5144```ts 5145import audio from '@ohos.multimedia.audio'; 5146import { BusinessError } from '@ohos.base'; 5147 5148let rendererInfo: audio.AudioRendererInfo = { 5149 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 5150 rendererFlags : 0 5151} 5152 5153try { 5154 let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredOutputDeviceForRendererInfoSync(rendererInfo); 5155 console.info(`device descriptor: ${desc}`); 5156} catch (err) { 5157 let error = err as BusinessError; 5158 console.error(`Result ERROR: ${error}`); 5159} 5160``` 5161 5162### on('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup> 5163 5164on(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors\>): void 5165 5166订阅最高优先级输出设备变化事件,使用callback获取最高优先级输出设备。 5167 5168**系统能力:** SystemCapability.Multimedia.Audio.Device 5169 5170**参数:** 5171 5172| 参数名 | 类型 | 必填 | 说明 | 5173| :------- | :--------------------------------------------------- | :--- |:--------------------------------------------------------| 5174| type | string | 是 | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' | 5175| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 5176| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是 | 获取优先级最高的输出设备信息。 | 5177 5178**错误码:** 5179 5180以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5181 5182| 错误码ID | 错误信息 | 5183| ------- | --------------------------------------------| 5184| 6800101 | if input parameter value error | 5185 5186**示例:** 5187 5188```ts 5189import audio from '@ohos.multimedia.audio'; 5190let rendererInfo: audio.AudioRendererInfo = { 5191 usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 5192 rendererFlags : 0 5193} 5194 5195audioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => { 5196 console.info(`device descriptor: ${desc}`); 5197}); 5198``` 5199 5200### off('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup> 5201 5202off(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors\>): void 5203 5204取消订阅最高优先级输出音频设备变化事件。 5205 5206**系统能力:** SystemCapability.Multimedia.Audio.Device 5207 5208**参数:** 5209 5210| 参数名 | 类型 | 必填 | 说明 | 5211| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 5212| type | string | 是 | 订阅的事件的类型。支持事件:'preferOutputDeviceChangeForRendererInfo' | 5213| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 监听方法的回调函数。 | 5214 5215**错误码:** 5216 5217以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5218 5219| 错误码ID | 错误信息 | 5220| ------- | --------------------------------------------| 5221| 6800101 | if input parameter value error | 5222 5223**示例:** 5224 5225```ts 5226audioRoutingManager.off('preferOutputDeviceChangeForRendererInfo'); 5227``` 5228 5229### getPreferredInputDeviceForCapturerInfo<sup>10+</sup> 5230 5231getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void 5232 5233根据音频信息,返回优先级最高的输入设备,使用callback方式异步返回结果。 5234 5235**系统能力:** SystemCapability.Multimedia.Audio.Device 5236 5237**参数:** 5238 5239| 参数名 | 类型 | 必填 | 说明 | 5240| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 5241| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 5242| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调,返回优先级最高的输入设备信息。 | 5243 5244**错误码:** 5245 5246以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5247 5248| 错误码ID | 错误信息 | 5249| ------- | --------------------------------------------| 5250| 6800101 | Invalid parameter error. Return by callback.| 5251| 6800301 | System error. Return by callback. | 5252 5253**示例:** 5254```ts 5255import audio from '@ohos.multimedia.audio'; 5256import { BusinessError } from '@ohos.base'; 5257let capturerInfo: audio.AudioCapturerInfo = { 5258 source: audio.SourceType.SOURCE_TYPE_MIC, 5259 capturerFlags: 0 5260} 5261 5262audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => { 5263 if (err) { 5264 console.error(`Result ERROR: ${err}`); 5265 } else { 5266 console.info(`device descriptor: ${desc}`); 5267 } 5268}); 5269``` 5270 5271### getPreferredInputDeviceForCapturerInfo<sup>10+</sup> 5272 5273getPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo): Promise<AudioDeviceDescriptors> 5274 5275根据音频信息,返回优先级最高的输入设备,使用promise方式异步返回结果。 5276 5277**系统能力:** SystemCapability.Multimedia.Audio.Device 5278 5279**参数:** 5280 5281| 参数名 | 类型 | 必填 | 说明 | 5282| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 5283| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 5284 5285**返回值:** 5286 5287| 类型 | 说明 | 5288| --------------------- | --------------------------- | 5289| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise返回优先级最高的输入设备信息。 | 5290 5291**错误码:** 5292 5293以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5294 5295| 错误码ID | 错误信息 | 5296| ------- | --------------------------------------------| 5297| 6800101 | Invalid parameter error. Return by promise. | 5298| 6800301 | System error. Return by promise. | 5299 5300**示例:** 5301 5302```ts 5303import audio from '@ohos.multimedia.audio'; 5304import { BusinessError } from '@ohos.base'; 5305let capturerInfo: audio.AudioCapturerInfo = { 5306 source: audio.SourceType.SOURCE_TYPE_MIC, 5307 capturerFlags: 0 5308} 5309 5310audioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo).then((desc: audio.AudioDeviceDescriptors) => { 5311 console.info(`device descriptor: ${desc}`); 5312}).catch((err: BusinessError) => { 5313 console.error(`Result ERROR: ${err}`); 5314}); 5315``` 5316 5317### getPreferredInputDeviceForCapturerInfoSync<sup>10+</sup> 5318 5319getPreferredInputDeviceForCapturerInfoSync(capturerInfo: AudioCapturerInfo): AudioDeviceDescriptors 5320 5321根据音频信息,返回优先级最高的输入设备,同步返回结果。 5322 5323**系统能力:** SystemCapability.Multimedia.Audio.Device 5324 5325**参数:** 5326 5327| 参数名 | 类型 | 必填 | 说明 | 5328| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 5329| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 5330 5331**返回值:** 5332 5333| 类型 | 说明 | 5334| --------------------- | --------------------------- | 5335| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回优先级最高的输入设备信息。 | 5336 5337**错误码:** 5338 5339以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5340 5341| 错误码ID | 错误信息 | 5342| ------- | --------------------------------------------| 5343| 6800101 | invalid parameter error | 5344 5345**示例:** 5346 5347```ts 5348import audio from '@ohos.multimedia.audio'; 5349import { BusinessError } from '@ohos.base'; 5350 5351let capturerInfo: audio.AudioCapturerInfo = { 5352 source: audio.SourceType.SOURCE_TYPE_MIC, 5353 capturerFlags: 0 5354} 5355 5356try { 5357 let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredInputDeviceForCapturerInfoSync(capturerInfo); 5358 console.info(`device descriptor: ${desc}`); 5359} catch (err) { 5360 let error = err as BusinessError; 5361 console.error(`Result ERROR: ${error}`); 5362} 5363``` 5364 5365### on('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup> 5366 5367on(type: 'preferredInputDeviceChangeForCapturerInfo', capturerInfo: AudioCapturerInfo, callback: Callback<AudioDeviceDescriptors\>): void 5368 5369订阅最高优先级输入设备变化事件,使用callback获取最高优先级输入设备。 5370 5371**系统能力:** SystemCapability.Multimedia.Audio.Device 5372 5373**参数:** 5374 5375| 参数名 | 类型 | 必填 | 说明 | 5376| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 5377| type | string | 是 | 订阅的事件的类型。支持事件:'preferredInputDeviceChangeForCapturerInfo' | 5378| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 5379| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是 | 获取优先级最高的输入设备信息。 | 5380 5381**错误码:** 5382 5383以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5384 5385| 错误码ID | 错误信息 | 5386| ------- | --------------------------------------------| 5387| 6800101 | if input parameter value error | 5388 5389**示例:** 5390 5391```ts 5392import audio from '@ohos.multimedia.audio'; 5393let capturerInfo: audio.AudioCapturerInfo = { 5394 source: audio.SourceType.SOURCE_TYPE_MIC, 5395 capturerFlags: 0 5396} 5397 5398audioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, (desc: audio.AudioDeviceDescriptors) => { 5399 console.info(`device descriptor: ${desc}`); 5400}); 5401``` 5402 5403### off('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup> 5404 5405off(type: 'preferredInputDeviceChangeForCapturerInfo', callback?: Callback<AudioDeviceDescriptors\>): void 5406 5407取消订阅最高优先级输入音频设备变化事件。 5408 5409**系统能力:** SystemCapability.Multimedia.Audio.Device 5410 5411**参数:** 5412 5413| 参数名 | 类型 | 必填 | 说明 | 5414| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 5415| type | string | 是 | 订阅的事件的类型。支持事件:'preferredInputDeviceChangeForCapturerInfo' | 5416| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 监听方法的回调函数。 | 5417 5418**错误码:** 5419 5420以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5421 5422| 错误码ID | 错误信息 | 5423| ------- | --------------------------------------------| 5424| 6800101 | if input parameter value error | 5425 5426**示例:** 5427 5428```ts 5429audioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo'); 5430``` 5431 5432## AudioRendererChangeInfoArray<sup>9+</sup> 5433 5434数组类型,AudioRenderChangeInfo数组,只读。 5435 5436**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5437 5438## AudioRendererChangeInfo<sup>9+</sup> 5439 5440描述音频渲染器更改信息。 5441 5442**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5443 5444| 名称 | 类型 | 可读 | 可写 | 说明 | 5445| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | 5446| streamId | number | 是 | 否 | 音频流唯一id。 | 5447| clientUid | number | 是 | 否 | 音频渲染器客户端应用程序的Uid。<br/>此接口为系统接口。 | 5448| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 否 | 音频渲染器信息。 | 5449| rendererState | [AudioState](#audiostate) | 是 | 否 | 音频状态。<br/>此接口为系统接口。| 5450| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 否 | 音频设备描述。| 5451 5452**示例:** 5453 5454```ts 5455import audio from '@ohos.multimedia.audio'; 5456 5457const audioManager = audio.getAudioManager(); 5458let audioStreamManager = audioManager.getStreamManager(); 5459let resultFlag = false; 5460 5461audioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => { 5462 for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 5463 console.info(`## RendererChange on is called for ${i} ##`); 5464 console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`); 5465 console.info(`ClientUid for ${i} is: ${AudioRendererChangeInfoArray[i].clientUid}`); 5466 console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`); 5467 console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`); 5468 console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`); 5469 console.info(`State for ${i} is: ${AudioRendererChangeInfoArray[i].rendererState}`); 5470 let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors; 5471 for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) { 5472 console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`); 5473 console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 5474 console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 5475 console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`); 5476 console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`); 5477 console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 5478 console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 5479 console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 5480 } 5481 if (AudioRendererChangeInfoArray[i].rendererState == 1 && devDescriptor != null) { 5482 resultFlag = true; 5483 console.info(`ResultFlag for ${i} is: ${resultFlag}`); 5484 } 5485 } 5486}); 5487``` 5488 5489 5490## AudioCapturerChangeInfoArray<sup>9+</sup> 5491 5492数组类型,AudioCapturerChangeInfo数组,只读。 5493 5494**系统能力:** SystemCapability.Multimedia.Audio.Capturer 5495 5496## AudioCapturerChangeInfo<sup>9+</sup> 5497 5498描述音频采集器更改信息。 5499 5500**系统能力:** SystemCapability.Multimedia.Audio.Capturer 5501 5502| 名称 | 类型 | 可读 | 可写 | 说明 | 5503| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | 5504| streamId | number | 是 | 否 | 音频流唯一id。 | 5505| clientUid | number | 是 | 否 | 音频采集器客户端应用程序的Uid。<br/>此接口为系统接口。 | 5506| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 否 | 音频采集器信息。 | 5507| capturerState | [AudioState](#audiostate) | 是 | 否 | 音频状态。<br/>此接口为系统接口。| 5508| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 否 | 音频设备描述。| 5509 5510**示例:** 5511 5512```ts 5513import audio from '@ohos.multimedia.audio'; 5514 5515const audioManager = audio.getAudioManager(); 5516let audioStreamManager = audioManager.getStreamManager(); 5517 5518let resultFlag = false; 5519audioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => { 5520 for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 5521 console.info(`## CapChange on is called for element ${i} ##`); 5522 console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 5523 console.info(`CUid for ${i} is: ${AudioCapturerChangeInfoArray[i].clientUid}`); 5524 console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 5525 console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 5526 console.info(`State for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerState}`); 5527 let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors; 5528 for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 5529 console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 5530 console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 5531 console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 5532 console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 5533 console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 5534 console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 5535 console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 5536 console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 5537 } 5538 if (AudioCapturerChangeInfoArray[i].capturerState == 1 && devDescriptor != null) { 5539 resultFlag = true; 5540 console.info(`ResultFlag for element ${i} is: ${resultFlag}`); 5541 } 5542 } 5543}); 5544``` 5545 5546## AudioEffectInfoArray<sup>10+</sup> 5547 5548待查询ContentType和StreamUsage组合场景下的音效模式数组类型,[AudioEffectMode](#audioeffectmode10)数组,只读。 5549 5550## AudioDeviceDescriptors 5551 5552设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。 5553 5554## AudioDeviceDescriptor 5555 5556描述音频设备。 5557 5558**系统能力:** SystemCapability.Multimedia.Audio.Device 5559 5560| 名称 | 类型 | 可读 | 可写 | 说明 | 5561| ----------------------------- | -------------------------- | ---- | ---- | ---------- | 5562| deviceRole | [DeviceRole](#devicerole) | 是 | 否 | 设备角色。 | 5563| deviceType | [DeviceType](#devicetype) | 是 | 否 | 设备类型。 | 5564| id<sup>9+</sup> | number | 是 | 否 | 设备id,唯一。 | 5565| name<sup>9+</sup> | string | 是 | 否 | 设备名称。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 | 5566| address<sup>9+</sup> | string | 是 | 否 | 设备地址。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 | 5567| sampleRates<sup>9+</sup> | Array<number> | 是 | 否 | 支持的采样率。 | 5568| channelCounts<sup>9+</sup> | Array<number> | 是 | 否 | 支持的通道数。 | 5569| channelMasks<sup>9+</sup> | Array<number> | 是 | 否 | 支持的通道掩码。 | 5570| displayName<sup>10+</sup> | string | 是 | 否 | 设备显示名。 | 5571| networkId<sup>9+</sup> | string | 是 | 否 | 设备组网的ID。<br/>此接口为系统接口。 | 5572| interruptGroupId<sup>9+</sup> | number | 是 | 否 | 设备所处的焦点组ID。<br/>此接口为系统接口。 | 5573| volumeGroupId<sup>9+</sup> | number | 是 | 否 | 设备所处的音量组ID。<br/>此接口为系统接口。 | 5574 5575**示例:** 5576 5577```ts 5578import audio from '@ohos.multimedia.audio'; 5579 5580function displayDeviceProp(value: audio.AudioDeviceDescriptor) { 5581 deviceRoleValue = value.deviceRole; 5582 deviceTypeValue = value.deviceType; 5583} 5584 5585let deviceRoleValue: audio.DeviceRole | undefined = undefined;; 5586let deviceTypeValue: audio.DeviceType | undefined = undefined;; 5587audio.getAudioManager().getDevices(1).then((value: audio.AudioDeviceDescriptors) => { 5588 console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG'); 5589 value.forEach(displayDeviceProp); 5590 if (deviceTypeValue != undefined && deviceRoleValue != undefined){ 5591 console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); 5592 } else { 5593 console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); 5594 } 5595}); 5596``` 5597 5598## AudioRendererFilter<sup>9+</sup> 5599 5600过滤条件类。在调用selectOutputDeviceByFilter接口前,需要先创建AudioRendererFilter实例。 5601 5602**系统接口:** 该接口为系统接口 5603 5604| 名称 | 类型 | 必填 | 说明 | 5605| -------------| ---------------------------------------- | ---- | -------------- | 5606| uid | number | 否 | 表示应用ID。<br> **系统能力:** SystemCapability.Multimedia.Audio.Core| 5607| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 否 | 表示渲染器信息。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer| 5608| rendererId | number | 否 | 音频流唯一id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Renderer| 5609 5610**示例:** 5611 5612```ts 5613import audio from '@ohos.multimedia.audio'; 5614let outputAudioRendererFilter: audio.AudioRendererFilter = { 5615 uid : 20010041, 5616 rendererInfo : { 5617 content : audio.ContentType.CONTENT_TYPE_MUSIC, 5618 usage : audio.StreamUsage.STREAM_USAGE_MEDIA, 5619 rendererFlags : 0 5620 }, 5621 rendererId : 0 5622}; 5623``` 5624 5625## AudioRenderer<sup>8+</sup> 5626 5627提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。 5628 5629### 属性 5630 5631**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5632 5633| 名称 | 类型 | 可读 | 可写 | 说明 | 5634| ----- | -------------------------- | ---- | ---- | ------------------ | 5635| state<sup>8+</sup> | [AudioState](#audiostate8) | 是 | 否 | 音频渲染器的状态。 | 5636 5637**示例:** 5638 5639```ts 5640import audio from '@ohos.multimedia.audio'; 5641let state: audio.AudioState = audioRenderer.state; 5642``` 5643 5644### getRendererInfo<sup>8+</sup> 5645 5646getRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void 5647 5648获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。 5649 5650**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5651 5652**参数:** 5653 5654| 参数名 | 类型 | 必填 | 说明 | 5655| :------- | :------------------------------------------------------- | :--- | :--------------------- | 5656| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是 | 返回音频渲染器的信息。 | 5657 5658**示例:** 5659 5660```ts 5661import { BusinessError } from '@ohos.base'; 5662audioRenderer.getRendererInfo((err: BusinessError, rendererInfo: audio.AudioRendererInfo) => { 5663 console.info('Renderer GetRendererInfo:'); 5664 console.info(`Renderer content: ${rendererInfo.content}`); 5665 console.info(`Renderer usage: ${rendererInfo.usage}`); 5666 console.info(`Renderer flags: ${rendererInfo.rendererFlags}`); 5667}); 5668``` 5669 5670### getRendererInfo<sup>8+</sup> 5671 5672getRendererInfo(): Promise<AudioRendererInfo\> 5673 5674获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。 5675 5676**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5677 5678**返回值:** 5679 5680| 类型 | 说明 | 5681| -------------------------------------------------- | ------------------------------- | 5682| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise用于返回音频渲染器信息。 | 5683 5684**示例:** 5685 5686```ts 5687import { BusinessError } from '@ohos.base'; 5688audioRenderer.getRendererInfo().then((rendererInfo: audio.AudioRendererInfo) => { 5689 console.info('Renderer GetRendererInfo:'); 5690 console.info(`Renderer content: ${rendererInfo.content}`); 5691 console.info(`Renderer usage: ${rendererInfo.usage}`); 5692 console.info(`Renderer flags: ${rendererInfo.rendererFlags}`) 5693}).catch((err: BusinessError) => { 5694 console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`); 5695}); 5696``` 5697 5698### getRendererInfoSync<sup>10+</sup> 5699 5700getRendererInfoSync(): AudioRendererInfo 5701 5702获取当前被创建的音频渲染器的信息,同步返回结果。 5703 5704**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5705 5706**返回值:** 5707 5708| 类型 | 说明 | 5709| -------------------------------------------------- | ------------------------------- | 5710| [AudioRendererInfo](#audiorendererinfo8) | 返回音频渲染器信息。 | 5711 5712**示例:** 5713 5714```ts 5715import { BusinessError } from '@ohos.base'; 5716 5717try { 5718 let rendererInfo: audio.AudioRendererInfo = audioRenderer.getRendererInfoSync(); 5719 console.info(`Renderer content: ${rendererInfo.content}`); 5720 console.info(`Renderer usage: ${rendererInfo.usage}`); 5721 console.info(`Renderer flags: ${rendererInfo.rendererFlags}`) 5722} catch (err) { 5723 let error = err as BusinessError; 5724 console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${error}`); 5725} 5726``` 5727 5728### getStreamInfo<sup>8+</sup> 5729 5730getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void 5731 5732获取音频流信息,使用callback方式异步返回结果。 5733 5734**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5735 5736**参数:** 5737 5738| 参数名 | 类型 | 必填 | 说明 | 5739| :------- | :--------------------------------------------------- | :--- | :------------------- | 5740| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是 | 回调返回音频流信息。 | 5741 5742**示例:** 5743 5744```ts 5745import { BusinessError } from '@ohos.base'; 5746audioRenderer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => { 5747 console.info('Renderer GetStreamInfo:'); 5748 console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5749 console.info(`Renderer channel: ${streamInfo.channels}`); 5750 console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5751 console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5752}); 5753``` 5754 5755### getStreamInfo<sup>8+</sup> 5756 5757getStreamInfo(): Promise<AudioStreamInfo\> 5758 5759获取音频流信息,使用Promise方式异步返回结果。 5760 5761**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5762 5763**返回值:** 5764 5765| 类型 | 说明 | 5766| :--------------------------------------------- | :--------------------- | 5767| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise返回音频流信息. | 5768 5769**示例:** 5770 5771```ts 5772import { BusinessError } from '@ohos.base'; 5773audioRenderer.getStreamInfo().then((streamInfo: audio.AudioStreamInfo) => { 5774 console.info('Renderer GetStreamInfo:'); 5775 console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5776 console.info(`Renderer channel: ${streamInfo.channels}`); 5777 console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5778 console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5779}).catch((err: BusinessError) => { 5780 console.error(`ERROR: ${err}`); 5781}); 5782``` 5783 5784### getStreamInfoSync<sup>10+</sup> 5785 5786getStreamInfoSync(): AudioStreamInfo 5787 5788获取音频流信息,同步返回结果。 5789 5790**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5791 5792**返回值:** 5793 5794| 类型 | 说明 | 5795| :--------------------------------------------- | :--------------------- | 5796| [AudioStreamInfo](#audiostreaminfo8) | 返回音频流信息. | 5797 5798**示例:** 5799 5800```ts 5801import { BusinessError } from '@ohos.base'; 5802 5803try { 5804 let streamInfo: audio.AudioStreamInfo = audioRenderer.getStreamInfoSync(); 5805 console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5806 console.info(`Renderer channel: ${streamInfo.channels}`); 5807 console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5808 console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5809} catch (err) { 5810 let error = err as BusinessError; 5811 console.error(`ERROR: ${error}`); 5812} 5813``` 5814 5815### getAudioStreamId<sup>9+</sup> 5816 5817getAudioStreamId(callback: AsyncCallback<number\>): void 5818 5819获取音频流id,使用callback方式异步返回结果。 5820 5821**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5822 5823**参数:** 5824 5825| 参数名 | 类型 | 必填 | 说明 | 5826| :------- | :--------------------------------------------------- | :--- | :------------------- | 5827| callback | AsyncCallback<number\> | 是 | 回调返回音频流id。 | 5828 5829**示例:** 5830 5831```ts 5832import { BusinessError } from '@ohos.base'; 5833audioRenderer.getAudioStreamId((err: BusinessError, streamid: number) => { 5834 console.info(`Renderer GetStreamId: ${streamid}`); 5835}); 5836``` 5837 5838### getAudioStreamId<sup>9+</sup> 5839 5840getAudioStreamId(): Promise<number\> 5841 5842获取音频流id,使用Promise方式异步返回结果。 5843 5844**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5845 5846**返回值:** 5847 5848| 类型 | 说明 | 5849| :--------------------------------------------- | :--------------------- | 5850| Promise<number\> | Promise返回音频流id。 | 5851 5852**示例:** 5853 5854```ts 5855import { BusinessError } from '@ohos.base'; 5856audioRenderer.getAudioStreamId().then((streamid: number) => { 5857 console.info(`Renderer getAudioStreamId: ${streamid}`); 5858}).catch((err: BusinessError) => { 5859 console.error(`ERROR: ${err}`); 5860}); 5861``` 5862 5863### getAudioStreamIdSync<sup>10+</sup> 5864 5865getAudioStreamIdSync(): number 5866 5867获取音频流id,同步返回结果。 5868 5869**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5870 5871**返回值:** 5872 5873| 类型 | 说明 | 5874| :--------------------------------------------- | :--------------------- | 5875| number | 返回音频流id。 | 5876 5877**示例:** 5878 5879```ts 5880import { BusinessError } from '@ohos.base'; 5881 5882try { 5883 let streamid: number = audioRenderer.getAudioStreamIdSync(); 5884 console.info(`Renderer getAudioStreamIdSync: ${streamid}`); 5885} catch (err) { 5886 let error = err as BusinessError; 5887 console.error(`ERROR: ${error}`); 5888} 5889``` 5890 5891### setAudioEffectMode<sup>10+</sup> 5892 5893setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback\<void>): void 5894 5895设置当前音效模式。使用callback方式异步返回结果。 5896 5897**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5898 5899**参数:** 5900 5901| 参数名 | 类型 | 必填 | 说明 | 5902| -------- | ---------------------------------------- | ---- | ------------------------ | 5903| mode | [AudioEffectMode](#audioeffectmode10) | 是 | 音效模式。 | 5904| callback | AsyncCallback\<void> | 是 | 用于返回执行结果的回调。 | 5905 5906**错误码:** 5907 5908以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5909 5910| 错误码ID | 错误信息 | 5911| ------- | ----------------------------------------------| 5912| 6800101 | Invalid parameter error. Return by callback. | 5913 5914**示例:** 5915 5916```ts 5917import { BusinessError } from '@ohos.base'; 5918audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err: BusinessError) => { 5919 if (err) { 5920 console.error('Failed to set params'); 5921 } else { 5922 console.info('Callback invoked to indicate a successful audio effect mode setting.'); 5923 } 5924}); 5925``` 5926 5927### setAudioEffectMode<sup>10+</sup> 5928 5929setAudioEffectMode(mode: AudioEffectMode): Promise\<void> 5930 5931设置当前音效模式。使用Promise方式异步返回结果。 5932 5933**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5934 5935**参数:** 5936 5937| 参数名 | 类型 | 必填 | 说明 | 5938| ------ | ---------------------------------------- | ---- | ------------ | 5939| mode | [AudioEffectMode](#audioeffectmode10) | 是 | 音效模式。 | 5940 5941**返回值:** 5942 5943| 类型 | 说明 | 5944| -------------- | ------------------------- | 5945| Promise\<void> | Promise用于返回执行结果。 | 5946 5947**错误码:** 5948 5949以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 5950 5951| 错误码ID | 错误信息 | 5952| ------- | ---------------------------------------------| 5953| 6800101 | Invalid parameter error. Return by promise. | 5954 5955**示例:** 5956 5957```ts 5958import { BusinessError } from '@ohos.base'; 5959audioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => { 5960 console.info('setAudioEffectMode SUCCESS'); 5961}).catch((err: BusinessError) => { 5962 console.error(`ERROR: ${err}`); 5963}); 5964``` 5965 5966### getAudioEffectMode<sup>10+</sup> 5967 5968getAudioEffectMode(callback: AsyncCallback\<AudioEffectMode>): void 5969 5970获取当前音效模式。使用callback方式异步返回结果。 5971 5972**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5973 5974**参数:** 5975 5976| 参数名 | 类型 | 必填 | 说明 | 5977| -------- | ------------------------------------------------------- | ---- | ------------------ | 5978| callback | AsyncCallback<[AudioEffectMode](#audioeffectmode10)> | 是 | 回调返回当前音效模式。 | 5979 5980**示例:** 5981 5982```ts 5983import { BusinessError } from '@ohos.base'; 5984audioRenderer.getAudioEffectMode((err: BusinessError, effectmode: audio.AudioEffectMode) => { 5985 if (err) { 5986 console.error('Failed to get params'); 5987 } else { 5988 console.info(`getAudioEffectMode: ${effectmode}`); 5989 } 5990}); 5991``` 5992 5993### getAudioEffectMode<sup>10+</sup> 5994 5995getAudioEffectMode(): Promise\<AudioEffectMode> 5996 5997获取当前音效模式。使用Promise方式异步返回结果。 5998 5999**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6000 6001**返回值:** 6002 6003| 类型 | 说明 | 6004| ------------------------------------------------- | ------------------------- | 6005| Promise<[AudioEffectMode](#audioeffectmode10)> | Promise回调返回当前音效模式。 | 6006 6007**示例:** 6008 6009```ts 6010import { BusinessError } from '@ohos.base'; 6011audioRenderer.getAudioEffectMode().then((effectmode: audio.AudioEffectMode) => { 6012 console.info(`getAudioEffectMode: ${effectmode}`); 6013}).catch((err: BusinessError) => { 6014 console.error(`ERROR: ${err}`); 6015}); 6016``` 6017 6018### start<sup>8+</sup> 6019 6020start(callback: AsyncCallback<void\>): void 6021 6022启动音频渲染器。使用callback方式异步返回结果。 6023 6024**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6025 6026**参数:** 6027 6028| 参数名 | 类型 | 必填 | 说明 | 6029| -------- | -------------------- | ---- | ---------- | 6030| callback | AsyncCallback\<void> | 是 | 回调函数。 | 6031 6032**示例:** 6033 6034```ts 6035import { BusinessError } from '@ohos.base'; 6036audioRenderer.start((err: BusinessError) => { 6037 if (err) { 6038 console.error('Renderer start failed.'); 6039 } else { 6040 console.info('Renderer start success.'); 6041 } 6042}); 6043``` 6044 6045### start<sup>8+</sup> 6046 6047start(): Promise<void\> 6048 6049启动音频渲染器。使用Promise方式异步返回结果。 6050 6051**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6052 6053**返回值:** 6054 6055| 类型 | 说明 | 6056| -------------- | ------------------------- | 6057| Promise\<void> | Promise方式异步返回结果。 | 6058 6059**示例:** 6060 6061```ts 6062import { BusinessError } from '@ohos.base'; 6063audioRenderer.start().then(() => { 6064 console.info('Renderer started'); 6065}).catch((err: BusinessError) => { 6066 console.error(`ERROR: ${err}`); 6067}); 6068``` 6069 6070### pause<sup>8+</sup> 6071 6072pause(callback: AsyncCallback\<void>): void 6073 6074暂停渲染。使用callback方式异步返回结果。 6075 6076**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6077 6078**参数:** 6079 6080| 参数名 | 类型 | 必填 | 说明 | 6081| -------- | -------------------- | ---- | ---------------- | 6082| callback | AsyncCallback\<void> | 是 | 返回回调的结果。 | 6083 6084**示例:** 6085 6086```ts 6087import { BusinessError } from '@ohos.base'; 6088audioRenderer.pause((err: BusinessError) => { 6089 if (err) { 6090 console.error('Renderer pause failed'); 6091 } else { 6092 console.info('Renderer paused.'); 6093 } 6094}); 6095``` 6096 6097### pause<sup>8+</sup> 6098 6099pause(): Promise\<void> 6100 6101暂停渲染。使用Promise方式异步返回结果。 6102 6103**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6104 6105**返回值:** 6106 6107| 类型 | 说明 | 6108| -------------- | ------------------------- | 6109| Promise\<void> | Promise方式异步返回结果。 | 6110 6111**示例:** 6112 6113```ts 6114import { BusinessError } from '@ohos.base'; 6115audioRenderer.pause().then(() => { 6116 console.info('Renderer paused'); 6117}).catch((err: BusinessError) => { 6118 console.error(`ERROR: ${err}`); 6119}); 6120``` 6121 6122### drain<sup>8+</sup> 6123 6124drain(callback: AsyncCallback\<void>): void 6125 6126检查缓冲区是否已被耗尽。使用callback方式异步返回结果。 6127 6128**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6129 6130**参数:** 6131 6132| 参数名 | 类型 | 必填 | 说明 | 6133| -------- | -------------------- | ---- | ---------------- | 6134| callback | AsyncCallback\<void> | 是 | 返回回调的结果。 | 6135 6136**示例:** 6137 6138```ts 6139import { BusinessError } from '@ohos.base'; 6140audioRenderer.drain((err: BusinessError) => { 6141 if (err) { 6142 console.error('Renderer drain failed'); 6143 } else { 6144 console.info('Renderer drained.'); 6145 } 6146}); 6147``` 6148 6149### drain<sup>8+</sup> 6150 6151drain(): Promise\<void> 6152 6153检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。 6154 6155**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6156 6157**返回值:** 6158 6159| 类型 | 说明 | 6160| -------------- | ------------------------- | 6161| Promise\<void> | Promise方式异步返回结果。 | 6162 6163**示例:** 6164 6165```ts 6166import { BusinessError } from '@ohos.base'; 6167audioRenderer.drain().then(() => { 6168 console.info('Renderer drained successfully'); 6169}).catch((err: BusinessError) => { 6170 console.error(`ERROR: ${err}`); 6171}); 6172``` 6173 6174### stop<sup>8+</sup> 6175 6176stop(callback: AsyncCallback\<void>): void 6177 6178停止渲染。使用callback方式异步返回结果。 6179 6180**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6181 6182**参数:** 6183 6184| 参数名 | 类型 | 必填 | 说明 | 6185| -------- | -------------------- | ---- | ---------------- | 6186| callback | AsyncCallback\<void> | 是 | 返回回调的结果。 | 6187 6188**示例:** 6189 6190```ts 6191import { BusinessError } from '@ohos.base'; 6192audioRenderer.stop((err: BusinessError) => { 6193 if (err) { 6194 console.error('Renderer stop failed'); 6195 } else { 6196 console.info('Renderer stopped.'); 6197 } 6198}); 6199``` 6200 6201### stop<sup>8+</sup> 6202 6203stop(): Promise\<void> 6204 6205停止渲染。使用Promise方式异步返回结果。 6206 6207**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6208 6209**返回值:** 6210 6211| 类型 | 说明 | 6212| -------------- | ------------------------- | 6213| Promise\<void> | Promise方式异步返回结果。 | 6214 6215**示例:** 6216 6217```ts 6218import { BusinessError } from '@ohos.base'; 6219audioRenderer.stop().then(() => { 6220 console.info('Renderer stopped successfully'); 6221}).catch((err: BusinessError) => { 6222 console.error(`ERROR: ${err}`); 6223}); 6224``` 6225 6226### release<sup>8+</sup> 6227 6228release(callback: AsyncCallback\<void>): void 6229 6230释放音频渲染器。使用callback方式异步返回结果。 6231 6232**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6233 6234**参数:** 6235 6236| 参数名 | 类型 | 必填 | 说明 | 6237| -------- | -------------------- | ---- | ---------------- | 6238| callback | AsyncCallback\<void> | 是 | 返回回调的结果。 | 6239 6240**示例:** 6241 6242```ts 6243import { BusinessError } from '@ohos.base'; 6244audioRenderer.release((err: BusinessError) => { 6245 if (err) { 6246 console.error('Renderer release failed'); 6247 } else { 6248 console.info('Renderer released.'); 6249 } 6250}); 6251``` 6252 6253### release<sup>8+</sup> 6254 6255release(): Promise\<void> 6256 6257释放渲染器。使用Promise方式异步返回结果。 6258 6259**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6260 6261**返回值:** 6262 6263| 类型 | 说明 | 6264| -------------- | ------------------------- | 6265| Promise\<void> | Promise方式异步返回结果。 | 6266 6267**示例:** 6268 6269```ts 6270import { BusinessError } from '@ohos.base'; 6271audioRenderer.release().then(() => { 6272 console.info('Renderer released successfully'); 6273}).catch((err: BusinessError) => { 6274 console.error(`ERROR: ${err}`); 6275}); 6276``` 6277 6278### write<sup>8+</sup> 6279 6280write(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void 6281 6282写入缓冲区。使用callback方式异步返回结果。 6283 6284**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6285 6286**参数:** 6287 6288| 参数名 | 类型 | 必填 | 说明 | 6289| -------- | ---------------------- | ---- | --------------------------------------------------- | 6290| buffer | ArrayBuffer | 是 | 要写入缓冲区的数据。 | 6291| callback | AsyncCallback\<number> | 是 | 回调如果成功,返回写入的字节数,否则返回errorcode。 | 6292 6293**示例:** 6294 6295```ts 6296import { BusinessError } from '@ohos.base'; 6297let bufferSize: number; 6298class Options { 6299 offset?: number; 6300 length?: number; 6301} 6302audioRenderer.getBufferSize().then((data: number)=> { 6303 console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6304 bufferSize = data; 6305 console.info(`Buffer size: ${bufferSize}`); 6306 let path = getContext().cacheDir; 6307 let filePath = path + '/StarWars10s-2C-48000-4SW.wav'; 6308 let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); 6309 fs.stat(filePath).then(async (stat: fs.Stat) => { 6310 let buf = new ArrayBuffer(bufferSize); 6311 let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1); 6312 for (let i = 0;i < len; i++) { 6313 let options: Options = { 6314 offset: i * bufferSize, 6315 length: bufferSize 6316 } 6317 let readsize: number = await fs.read(file.fd, buf, options) 6318 let writeSize: number = await new Promise((resolve,reject)=>{ 6319 audioRenderer.write(buf,(err: BusinessError, writeSize: number)=>{ 6320 if(err){ 6321 reject(err) 6322 }else{ 6323 resolve(writeSize) 6324 } 6325 }) 6326 }) 6327 } 6328 }); 6329 }).catch((err: BusinessError) => { 6330 console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6331}); 6332 6333 6334``` 6335 6336### write<sup>8+</sup> 6337 6338write(buffer: ArrayBuffer): Promise\<number> 6339 6340写入缓冲区。使用Promise方式异步返回结果。 6341 6342**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6343 6344**返回值:** 6345 6346| 类型 | 说明 | 6347| ---------------- | ------------------------------------------------------------ | 6348| Promise\<number> | Promise返回结果,如果成功,返回写入的字节数,否则返回errorcode。 | 6349 6350**示例:** 6351 6352```ts 6353import { BusinessError } from '@ohos.base'; 6354let bufferSize: number; 6355class Options { 6356 offset?: number; 6357 length?: number; 6358} 6359audioRenderer.getBufferSize().then((data: number) => { 6360 console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6361 bufferSize = data; 6362 console.info(`BufferSize: ${bufferSize}`); 6363 let path = getContext().cacheDir; 6364 let filePath = path + '/StarWars10s-2C-48000-4SW.wav'; 6365 let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); 6366 fs.stat(filePath).then(async (stat: fs.Stat) => { 6367 let buf = new ArrayBuffer(bufferSize); 6368 let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1); 6369 for (let i = 0;i < len; i++) { 6370 let options: Options = { 6371 offset: i * bufferSize, 6372 length: bufferSize 6373 } 6374 let readsize: number = await fs.read(file.fd, buf, options) 6375 try{ 6376 let writeSize: number = await audioRenderer.write(buf); 6377 } catch(err) { 6378 let error = err as BusinessError; 6379 console.error(`audioRenderer.write err: ${error}`); 6380 } 6381 } 6382 }); 6383 }).catch((err: BusinessError) => { 6384 console.info(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6385}); 6386``` 6387 6388### getAudioTime<sup>8+</sup> 6389 6390getAudioTime(callback: AsyncCallback\<number>): void 6391 6392获取时间戳(从 1970 年 1 月 1 日开始)。使用callback方式异步返回结果。 6393 6394**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6395 6396**参数:** 6397 6398| 参数名 | 类型 | 必填 | 说明 | 6399| -------- | ---------------------- | ---- | ---------------- | 6400| callback | AsyncCallback\<number> | 是 | 回调返回时间戳。 | 6401 6402**示例:** 6403 6404```ts 6405import { BusinessError } from '@ohos.base'; 6406audioRenderer.getAudioTime((err: BusinessError, timestamp: number) => { 6407 console.info(`Current timestamp: ${timestamp}`); 6408}); 6409``` 6410 6411### getAudioTime<sup>8+</sup> 6412 6413getAudioTime(): Promise\<number> 6414 6415获取时间戳(从 1970 年 1 月 1 日开始)。使用Promise方式异步返回结果。 6416 6417**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6418 6419**返回值:** 6420 6421| 类型 | 描述 | 6422| ---------------- | ----------------------- | 6423| Promise\<number> | Promise回调返回时间戳。 | 6424 6425**示例:** 6426 6427```ts 6428import { BusinessError } from '@ohos.base'; 6429audioRenderer.getAudioTime().then((timestamp: number) => { 6430 console.info(`Current timestamp: ${timestamp}`); 6431}).catch((err: BusinessError) => { 6432 console.error(`ERROR: ${err}`); 6433}); 6434``` 6435 6436### getAudioTimeSync<sup>10+</sup> 6437 6438getAudioTimeSync(): number 6439 6440获取时间戳(从 1970 年 1 月 1 日开始),同步返回结果。 6441 6442**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6443 6444**返回值:** 6445 6446| 类型 | 描述 | 6447| ---------------- | ----------------------- | 6448| number | 返回时间戳。 | 6449 6450**示例:** 6451 6452```ts 6453import { BusinessError } from '@ohos.base'; 6454 6455try { 6456 let timestamp: number = audioRenderer.getAudioTimeSync(); 6457 console.info(`Current timestamp: ${timestamp}`); 6458} catch (err) { 6459 let error = err as BusinessError; 6460 console.error(`ERROR: ${error}`); 6461} 6462``` 6463 6464### getBufferSize<sup>8+</sup> 6465 6466getBufferSize(callback: AsyncCallback\<number>): void 6467 6468获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。 6469 6470**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6471 6472**参数:** 6473 6474| 参数名 | 类型 | 必填 | 说明 | 6475| -------- | ---------------------- | ---- | -------------------- | 6476| callback | AsyncCallback\<number> | 是 | 回调返回缓冲区大小。 | 6477 6478**示例:** 6479 6480```ts 6481import { BusinessError } from '@ohos.base'; 6482let bufferSize: number; 6483audioRenderer.getBufferSize((err: BusinessError, data: number) => { 6484 if (err) { 6485 console.error('getBufferSize error'); 6486 } else { 6487 console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6488 bufferSize = data; 6489 } 6490}); 6491``` 6492 6493### getBufferSize<sup>8+</sup> 6494 6495getBufferSize(): Promise\<number> 6496 6497获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。 6498 6499**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6500 6501**返回值:** 6502 6503| 类型 | 说明 | 6504| ---------------- | --------------------------- | 6505| Promise\<number> | promise回调返回缓冲区大小。 | 6506 6507**示例:** 6508 6509```ts 6510import { BusinessError } from '@ohos.base'; 6511let bufferSize: number; 6512audioRenderer.getBufferSize().then((data: number) => { 6513 console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6514 bufferSize = data; 6515}).catch((err: BusinessError) => { 6516 console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6517}); 6518``` 6519 6520### getBufferSizeSync<sup>10+</sup> 6521 6522getBufferSizeSync(): number 6523 6524获取音频渲染器的最小缓冲区大小,同步返回结果。 6525 6526**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6527 6528**返回值:** 6529 6530| 类型 | 说明 | 6531| ---------------- | --------------------------- | 6532| number | 返回缓冲区大小。 | 6533 6534**示例:** 6535 6536```ts 6537import { BusinessError } from '@ohos.base'; 6538 6539let bufferSize: number = 0; 6540try { 6541 bufferSize = audioRenderer.getBufferSizeSync(); 6542 console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${bufferSize}`); 6543} catch (err) { 6544 let error = err as BusinessError; 6545 console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${error}`); 6546} 6547``` 6548 6549### setRenderRate<sup>8+</sup> 6550 6551setRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void 6552 6553设置音频渲染速率。使用callback方式异步返回结果。 6554 6555**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6556 6557**参数:** 6558 6559| 参数名 | 类型 | 必填 | 说明 | 6560| -------- | ---------------------------------------- | ---- | ------------------------ | 6561| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 | 6562| callback | AsyncCallback\<void> | 是 | 用于返回执行结果的回调。 | 6563 6564**示例:** 6565 6566```ts 6567import { BusinessError } from '@ohos.base'; 6568audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err: BusinessError) => { 6569 if (err) { 6570 console.error('Failed to set params'); 6571 } else { 6572 console.info('Callback invoked to indicate a successful render rate setting.'); 6573 } 6574}); 6575``` 6576 6577### setRenderRate<sup>8+</sup> 6578 6579setRenderRate(rate: AudioRendererRate): Promise\<void> 6580 6581设置音频渲染速率。使用Promise方式异步返回结果。 6582 6583**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6584 6585**参数:** 6586 6587| 参数名 | 类型 | 必填 | 说明 | 6588| ------ | ---------------------------------------- | ---- | ------------ | 6589| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 | 6590 6591**返回值:** 6592 6593| 类型 | 说明 | 6594| -------------- | ------------------------- | 6595| Promise\<void> | Promise用于返回执行结果。 | 6596 6597**示例:** 6598 6599```ts 6600import { BusinessError } from '@ohos.base'; 6601audioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => { 6602 console.info('setRenderRate SUCCESS'); 6603}).catch((err: BusinessError) => { 6604 console.error(`ERROR: ${err}`); 6605}); 6606``` 6607 6608### getRenderRate<sup>8+</sup> 6609 6610getRenderRate(callback: AsyncCallback\<AudioRendererRate>): void 6611 6612获取当前渲染速率。使用callback方式异步返回结果。 6613 6614**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6615 6616**参数:** 6617 6618| 参数名 | 类型 | 必填 | 说明 | 6619| -------- | ------------------------------------------------------- | ---- | ------------------ | 6620| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是 | 回调返回渲染速率。 | 6621 6622**示例:** 6623 6624```ts 6625import { BusinessError } from '@ohos.base'; 6626audioRenderer.getRenderRate((err: BusinessError, renderrate: audio.AudioRendererRate) => { 6627 console.info(`getRenderRate: ${renderrate}`); 6628}); 6629``` 6630 6631### getRenderRate<sup>8+</sup> 6632 6633getRenderRate(): Promise\<AudioRendererRate> 6634 6635获取当前渲染速率。使用Promise方式异步返回结果。 6636 6637**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6638 6639**返回值:** 6640 6641| 类型 | 说明 | 6642| ------------------------------------------------- | ------------------------- | 6643| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise回调返回渲染速率。 | 6644 6645**示例:** 6646 6647```ts 6648import { BusinessError } from '@ohos.base'; 6649audioRenderer.getRenderRate().then((renderRate: audio.AudioRendererRate) => { 6650 console.info(`getRenderRate: ${renderRate}`); 6651}).catch((err: BusinessError) => { 6652 console.error(`ERROR: ${err}`); 6653}); 6654``` 6655 6656### getRenderRateSync<sup>10+</sup> 6657 6658getRenderRateSync(): AudioRendererRate 6659 6660获取当前渲染速率,同步返回结果。 6661 6662**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6663 6664**返回值:** 6665 6666| 类型 | 说明 | 6667| ------------------------------------------------- | ------------------------- | 6668| [AudioRendererRate](#audiorendererrate8) | 返回渲染速率。 | 6669 6670**示例:** 6671 6672```ts 6673import { BusinessError } from '@ohos.base'; 6674 6675try { 6676 let renderRate: audio.AudioRendererRate = audioRenderer.getRenderRateSync(); 6677 console.info(`getRenderRate: ${renderRate}`); 6678} catch (err) { 6679 let error = err as BusinessError; 6680 console.error(`ERROR: ${error}`); 6681} 6682``` 6683 6684### setInterruptMode<sup>9+</sup> 6685 6686setInterruptMode(mode: InterruptMode): Promise<void> 6687 6688设置应用的焦点模型。使用Promise异步回调。 6689 6690**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6691 6692**参数:** 6693 6694| 参数名 | 类型 | 必填 | 说明 | 6695| ---------- | ---------------------------------- | ------ | ---------- | 6696| mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。 | 6697 6698**返回值:** 6699 6700| 类型 | 说明 | 6701| ------------------- | ----------------------------- | 6702| Promise<void> | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 | 6703 6704**示例:** 6705 6706```ts 6707import { BusinessError } from '@ohos.base'; 6708let mode = 0; 6709audioRenderer.setInterruptMode(mode).then(() => { 6710 console.info('setInterruptMode Success!'); 6711}).catch((err: BusinessError) => { 6712 console.error(`setInterruptMode Fail: ${err}`); 6713}); 6714``` 6715### setInterruptMode<sup>9+</sup> 6716 6717setInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void 6718 6719设置应用的焦点模型。使用Callback回调返回执行结果。 6720 6721**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6722 6723**参数:** 6724 6725| 参数名 | 类型 | 必填 | 说明 | 6726| ------- | ----------------------------------- | ------ | -------------- | 6727|mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。| 6728|callback | AsyncCallback\<void> | 是 |回调返回执行结果。| 6729 6730**示例:** 6731 6732```ts 6733import { BusinessError } from '@ohos.base'; 6734let mode = 1; 6735audioRenderer.setInterruptMode(mode, (err: BusinessError) => { 6736 if(err){ 6737 console.error(`setInterruptMode Fail: ${err}`); 6738 } 6739 console.info('setInterruptMode Success!'); 6740}); 6741``` 6742 6743### setInterruptModeSync<sup>10+</sup> 6744 6745setInterruptModeSync(mode: InterruptMode): void 6746 6747设置应用的焦点模型,同步设置。 6748 6749**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6750 6751**参数:** 6752 6753| 参数名 | 类型 | 必填 | 说明 | 6754| ---------- | ---------------------------------- | ------ | ---------- | 6755| mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。 | 6756 6757**错误码:** 6758 6759以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 6760 6761| 错误码ID | 错误信息 | 6762| ------- | --------------------------------------------| 6763| 6800101 | invalid parameter error | 6764 6765**示例:** 6766 6767```ts 6768import { BusinessError } from '@ohos.base'; 6769 6770try { 6771 audioRenderer.setInterruptModeSync(0); 6772 console.info('setInterruptMode Success!'); 6773} catch (err) { 6774 let error = err as BusinessError; 6775 console.error(`setInterruptMode Fail: ${error}`); 6776} 6777``` 6778 6779### setVolume<sup>9+</sup> 6780 6781setVolume(volume: number): Promise<void> 6782 6783设置应用的音量。使用Promise异步回调。 6784 6785**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6786 6787**参数:** 6788 6789| 参数名 | 类型 | 必填 | 说明 | 6790| ---------- | ------- | ------ | ------------------- | 6791| volume | number | 是 | 音量值范围为0.0-1.0。 | 6792 6793**返回值:** 6794 6795| 类型 | 说明 | 6796| ------------------- | ----------------------------- | 6797| Promise<void> | 以Promise对象返回结果,设置成功时返回undefined,否则返回error。 | 6798 6799**示例:** 6800 6801```ts 6802import { BusinessError } from '@ohos.base'; 6803audioRenderer.setVolume(0.5).then(() => { 6804 console.info('setVolume Success!'); 6805}).catch((err: BusinessError) => { 6806 console.error(`setVolume Fail: ${err}`); 6807}); 6808``` 6809### setVolume<sup>9+</sup> 6810 6811setVolume(volume: number, callback: AsyncCallback\<void>): void 6812 6813设置应用的音量。使用Callback回调返回执行结果。 6814 6815**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6816 6817**参数:** 6818 6819| 参数名 | 类型 | 必填 | 说明 | 6820| ------- | -----------| ------ | ------------------- | 6821|volume | number | 是 | 音量值范围为0.0-1.0。 | 6822|callback | AsyncCallback\<void> | 是 |回调返回执行结果。| 6823 6824**示例:** 6825 6826```ts 6827import { BusinessError } from '@ohos.base'; 6828audioRenderer.setVolume(0.5, (err: BusinessError) => { 6829 if(err){ 6830 console.error(`setVolume Fail: ${err}`); 6831 } 6832 console.info('setVolume Success!'); 6833}); 6834``` 6835 6836### getMinStreamVolume<sup>10+</sup> 6837 6838getMinStreamVolume(callback: AsyncCallback<number>): void 6839 6840获取应用基于音频流的最小音量。使用Callback回调返回。 6841 6842**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6843 6844**参数:** 6845 6846| 参数名 | 类型 | 必填 | 说明 | 6847| ------- | -----------| ------ | ------------------- | 6848|callback |AsyncCallback<number> | 是 |Callback回调返回音频流最小音量(音量范围0-1)。| 6849 6850**示例:** 6851 6852```ts 6853import { BusinessError } from '@ohos.base'; 6854audioRenderer.getMinStreamVolume((err: BusinessError, minVolume: number) => { 6855 if (err) { 6856 console.error(`getMinStreamVolume error: ${err}`); 6857 } else { 6858 console.info(`getMinStreamVolume Success! ${minVolume}`); 6859 } 6860}); 6861``` 6862### getMinStreamVolume<sup>10+</sup> 6863 6864getMinStreamVolume(): Promise<number> 6865 6866获取应用基于音频流的最小音量。使用Promise异步回调。 6867 6868**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6869 6870**返回值:** 6871 6872| 类型 | 说明 | 6873| ------------------- | ----------------------------- | 6874| Promise<number>| Promise回调返回音频流最小音量(音量范围0-1)。| 6875 6876**示例:** 6877 6878```ts 6879import { BusinessError } from '@ohos.base'; 6880audioRenderer.getMinStreamVolume().then((value: number) => { 6881 console.info(`Get min stream volume Success! ${value}`); 6882}).catch((err: BusinessError) => { 6883 console.error(`Get min stream volume Fail: ${err}`); 6884}); 6885``` 6886 6887### getMinStreamVolumeSync<sup>10+</sup> 6888 6889getMinStreamVolumeSync(): number 6890 6891获取应用基于音频流的最小音量,同步返回结果。 6892 6893**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6894 6895**返回值:** 6896 6897| 类型 | 说明 | 6898| ------------------- | ----------------------------- | 6899| number| 返回音频流最小音量(音量范围0-1)。| 6900 6901**示例:** 6902 6903```ts 6904import { BusinessError } from '@ohos.base'; 6905 6906try { 6907 let value: number = audioRenderer.getMinStreamVolumeSync(); 6908 console.info(`Get min stream volume Success! ${value}`); 6909} catch (err) { 6910 let error = err as BusinessError; 6911 console.error(`Get min stream volume Fail: ${error}`); 6912} 6913``` 6914 6915### getMaxStreamVolume<sup>10+</sup> 6916 6917getMaxStreamVolume(callback: AsyncCallback<number>): void 6918 6919获取应用基于音频流的最大音量。使用Callback回调返回。 6920 6921**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6922 6923**参数:** 6924 6925| 参数名 | 类型 | 必填 | 说明 | 6926| ------- | -----------| ------ | ------------------- | 6927|callback | AsyncCallback<number> | 是 |Callback回调返回音频流最大音量(音量范围0-1)。| 6928 6929**示例:** 6930 6931```ts 6932import { BusinessError } from '@ohos.base'; 6933audioRenderer.getMaxStreamVolume((err: BusinessError, maxVolume: number) => { 6934 if (err) { 6935 console.error(`getMaxStreamVolume Fail: ${err}`); 6936 } else { 6937 console.info(`getMaxStreamVolume Success! ${maxVolume}`); 6938 } 6939}); 6940``` 6941### getMaxStreamVolume<sup>10+</sup> 6942 6943getMaxStreamVolume(): Promise<number> 6944 6945获取应用基于音频流的最大音量。使用Promise异步回调。 6946 6947**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6948 6949**返回值:** 6950 6951| 类型 | 说明 | 6952| ------------------- | ----------------------------- | 6953| Promise<number>| Promise回调返回音频流最大音量(音量范围0-1)。| 6954 6955**示例:** 6956 6957```ts 6958import { BusinessError } from '@ohos.base'; 6959audioRenderer.getMaxStreamVolume().then((value: number) => { 6960 console.info(`Get max stream volume Success! ${value}`); 6961}).catch((err: BusinessError) => { 6962 console.error(`Get max stream volume Fail: ${err}`); 6963}); 6964``` 6965 6966### getMaxStreamVolumeSync<sup>10+</sup> 6967 6968getMaxStreamVolumeSync(): number 6969 6970获取应用基于音频流的最大音量,同步返回结果。 6971 6972**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6973 6974**返回值:** 6975 6976| 类型 | 说明 | 6977| ------------------- | ----------------------------- | 6978| number| 返回音频流最大音量(音量范围0-1)。| 6979 6980**示例:** 6981 6982```ts 6983import { BusinessError } from '@ohos.base'; 6984 6985try { 6986 let value: number = audioRenderer.getMaxStreamVolumeSync(); 6987 console.info(`Get max stream volume Success! ${value}`); 6988} catch (err) { 6989 let error = err as BusinessError; 6990 console.error(`Get max stream volume Fail: ${error}`); 6991} 6992``` 6993 6994### getUnderflowCount<sup>10+</sup> 6995 6996getUnderflowCount(callback: AsyncCallback<number>): void 6997 6998获取当前播放音频流的欠载音频帧数量。使用Callback回调返回。 6999 7000**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7001 7002**参数:** 7003 7004| 参数名 | 类型 | 必填 | 说明 | 7005| ------- | -----------| ------ | ------------------- | 7006|callback | AsyncCallback<number> | 是 |Callback回调返回音频流的欠载音频帧数量。| 7007 7008**示例:** 7009 7010```ts 7011import { BusinessError } from '@ohos.base'; 7012audioRenderer.getUnderflowCount((err: BusinessError, underflowCount: number) => { 7013 if (err) { 7014 console.error(`getUnderflowCount Fail: ${err}`); 7015 } else { 7016 console.info(`getUnderflowCount Success! ${underflowCount}`); 7017 } 7018}); 7019``` 7020### getUnderflowCount<sup>10+</sup> 7021 7022getUnderflowCount(): Promise<number> 7023 7024获取当前播放音频流的欠载音频帧数量。使用Promise异步回调。 7025 7026**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7027 7028**返回值:** 7029 7030| 类型 | 说明 | 7031| ------------------- | ----------------------------- | 7032| Promise<number>| Promise回调返回音频流的欠载音频帧数量。| 7033 7034**示例:** 7035 7036```ts 7037import { BusinessError } from '@ohos.base'; 7038audioRenderer.getUnderflowCount().then((value: number) => { 7039 console.info(`Get underflow count Success! ${value}`); 7040}).catch((err: BusinessError) => { 7041 console.error(`Get underflow count Fail: ${err}`); 7042}); 7043``` 7044 7045### getUnderflowCountSync<sup>10+</sup> 7046 7047getUnderflowCountSync(): number 7048 7049获取当前播放音频流的欠载音频帧数量,同步返回数据。 7050 7051**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7052 7053**返回值:** 7054 7055| 类型 | 说明 | 7056| ------------------- | ----------------------------- | 7057| number| 返回音频流的欠载音频帧数量。| 7058 7059**示例:** 7060 7061```ts 7062import { BusinessError } from '@ohos.base'; 7063 7064try { 7065 let value: number = audioRenderer.getUnderflowCountSync(); 7066 console.info(`Get underflow count Success! ${value}`); 7067} catch (err) { 7068 let error = err as BusinessError; 7069 console.error(`Get underflow count Fail: ${error}`); 7070} 7071``` 7072 7073### getCurrentOutputDevices<sup>10+</sup> 7074 7075getCurrentOutputDevices(callback: AsyncCallback<AudioDeviceDescriptors>): void 7076 7077获取音频流输出设备描述符。使用Callback回调返回。 7078 7079**系统能力:** SystemCapability.Multimedia.Audio.Device 7080 7081**参数:** 7082 7083| 参数名 | 类型 | 必填 | 说明 | 7084| ------- | -----------| ------ | ------------------- | 7085|callback | AsyncCallback<AudioDeviceDescriptors> | 是 |Callback回调返回音频流的输出设备描述符。| 7086 7087**示例:** 7088 7089```ts 7090import { BusinessError } from '@ohos.base'; 7091audioRenderer.getCurrentOutputDevices((err: BusinessError, deviceInfo: audio.AudioDeviceDescriptors) => { 7092 if (err) { 7093 console.error(`getCurrentOutputDevices Fail: ${err}`); 7094 } else { 7095 for (let i = 0; i < deviceInfo.length; i++) { 7096 console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7097 console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7098 console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7099 console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7100 console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7101 console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7102 console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7103 console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7104 } 7105 } 7106}); 7107``` 7108### getCurrentOutputDevices<sup>10+</sup> 7109 7110getCurrentOutputDevices(): Promise<AudioDeviceDescriptors> 7111 7112获取音频流输出设备描述符。使用Promise异步回调。 7113 7114**系统能力:** SystemCapability.Multimedia.Audio.Device 7115 7116**返回值:** 7117 7118| 类型 | 说明 | 7119| ------------------- | ----------------------------- | 7120| Promise<AudioDeviceDescriptors>| Promise回调返回音频流的输出设备描述信息 | 7121 7122**示例:** 7123 7124```ts 7125import { BusinessError } from '@ohos.base'; 7126audioRenderer.getCurrentOutputDevices().then((deviceInfo: audio.AudioDeviceDescriptors) => { 7127 for (let i = 0; i < deviceInfo.length; i++) { 7128 console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7129 console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7130 console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7131 console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7132 console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7133 console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7134 console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7135 console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7136 } 7137}).catch((err: BusinessError) => { 7138 console.error(`Get current output devices Fail: ${err}`); 7139}); 7140``` 7141 7142### getCurrentOutputDevicesSync<sup>10+</sup> 7143 7144getCurrentOutputDevicesSync(): AudioDeviceDescriptors 7145 7146获取音频流输出设备描述符,同步返回结果。 7147 7148**系统能力:** SystemCapability.Multimedia.Audio.Device 7149 7150**返回值:** 7151 7152| 类型 | 说明 | 7153| ------------------- | ----------------------------- | 7154| AudioDeviceDescriptors | 返回音频流的输出设备描述信息 | 7155 7156**示例:** 7157 7158```ts 7159import { BusinessError } from '@ohos.base'; 7160 7161try { 7162 let deviceInfo: audio.AudioDeviceDescriptors = audioRenderer.getCurrentOutputDevicesSync(); 7163 for (let i = 0; i < deviceInfo.length; i++) { 7164 console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7165 console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7166 console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7167 console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7168 console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7169 console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7170 console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7171 console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7172 } 7173} catch (err) { 7174 let error = err as BusinessError; 7175 console.error(`Get current output devices Fail: ${error}`); 7176} 7177``` 7178 7179### on('audioInterrupt')<sup>9+</sup> 7180 7181on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void 7182 7183监听音频中断事件。使用callback获取中断事件。 7184 7185与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioRenderer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。 7186 7187**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 7188 7189**参数:** 7190 7191| 参数名 | 类型 | 必填 | 说明 | 7192| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 7193| type | string | 是 | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频渲染被中断。) | 7194| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是 | 被监听的中断事件的回调。 | 7195 7196**错误码:** 7197 7198以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 7199 7200| 错误码ID | 错误信息 | 7201| ------- | --------------------------------------------| 7202| 6800101 | if input parameter value error | 7203 7204**示例:** 7205 7206```ts 7207import audio from '@ohos.multimedia.audio'; 7208 7209let isPlaying: boolean; // 标识符,表示是否正在渲染 7210let isDucked: boolean; // 标识符,表示是否被降低音量 7211onAudioInterrupt(); 7212 7213async function onAudioInterrupt(){ 7214 audioRenderer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => { 7215 if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) { 7216 // 由系统进行操作,强制打断音频渲染,应用需更新自身状态及显示内容等 7217 switch (interruptEvent.hintType) { 7218 case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 7219 // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent 7220 console.info('Force paused. Update playing status and stop writing'); 7221 isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作 7222 break; 7223 case audio.InterruptHint.INTERRUPT_HINT_STOP: 7224 // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发 7225 console.info('Force stopped. Update playing status and stop writing'); 7226 isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作 7227 break; 7228 case audio.InterruptHint.INTERRUPT_HINT_DUCK: 7229 // 音频流已被降低音量渲染 7230 console.info('Force ducked. Update volume status'); 7231 isDucked = true; // 简化处理,代表应用更新音量状态的若干操作 7232 break; 7233 case audio.InterruptHint.INTERRUPT_HINT_UNDUCK: 7234 // 音频流已被恢复正常音量渲染 7235 console.info('Force ducked. Update volume status'); 7236 isDucked = false; // 简化处理,代表应用更新音量状态的若干操作 7237 break; 7238 default: 7239 console.info('Invalid interruptEvent'); 7240 break; 7241 } 7242 } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) { 7243 // 由应用进行操作,应用可以自主选择打断或忽略 7244 switch (interruptEvent.hintType) { 7245 case audio.InterruptHint.INTERRUPT_HINT_RESUME: 7246 // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染) 7247 console.info('Resume force paused renderer or ignore'); 7248 // 若选择继续渲染,需在此处主动执行开始渲染的若干操作 7249 break; 7250 case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 7251 // 建议应用暂停渲染 7252 console.info('Choose to pause or ignore'); 7253 // 若选择暂停渲染,需在此处主动执行暂停渲染的若干操作 7254 break; 7255 case audio.InterruptHint.INTERRUPT_HINT_STOP: 7256 // 建议应用停止渲染 7257 console.info('Choose to stop or ignore'); 7258 // 若选择停止渲染,需在此处主动执行停止渲染的若干操作 7259 break; 7260 case audio.InterruptHint.INTERRUPT_HINT_DUCK: 7261 // 建议应用降低音量渲染 7262 console.info('Choose to duck or ignore'); 7263 // 若选择降低音量渲染,需在此处主动执行降低音量渲染的若干操作 7264 break; 7265 case audio.InterruptHint.INTERRUPT_HINT_UNDUCK: 7266 // 建议应用恢复正常音量渲染 7267 console.info('Choose to unduck or ignore'); 7268 // 若选择恢复正常音量渲染,需在此处主动执行恢复正常音量渲染的若干操作 7269 break; 7270 default: 7271 break; 7272 } 7273 } 7274 }); 7275} 7276``` 7277 7278### on('markReach')<sup>8+</sup> 7279 7280on(type: 'markReach', frame: number, callback: Callback<number>): void 7281 7282订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,回调被调用。 7283 7284**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7285 7286**参数:** 7287 7288| 参数名 | 类型 | 必填 | 说明 | 7289| :------- | :----------------------- | :--- | :---------------------------------------- | 7290| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 | 7291| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 | 7292| callback | Callback\<number> | 是 | 触发事件时调用的回调。 | 7293 7294**示例:** 7295 7296```ts 7297audioRenderer.on('markReach', 1000, (position: number) => { 7298 if (position == 1000) { 7299 console.info('ON Triggered successfully'); 7300 } 7301}); 7302``` 7303 7304 7305### off('markReach') <sup>8+</sup> 7306 7307off(type: 'markReach'): void 7308 7309取消订阅标记事件。 7310 7311**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7312 7313**参数:** 7314 7315| 参数名 | 类型 | 必填 | 说明 | 7316| :----- | :----- | :--- | :------------------------------------------------ | 7317| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'markReach'。 | 7318 7319**示例:** 7320 7321```ts 7322audioRenderer.off('markReach'); 7323``` 7324 7325### on('periodReach') <sup>8+</sup> 7326 7327on(type: 'periodReach', frame: number, callback: Callback<number>): void 7328 7329订阅到达标记的事件。 当渲染的帧数达到 frame 参数的值时,触发回调并返回设定的值。 7330 7331**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7332 7333**参数:** 7334 7335| 参数名 | 类型 | 必填 | 说明 | 7336| :------- | :----------------------- | :--- | :------------------------------------------ | 7337| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 | 7338| frame | number | 是 | 触发事件的帧数。 该值必须大于 0。 | 7339| callback | Callback\<number> | 是 | 触发事件时调用的回调。 | 7340 7341**示例:** 7342 7343```ts 7344audioRenderer.on('periodReach', 1000, (position: number) => { 7345 if (position == 1000) { 7346 console.info('ON Triggered successfully'); 7347 } 7348}); 7349``` 7350 7351### off('periodReach') <sup>8+</sup> 7352 7353off(type: 'periodReach'): void 7354 7355取消订阅标记事件。 7356 7357**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7358 7359**参数:** 7360 7361| 参数名 | 类型 | 必填 | 说明 | 7362| :----- | :----- | :--- | :-------------------------------------------------- | 7363| type | string | 是 | 要取消订阅事件的类型。支持的事件为:'periodReach'。 | 7364 7365**示例:** 7366 7367```ts 7368audioRenderer.off('periodReach') 7369``` 7370 7371### on('stateChange') <sup>8+</sup> 7372 7373on(type: 'stateChange', callback: Callback<AudioState\>): void 7374 7375订阅监听状态变化。 7376 7377**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7378 7379**参数:** 7380 7381| 参数名 | 类型 | 必填 | 说明 | 7382| :------- | :------------------------- | :--- | :------------------------------------------ | 7383| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 | 7384| callback | Callback\<[AudioState](#audiostate8)> | 是 | 返回监听的状态。 | 7385 7386**示例:** 7387 7388```ts 7389audioRenderer.on('stateChange', (state: audio.AudioState) => { 7390 if (state == 1) { 7391 console.info('audio renderer state is: STATE_PREPARED'); 7392 } 7393 if (state == 2) { 7394 console.info('audio renderer state is: STATE_RUNNING'); 7395 } 7396}); 7397``` 7398 7399### on('outputDeviceChange') <sup>10+</sup> 7400 7401on(type: 'outputDeviceChange', callback: Callback\<AudioDeviceDescriptors>): void; 7402 7403订阅监听音频输出设备变化。 7404 7405**系统能力:** SystemCapability.Multimedia.Audio.Device 7406 7407**参数:** 7408 7409| 参数名 | 类型 | 必填 | 说明 | 7410| :------- | :------------------------- | :--- | :------------------------------------------ | 7411| type | string | 是 | 事件回调类型,支持的事件为:'outputDeviceChange'。 | 7412| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 返回监听的音频设备变化。 | 7413 7414**错误码:** 7415 7416| 错误码ID | 错误信息 | 7417| ------- | --------------------------------------------| 7418| 6800101 | if input parameter value error. | 7419 7420**示例:** 7421 7422```ts 7423audioRenderer.on('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => { 7424 console.info(`DeviceInfo id: ${deviceInfo[0].id}`); 7425 console.info(`DeviceInfo name: ${deviceInfo[0].name}`); 7426 console.info(`DeviceInfo address: ${deviceInfo[0].address}`); 7427}); 7428``` 7429### off('outputDeviceChange') <sup>10+</sup> 7430 7431off(type: 'outputDeviceChange', callback?: Callback\<AudioDeviceDescriptors>): void; 7432 7433取消订阅监听音频输出设备变化。 7434 7435**系统能力:** SystemCapability.Multimedia.Audio.Device 7436 7437**参数:** 7438 7439| 参数名 | 类型 | 必填 | 说明 | 7440| :------- | :------------------------- | :--- | :------------------------------------------ | 7441| type | string | 是 | 事件回调类型,支持的事件为:'outputDeviceChange'。 | 7442| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 取消监听的音频设备变化。 | 7443 7444**错误码:** 7445 7446| 错误码ID | 错误信息 | 7447| ------- | --------------------------------------------| 7448| 6800101 | if input parameter value error. | 7449 7450**示例:** 7451 7452```ts 7453audioRenderer.off('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => { 7454 console.info(`DeviceInfo id: ${deviceInfo[0].id}`); 7455 console.info(`DeviceInfo name: ${deviceInfo[0].name}`); 7456 console.info(`DeviceInfo address: ${deviceInfo[0].address}`); 7457}); 7458``` 7459 7460## AudioCapturer<sup>8+</sup> 7461 7462提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。 7463 7464### 属性 7465 7466**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7467 7468| 名称 | 类型 | 可读 | 可写 | 说明 | 7469| :---- | :------------------------- | :--- | :--- | :--------------- | 7470| state<sup>8+</sup> | [AudioState](#audiostate8) | 是 | 否 | 音频采集器状态。 | 7471 7472**示例:** 7473 7474```ts 7475import audio from '@ohos.multimedia.audio'; 7476let state: audio.AudioState = audioCapturer.state; 7477``` 7478 7479### getCapturerInfo<sup>8+</sup> 7480 7481getCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void 7482 7483获取采集器信息。使用callback方式异步返回结果。 7484 7485**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7486 7487**参数:** 7488 7489| 参数名 | 类型 | 必填 | 说明 | 7490| :------- | :-------------------------------- | :--- | :----------------------------------- | 7491| callback | AsyncCallback<AudioCapturerInfo\> | 是 | 使用callback方式异步返回采集器信息。 | 7492 7493**示例:** 7494 7495```ts 7496import { BusinessError } from '@ohos.base'; 7497audioCapturer.getCapturerInfo((err: BusinessError, capturerInfo: audio.AudioCapturerInfo) => { 7498 if (err) { 7499 console.error('Failed to get capture info'); 7500 } else { 7501 console.info('Capturer getCapturerInfo:'); 7502 console.info(`Capturer source: ${capturerInfo.source}`); 7503 console.info(`Capturer flags: ${capturerInfo.capturerFlags}`); 7504 } 7505}); 7506``` 7507 7508 7509### getCapturerInfo<sup>8+</sup> 7510 7511getCapturerInfo(): Promise<AudioCapturerInfo\> 7512 7513获取采集器信息。使用Promise方式异步返回结果。 7514 7515**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7516 7517**返回值:** 7518 7519| 类型 | 说明 | 7520| :------------------------------------------------ | :---------------------------------- | 7521| Promise<[AudioCapturerInfo](#audiocapturerinfo)\> | 使用Promise方式异步返回采集器信息。 | 7522 7523**示例:** 7524 7525```ts 7526import { BusinessError } from '@ohos.base'; 7527audioCapturer.getCapturerInfo().then((audioParamsGet: audio.AudioCapturerInfo) => { 7528 if (audioParamsGet != undefined) { 7529 console.info('AudioFrameworkRecLog: Capturer CapturerInfo:'); 7530 console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`); 7531 console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`); 7532 } else { 7533 console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`); 7534 console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect'); 7535 } 7536}).catch((err: BusinessError) => { 7537 console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`); 7538}) 7539``` 7540 7541### getCapturerInfoSync<sup>10+</sup> 7542 7543getCapturerInfoSync(): AudioCapturerInfo 7544 7545获取采集器信息,同步返回结果。 7546 7547**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7548 7549**返回值:** 7550 7551| 类型 | 说明 | 7552| :------------------------------------------------ | :---------------------------------- | 7553| [AudioCapturerInfo](#audiocapturerinfo) | 返回采集器信息。 | 7554 7555**示例:** 7556 7557```ts 7558import { BusinessError } from '@ohos.base'; 7559 7560try { 7561 let audioParamsGet: audio.AudioCapturerInfo = audioCapturer.getCapturerInfoSync(); 7562 console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`); 7563 console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`); 7564} catch (err) { 7565 let error = err as BusinessError; 7566 console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${error}`); 7567} 7568``` 7569 7570### getStreamInfo<sup>8+</sup> 7571 7572getStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void 7573 7574获取采集器流信息。使用callback方式异步返回结果。 7575 7576**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7577 7578**参数:** 7579 7580| 参数名 | 类型 | 必填 | 说明 | 7581| :------- | :--------------------------------------------------- | :--- | :------------------------------- | 7582| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是 | 使用callback方式异步返回流信息。 | 7583 7584**示例:** 7585 7586```ts 7587import { BusinessError } from '@ohos.base'; 7588audioCapturer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => { 7589 if (err) { 7590 console.error('Failed to get stream info'); 7591 } else { 7592 console.info('Capturer GetStreamInfo:'); 7593 console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`); 7594 console.info(`Capturer channel: ${streamInfo.channels}`); 7595 console.info(`Capturer format: ${streamInfo.sampleFormat}`); 7596 console.info(`Capturer encoding type: ${streamInfo.encodingType}`); 7597 } 7598}); 7599``` 7600 7601### getStreamInfo<sup>8+</sup> 7602 7603getStreamInfo(): Promise<AudioStreamInfo\> 7604 7605获取采集器流信息。使用Promise方式异步返回结果。 7606 7607**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7608 7609**返回值:** 7610 7611| 类型 | 说明 | 7612| :--------------------------------------------- | :------------------------------ | 7613| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | 使用Promise方式异步返回流信息。 | 7614 7615**示例:** 7616 7617```ts 7618import { BusinessError } from '@ohos.base'; 7619audioCapturer.getStreamInfo().then((audioParamsGet: audio.AudioStreamInfo) => { 7620 console.info('getStreamInfo:'); 7621 console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`); 7622 console.info(`samplingRate: ${audioParamsGet.samplingRate}`); 7623 console.info(`channels: ${audioParamsGet.channels}`); 7624 console.info(`encodingType: ${audioParamsGet.encodingType}`); 7625}).catch((err: BusinessError) => { 7626 console.error(`getStreamInfo :ERROR: ${err}`); 7627}); 7628``` 7629 7630### getStreamInfoSync<sup>10+</sup> 7631 7632getStreamInfoSync(): AudioStreamInfo 7633 7634获取采集器流信息,同步返回结果。 7635 7636**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7637 7638**返回值:** 7639 7640| 类型 | 说明 | 7641| :--------------------------------------------- | :------------------------------ | 7642| [AudioStreamInfo](#audiostreaminfo8) | 返回流信息。 | 7643 7644**示例:** 7645 7646```ts 7647import { BusinessError } from '@ohos.base'; 7648 7649try { 7650 let audioParamsGet: audio.AudioStreamInfo = audioCapturer.getStreamInfoSync(); 7651 console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`); 7652 console.info(`samplingRate: ${audioParamsGet.samplingRate}`); 7653 console.info(`channels: ${audioParamsGet.channels}`); 7654 console.info(`encodingType: ${audioParamsGet.encodingType}`); 7655} catch (err) { 7656 let error = err as BusinessError; 7657 console.error(`getStreamInfo :ERROR: ${error}`); 7658} 7659``` 7660 7661### getAudioStreamId<sup>9+</sup> 7662 7663getAudioStreamId(callback: AsyncCallback<number\>): void 7664 7665获取音频流id,使用callback方式异步返回结果。 7666 7667**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7668 7669**参数:** 7670 7671| 参数名 | 类型 | 必填 | 说明 | 7672| :------- | :--------------------------------------------------- | :--- | :------------------- | 7673| callback | AsyncCallback<number\> | 是 | 回调返回音频流id。 | 7674 7675**示例:** 7676 7677```ts 7678import { BusinessError } from '@ohos.base'; 7679audioCapturer.getAudioStreamId((err: BusinessError, streamid: number) => { 7680 console.info(`audioCapturer GetStreamId: ${streamid}`); 7681}); 7682``` 7683 7684### getAudioStreamId<sup>9+</sup> 7685 7686getAudioStreamId(): Promise<number\> 7687 7688获取音频流id,使用Promise方式异步返回结果。 7689 7690**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7691 7692**返回值:** 7693 7694| 类型 | 说明 | 7695| :----------------| :--------------------- | 7696| Promise<number\> | Promise返回音频流id。 | 7697 7698**示例:** 7699 7700```ts 7701import { BusinessError } from '@ohos.base'; 7702audioCapturer.getAudioStreamId().then((streamid: number) => { 7703 console.info(`audioCapturer getAudioStreamId: ${streamid}`); 7704}).catch((err: BusinessError) => { 7705 console.error(`ERROR: ${err}`); 7706}); 7707``` 7708 7709### getAudioStreamIdSync<sup>10+</sup> 7710 7711getAudioStreamIdSync(): number 7712 7713获取音频流id,同步返回结果。 7714 7715**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7716 7717**返回值:** 7718 7719| 类型 | 说明 | 7720| :----------------| :--------------------- | 7721| number | 返回音频流id。 | 7722 7723**示例:** 7724 7725```ts 7726import { BusinessError } from '@ohos.base'; 7727 7728try { 7729 let streamid: number = audioCapturer.getAudioStreamIdSync(); 7730 console.info(`audioCapturer getAudioStreamIdSync: ${streamid}`); 7731} catch (err) { 7732 let error = err as BusinessError; 7733 console.error(`ERROR: ${error}`); 7734} 7735``` 7736 7737### start<sup>8+</sup> 7738 7739start(callback: AsyncCallback<void\>): void 7740 7741启动音频采集器。使用callback方式异步返回结果。 7742 7743**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7744 7745**参数:** 7746 7747| 参数名 | 类型 | 必填 | 说明 | 7748| :------- | :------------------- | :--- | :----------------------------- | 7749| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 7750 7751**示例:** 7752 7753```ts 7754import { BusinessError } from '@ohos.base'; 7755audioCapturer.start((err: BusinessError) => { 7756 if (err) { 7757 console.error('Capturer start failed.'); 7758 } else { 7759 console.info('Capturer start success.'); 7760 } 7761}); 7762``` 7763 7764 7765### start<sup>8+</sup> 7766 7767start(): Promise<void\> 7768 7769启动音频采集器。使用Promise方式异步返回结果。 7770 7771**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7772 7773**返回值:** 7774 7775| 类型 | 说明 | 7776| :------------- | :---------------------------- | 7777| Promise<void\> | 使用Promise方式异步返回结果。 | 7778 7779**示例:** 7780 7781```ts 7782import { BusinessError } from '@ohos.base'; 7783audioCapturer.start().then(() => { 7784 console.info('AudioFrameworkRecLog: ---------START---------'); 7785 console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); 7786 console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`); 7787 console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); 7788 if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) { 7789 console.info('AudioFrameworkRecLog: AudioCapturer is in Running State'); 7790 } 7791}).catch((err: BusinessError) => { 7792 console.info(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`); 7793}); 7794``` 7795 7796### stop<sup>8+</sup> 7797 7798stop(callback: AsyncCallback<void\>): void 7799 7800停止采集。使用callback方式异步返回结果。 7801 7802**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7803 7804**参数:** 7805 7806| 参数名 | 类型 | 必填 | 说明 | 7807| :------- | :------------------- | :--- | :----------------------------- | 7808| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 7809 7810**示例:** 7811 7812```ts 7813import { BusinessError } from '@ohos.base'; 7814audioCapturer.stop((err: BusinessError) => { 7815 if (err) { 7816 console.error('Capturer stop failed'); 7817 } else { 7818 console.info('Capturer stopped.'); 7819 } 7820}); 7821``` 7822 7823 7824### stop<sup>8+</sup> 7825 7826stop(): Promise<void\> 7827 7828停止采集。使用Promise方式异步返回结果。 7829 7830**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7831 7832**返回值:** 7833 7834| 类型 | 说明 | 7835| :------------- | :---------------------------- | 7836| Promise<void\> | 使用Promise方式异步返回结果。 | 7837 7838**示例:** 7839 7840```ts 7841import { BusinessError } from '@ohos.base'; 7842audioCapturer.stop().then(() => { 7843 console.info('AudioFrameworkRecLog: ---------STOP RECORD---------'); 7844 console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS'); 7845 if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){ 7846 console.info('AudioFrameworkRecLog: State is Stopped:'); 7847 } 7848}).catch((err: BusinessError) => { 7849 console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`); 7850}); 7851``` 7852 7853### release<sup>8+</sup> 7854 7855release(callback: AsyncCallback<void\>): void 7856 7857释放采集器。使用callback方式异步返回结果。 7858 7859**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7860 7861**参数:** 7862 7863| 参数名 | 类型 | 必填 | 说明 | 7864| :------- | :------------------- | :--- | :---------------------------------- | 7865| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 7866 7867**示例:** 7868 7869```ts 7870import { BusinessError } from '@ohos.base'; 7871audioCapturer.release((err: BusinessError) => { 7872 if (err) { 7873 console.error('capturer release failed'); 7874 } else { 7875 console.info('capturer released.'); 7876 } 7877}); 7878``` 7879 7880 7881### release<sup>8+</sup> 7882 7883release(): Promise<void\> 7884 7885释放采集器。使用Promise方式异步返回结果。 7886 7887**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7888 7889**返回值:** 7890 7891| 类型 | 说明 | 7892| :------------- | :---------------------------- | 7893| Promise<void\> | 使用Promise方式异步返回结果。 | 7894 7895**示例:** 7896 7897```ts 7898import { BusinessError } from '@ohos.base'; 7899audioCapturer.release().then(() => { 7900 console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); 7901 console.info('AudioFrameworkRecLog: Capturer release : SUCCESS'); 7902 console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`); 7903}).catch((err: BusinessError) => { 7904 console.info(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`); 7905}); 7906``` 7907 7908### read<sup>8+</sup> 7909 7910read(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void 7911 7912读入缓冲区。使用callback方式异步返回结果。 7913 7914**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7915 7916**参数:** 7917 7918| 参数名 | 类型 | 必填 | 说明 | 7919| :------------- | :-------------------------- | :--- | :------------------------------- | 7920| size | number | 是 | 读入的字节数。 | 7921| isBlockingRead | boolean | 是 | 是否阻塞读操作。 | 7922| callback | AsyncCallback<ArrayBuffer\> | 是 | 使用callback方式异步返回缓冲区。 | 7923 7924**示例:** 7925 7926```ts 7927import { BusinessError } from '@ohos.base'; 7928let bufferSize: number = 0; 7929audioCapturer.getBufferSize().then((data: number) => { 7930 console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`); 7931 bufferSize = data; 7932}).catch((err: BusinessError) => { 7933 console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`); 7934}); 7935audioCapturer.read(bufferSize, true, (err: BusinessError, buffer: number) => { 7936 if (!err) { 7937 console.info('Success in reading the buffer data'); 7938 } 7939}); 7940``` 7941 7942### read<sup>8+</sup> 7943 7944read(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\> 7945 7946读入缓冲区。使用Promise方式异步返回结果。 7947 7948**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7949 7950**参数:** 7951 7952| 参数名 | 类型 | 必填 | 说明 | 7953| :------------- | :------ | :--- | :--------------- | 7954| size | number | 是 | 读入的字节数。 | 7955| isBlockingRead | boolean | 是 | 是否阻塞读操作。 | 7956 7957**返回值:** 7958 7959| 类型 | 说明 | 7960| :-------------------- | :----------------------------------------------------- | 7961| Promise<ArrayBuffer\> | 如果操作成功,返回读取的缓冲区数据;否则返回错误代码。 | 7962 7963**示例:** 7964 7965```ts 7966import { BusinessError } from '@ohos.base'; 7967let bufferSize: number = 0; 7968audioCapturer.getBufferSize().then((data: number) => { 7969 console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`); 7970 bufferSize = data; 7971}).catch((err: BusinessError) => { 7972 console.info(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`); 7973}); 7974console.info(`Buffer size: ${bufferSize}`); 7975audioCapturer.read(bufferSize, true).then((buffer: number) => { 7976 console.info('buffer read successfully'); 7977}).catch((err: BusinessError) => { 7978 console.info(`ERROR : ${err}`); 7979}); 7980``` 7981 7982### getAudioTime<sup>8+</sup> 7983 7984getAudioTime(callback: AsyncCallback<number\>): void 7985 7986获取时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。 7987 7988**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7989 7990**参数:** 7991 7992| 参数名 | 类型 | 必填 | 说明 | 7993| :------- | :--------------------- | :--- | :----------------------------- | 7994| callback | AsyncCallback<number\> | 是 | 使用callback方式异步返回结果。 | 7995 7996**示例:** 7997 7998```ts 7999import { BusinessError } from '@ohos.base'; 8000audioCapturer.getAudioTime((err: BusinessError, timestamp: number) => { 8001 console.info(`Current timestamp: ${timestamp}`); 8002}); 8003``` 8004 8005### getAudioTime<sup>8+</sup> 8006 8007getAudioTime(): Promise<number\> 8008 8009获取时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。 8010 8011**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8012 8013**返回值:** 8014 8015| 类型 | 说明 | 8016| :--------------- | :---------------------------- | 8017| Promise<number\> | 使用Promise方式异步返回结果。 | 8018 8019**示例:** 8020 8021```ts 8022import { BusinessError } from '@ohos.base'; 8023audioCapturer.getAudioTime().then((audioTime: number) => { 8024 console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`); 8025}).catch((err: BusinessError) => { 8026 console.info(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`); 8027}); 8028``` 8029 8030### getAudioTimeSync<sup>10+</sup> 8031 8032getAudioTimeSync(): number 8033 8034获取时间戳(从1970年1月1日开始),单位为纳秒,同步返回结果。 8035 8036**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8037 8038**返回值:** 8039 8040| 类型 | 说明 | 8041| :--------------- | :---------------------------- | 8042| number | 返回时间戳。 | 8043 8044**示例:** 8045 8046```ts 8047import { BusinessError } from '@ohos.base'; 8048 8049try { 8050 let audioTime: number = audioCapturer.getAudioTimeSync(); 8051 console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : Success ${audioTime}`); 8052} catch (err) { 8053 let error = err as BusinessError; 8054 console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : ERROR : ${error}`); 8055} 8056``` 8057 8058### getBufferSize<sup>8+</sup> 8059 8060getBufferSize(callback: AsyncCallback<number\>): void 8061 8062获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。 8063 8064**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8065 8066**参数:** 8067 8068| 参数名 | 类型 | 必填 | 说明 | 8069| :------- | :--------------------- | :--- | :----------------------------------- | 8070| callback | AsyncCallback<number\> | 是 | 使用callback方式异步返回缓冲区大小。 | 8071 8072**示例:** 8073 8074```ts 8075import { BusinessError } from '@ohos.base'; 8076audioCapturer.getBufferSize((err: BusinessError, bufferSize: number) => { 8077 if (!err) { 8078 console.info(`BufferSize : ${bufferSize}`); 8079 audioCapturer.read(bufferSize, true).then((buffer: number) => { 8080 console.info(`Buffer read is ${buffer}`); 8081 }).catch((err: BusinessError) => { 8082 console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`); 8083 }); 8084 } 8085}); 8086``` 8087 8088### getBufferSize<sup>8+</sup> 8089 8090getBufferSize(): Promise<number\> 8091 8092获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。 8093 8094**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8095 8096**返回值:** 8097 8098| 类型 | 说明 | 8099| :--------------- | :---------------------------------- | 8100| Promise<number\> | 使用Promise方式异步返回缓冲区大小。 | 8101 8102**示例:** 8103 8104```ts 8105import { BusinessError } from '@ohos.base'; 8106let bufferSize: number = 0; 8107audioCapturer.getBufferSize().then((data: number) => { 8108 console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`); 8109 bufferSize = data; 8110}).catch((err: BusinessError) => { 8111 console.info(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`); 8112}); 8113``` 8114 8115### getBufferSizeSync<sup>10+</sup> 8116 8117getBufferSizeSync(): number 8118 8119获取采集器合理的最小缓冲区大小,同步返回结果。 8120 8121**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8122 8123**返回值:** 8124 8125| 类型 | 说明 | 8126| :--------------- | :---------------------------------- | 8127| number | 返回缓冲区大小。 | 8128 8129**示例:** 8130 8131```ts 8132import { BusinessError } from '@ohos.base'; 8133 8134let bufferSize: number = 0; 8135try { 8136 bufferSize = audioCapturer.getBufferSizeSync(); 8137 console.info(`AudioFrameworkRecLog: getBufferSizeSync :SUCCESS ${bufferSize}`); 8138} catch (err) { 8139 let error = err as BusinessError; 8140 console.info(`AudioFrameworkRecLog: getBufferSizeSync :ERROR : ${error}`); 8141} 8142``` 8143 8144### on('audioInterrupt')<sup>10+</sup> 8145 8146on(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void 8147 8148监听音频中断事件。使用callback获取中断事件。 8149 8150与[on('interrupt')](#oninterrupt)一致,均用于监听焦点变化。AudioCapturer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。 8151 8152**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 8153 8154**参数:** 8155 8156| 参数名 | 类型 | 必填 | 说明 | 8157| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 8158| type | string | 是 | 事件回调类型,支持的事件为:'audioInterrupt'(中断事件被触发,音频采集被中断。) | 8159| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是 | 被监听的中断事件的回调。 | 8160 8161**错误码:** 8162 8163以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 8164 8165| 错误码ID | 错误信息 | 8166| ------- | --------------------------------------------| 8167| 6800101 | if input parameter value error | 8168 8169**示例:** 8170 8171```ts 8172import audio from '@ohos.multimedia.audio'; 8173let isCapturing: boolean; // 标识符,表示是否正在采集 8174onAudioInterrupt(); 8175 8176async function onAudioInterrupt(){ 8177 audioCapturer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => { 8178 if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) { 8179 // 由系统进行操作,强制打断音频采集,应用需更新自身状态及显示内容等 8180 switch (interruptEvent.hintType) { 8181 case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 8182 // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent 8183 console.info('Force paused. Update capturing status and stop reading'); 8184 isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作 8185 break; 8186 case audio.InterruptHint.INTERRUPT_HINT_STOP: 8187 // 音频流已被停止,永久失去焦点,若想恢复采集,需用户主动触发 8188 console.info('Force stopped. Update capturing status and stop reading'); 8189 isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作 8190 break; 8191 default: 8192 console.info('Invalid interruptEvent'); 8193 break; 8194 } 8195 } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) { 8196 // 由应用进行操作,应用可以自主选择打断或忽略 8197 switch (interruptEvent.hintType) { 8198 case audio.InterruptHint.INTERRUPT_HINT_RESUME: 8199 // 建议应用继续采集(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复采集) 8200 console.info('Resume force paused renderer or ignore'); 8201 // 若选择继续采集,需在此处主动执行开始采集的若干操作 8202 break; 8203 case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 8204 // 建议应用暂停采集 8205 console.info('Choose to pause or ignore'); 8206 // 若选择暂停采集,需在此处主动执行暂停采集的若干操作 8207 break; 8208 case audio.InterruptHint.INTERRUPT_HINT_STOP: 8209 // 建议应用停止采集 8210 console.info('Choose to stop or ignore'); 8211 // 若选择停止采集,需在此处主动执行停止采集的若干操作 8212 break; 8213 default: 8214 break; 8215 } 8216 } 8217 }); 8218} 8219``` 8220 8221### off('audioInterrupt')<sup>10+</sup> 8222 8223off(type: 'audioInterrupt'): void 8224 8225取消订阅音频中断事件。 8226 8227**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 8228 8229**参数:** 8230 8231| 参数名 | 类型 | 必填 | 说明 | 8232| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 8233| type | string | 是 | 事件回调类型,支持的事件为:'audioInterrupt' | 8234 8235**错误码:** 8236 8237以下错误码的详细介绍请参见[音频错误码](../errorcodes/errorcode-audio.md)。 8238 8239| 错误码ID | 错误信息 | 8240| ------- | --------------------------------------------| 8241| 6800101 | if input parameter value error | 8242 8243**示例:** 8244 8245```ts 8246audioCapturer.off('audioInterrupt'); 8247``` 8248 8249 8250### on('markReach')<sup>8+</sup> 8251 8252on(type: 'markReach', frame: number, callback: Callback<number>): void 8253 8254订阅标记到达的事件。 当采集的帧数达到 frame 参数的值时,回调被触发。 8255 8256**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8257 8258**参数:** 8259 8260| 参数名 | 类型 | 必填 | 说明 | 8261| :------- | :---------------------- | :--- | :----------------------------------------- | 8262| type | string | 是 | 事件回调类型,支持的事件为:'markReach'。 | 8263| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 | 8264| callback | Callback\<number> | 是 | 使用callback方式异步返回被触发事件的回调。 | 8265 8266**示例:** 8267 8268```ts 8269audioCapturer.on('markReach', 1000, (position: number) => { 8270 if (position == 1000) { 8271 console.info('ON Triggered successfully'); 8272 } 8273}); 8274``` 8275 8276### off('markReach')<sup>8+</sup> 8277 8278off(type: 'markReach'): void 8279 8280取消订阅标记到达的事件。 8281 8282**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8283 8284**参数:** 8285 8286| 参数名 | 类型 | 必填 | 说明 | 8287| :----- | :----- | :--- | :-------------------------------------------- | 8288| type | string | 是 | 取消事件回调类型,支持的事件为:'markReach'。 | 8289 8290**示例:** 8291 8292```ts 8293audioCapturer.off('markReach'); 8294``` 8295 8296### on('periodReach')<sup>8+</sup> 8297 8298on(type: 'periodReach', frame: number, callback: Callback<number>): void 8299 8300订阅到达标记的事件。 当采集的帧数达到 frame 参数的值时,触发回调并返回设定的值。 8301 8302**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8303 8304**参数:** 8305 8306| 参数名 | 类型 | 必填 | 说明 | 8307| :------- | :----------------------- | :--- | :------------------------------------------ | 8308| type | string | 是 | 事件回调类型,支持的事件为:'periodReach'。 | 8309| frame | number | 是 | 触发事件的帧数。 该值必须大于0。 | 8310| callback | Callback\<number> | 是 | 使用callback方式异步返回被触发事件的回调 | 8311 8312**示例:** 8313 8314```ts 8315audioCapturer.on('periodReach', 1000, (position: number) => { 8316 if (position == 1000) { 8317 console.info('ON Triggered successfully'); 8318 } 8319}); 8320``` 8321 8322### off('periodReach')<sup>8+</sup> 8323 8324off(type: 'periodReach'): void 8325 8326取消订阅标记到达的事件。 8327 8328**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8329 8330**参数:** 8331 8332| 参数名 | 类型 | 必填 | 说明 | 8333| :----- | :----- | :--- | :---------------------------------------------- | 8334| type | string | 是 | 取消事件回调类型,支持的事件为:'periodReach'。 | 8335 8336**示例:** 8337 8338```ts 8339audioCapturer.off('periodReach') 8340``` 8341 8342### on('stateChange') <sup>8+</sup> 8343 8344on(type: 'stateChange', callback: Callback<AudioState\>): void 8345 8346订阅监听状态变化。 8347 8348**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8349 8350**参数:** 8351 8352| 参数名 | 类型 | 必填 | 说明 | 8353| :------- | :------------------------- | :--- | :------------------------------------------ | 8354| type | string | 是 | 事件回调类型,支持的事件为:'stateChange'。 | 8355| callback | Callback\<[AudioState](#audiostate8)> | 是 | 返回监听的状态。 | 8356 8357**示例:** 8358 8359```ts 8360audioCapturer.on('stateChange', (state: audio.AudioState) => { 8361 if (state == 1) { 8362 console.info('audio capturer state is: STATE_PREPARED'); 8363 } 8364 if (state == 2) { 8365 console.info('audio capturer state is: STATE_RUNNING'); 8366 } 8367}); 8368``` 8369 8370## ToneType<sup>9+</sup> 8371 8372枚举,播放器的音调类型。 8373 8374**系统接口:** 该接口为系统接口 8375 8376**系统能力:** SystemCapability.Multimedia.Audio.Tone 8377 8378| 名称 | 值 | 说明 | 8379| :------------------------------------------------ | :----- | :----------------------------| 8380| TONE_TYPE_DIAL_0 | 0 | 键0的DTMF音。 | 8381| TONE_TYPE_DIAL_1 | 1 | 键1的DTMF音。 | 8382| TONE_TYPE_DIAL_2 | 2 | 键2的DTMF音。 | 8383| TONE_TYPE_DIAL_3 | 3 | 键3的DTMF音。 | 8384| TONE_TYPE_DIAL_4 | 4 | 键4的DTMF音。 | 8385| TONE_TYPE_DIAL_5 | 5 | 键5的DTMF音。 | 8386| TONE_TYPE_DIAL_6 | 6 | 键6的DTMF音。 | 8387| TONE_TYPE_DIAL_7 | 7 | 键7的DTMF音。 | 8388| TONE_TYPE_DIAL_8 | 8 | 键8的DTMF音。 | 8389| TONE_TYPE_DIAL_9 | 9 | 键9的DTMF音。 | 8390| TONE_TYPE_DIAL_S | 10 | 键*的DTMF音。 | 8391| TONE_TYPE_DIAL_P | 11 | 键#的DTMF音。 | 8392| TONE_TYPE_DIAL_A | 12 | 键A的DTMF音。 | 8393| TONE_TYPE_DIAL_B | 13 | 键B的DTMF音。 | 8394| TONE_TYPE_DIAL_C | 14 | 键C的DTMF音。 | 8395| TONE_TYPE_DIAL_D | 15 | 键D的DTMF音。 | 8396| TONE_TYPE_COMMON_SUPERVISORY_DIAL | 100 | 呼叫监管音调,拨号音。 | 8397| TONE_TYPE_COMMON_SUPERVISORY_BUSY | 101 | 呼叫监管音调,忙。 | 8398| TONE_TYPE_COMMON_SUPERVISORY_CONGESTION | 102 | 呼叫监管音调,拥塞。 | 8399| TONE_TYPE_COMMON_SUPERVISORY_RADIO_ACK | 103 | 呼叫监管音调,无线电 ACK。 | 8400| TONE_TYPE_COMMON_SUPERVISORY_RADIO_NOT_AVAILABLE | 104 | 呼叫监管音调,无线电不可用。 | 8401| TONE_TYPE_COMMON_SUPERVISORY_CALL_WAITING | 106 | 呼叫监管音调,呼叫等待。 | 8402| TONE_TYPE_COMMON_SUPERVISORY_RINGTONE | 107 | 呼叫监管音调,铃声。 | 8403| TONE_TYPE_COMMON_PROPRIETARY_BEEP | 200 | 专有声调,一般蜂鸣声。 | 8404| TONE_TYPE_COMMON_PROPRIETARY_ACK | 201 | 专有声调,ACK。 | 8405| TONE_TYPE_COMMON_PROPRIETARY_PROMPT | 203 | 专有声调,PROMPT。 | 8406| TONE_TYPE_COMMON_PROPRIETARY_DOUBLE_BEEP | 204 | 专有声调,双重蜂鸣声。 | 8407 8408## TonePlayer<sup>9+</sup> 8409 8410提供播放和管理DTMF(Dual Tone Multi Frequency,双音多频)音调的方法,包括各种系统监听音调、专有音调,如拨号音、通话回铃音等。 8411 8412**系统接口:** 该接口为系统接口 8413 8414### load<sup>9+</sup> 8415 8416load(type: ToneType, callback: AsyncCallback<void>): void 8417 8418加载DTMF音调配置。使用callback方式异步返回结果。 8419 8420**系统接口:** 该接口为系统接口 8421 8422**系统能力:** SystemCapability.Multimedia.Audio.Tone 8423 8424**参数:** 8425 8426| 参数名 | 类型 | 必填 | 说明 | 8427| :--------------| :-------------------------- | :-----| :------------------------------ | 8428| type | [ToneType](#tonetype9) | 是 | 配置的音调类型。 | 8429| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 8430 8431**示例:** 8432 8433```ts 8434import { BusinessError } from '@ohos.base'; 8435tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_5, (err: BusinessError) => { 8436 if (err) { 8437 console.error(`callback call load failed error: ${err.message}`); 8438 return; 8439 } else { 8440 console.info('callback call load success'); 8441 } 8442}); 8443``` 8444 8445### load<sup>9+</sup> 8446 8447load(type: ToneType): Promise<void> 8448 8449加载DTMF音调配置。使用Promise方式异步返回结果。 8450 8451**系统接口:** 该接口为系统接口 8452 8453**系统能力:** SystemCapability.Multimedia.Audio.Tone 8454 8455**参数:** 8456 8457| 参数名 | 类型 | 必填 | 说明 | 8458| :------------- | :--------------------- | :--- | ---------------- | 8459| type | [ToneType](#tonetype9) | 是 | 配置的音调类型。 | 8460 8461**返回值:** 8462 8463| 类型 | 说明 | 8464| :--------------| :-------------------------- | 8465| Promise<void\> | 使用Promise方式异步返回结果。 | 8466 8467**示例:** 8468 8469```ts 8470tonePlayer.load(audio.ToneType.TONE_TYPE_DIAL_1).then(() => { 8471 console.info('promise call load '); 8472}).catch(() => { 8473 console.error('promise call load fail'); 8474}); 8475``` 8476 8477### start<sup>9+</sup> 8478 8479start(callback: AsyncCallback<void>): void 8480 8481启动DTMF音调播放。使用callback方式异步返回结果。 8482 8483**系统接口:** 该接口为系统接口 8484 8485**系统能力:** SystemCapability.Multimedia.Audio.Tone 8486 8487**参数:** 8488 8489| 参数名 | 类型 | 必填 | 说明 | 8490| :------- | :------------------- | :--- | :----------------------------- | 8491| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 8492 8493**示例:** 8494 8495```ts 8496import { BusinessError } from '@ohos.base'; 8497tonePlayer.start((err: BusinessError) => { 8498 if (err) { 8499 console.error(`callback call start failed error: ${err.message}`); 8500 return; 8501 } else { 8502 console.info('callback call start success'); 8503 } 8504}); 8505``` 8506 8507### start<sup>9+</sup> 8508 8509start(): Promise<void> 8510 8511启动DTMF音调播放。使用Promise方式异步返回结果。 8512 8513**系统接口:** 该接口为系统接口 8514 8515**系统能力:** SystemCapability.Multimedia.Audio.Tone 8516 8517**返回值:** 8518 8519| 类型 | 说明 | 8520| :------------- | :---------------------------- | 8521| Promise<void\> | 使用Promise方式异步返回结果。 | 8522 8523**示例:** 8524 8525```ts 8526tonePlayer.start().then(() => { 8527 console.info('promise call start'); 8528}).catch(() => { 8529 console.error('promise call start fail'); 8530}); 8531``` 8532 8533### stop<sup>9+</sup> 8534 8535stop(callback: AsyncCallback<void>): void 8536 8537停止当前正在播放的音调。使用callback方式异步返回结果。 8538 8539**系统接口:** 该接口为系统接口 8540 8541**系统能力:** SystemCapability.Multimedia.Audio.Tone 8542 8543**参数:** 8544 8545| 参数名 | 类型 | 必填 | 说明 | 8546| :------- | :------------------- | :--- | :----------------------------- | 8547| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 8548 8549**示例:** 8550 8551```ts 8552import { BusinessError } from '@ohos.base'; 8553tonePlayer.stop((err: BusinessError) => { 8554 if (err) { 8555 console.error(`callback call stop error: ${err.message}`); 8556 return; 8557 } else { 8558 console.error('callback call stop success '); 8559 } 8560}); 8561``` 8562 8563### stop<sup>9+</sup> 8564 8565stop(): Promise<void> 8566 8567停止当前正在播放的音调。使用Promise方式异步返回结果。 8568 8569**系统接口:** 该接口为系统接口 8570 8571**系统能力:** SystemCapability.Multimedia.Audio.Tone 8572 8573**返回值:** 8574 8575| 类型 | 说明 | 8576| :------------- | :---------------------------- | 8577| Promise<void\> | 使用Promise方式异步返回结果。 | 8578 8579**示例:** 8580 8581```ts 8582tonePlayer.stop().then(() => { 8583 console.info('promise call stop finish'); 8584}).catch(() => { 8585 console.error('promise call stop fail'); 8586}); 8587``` 8588 8589### release<sup>9+</sup> 8590 8591release(callback: AsyncCallback<void>): void 8592 8593释放与此TonePlayer对象关联的资源。使用callback方式异步返回结果。 8594 8595**系统接口:** 该接口为系统接口 8596 8597**系统能力:** SystemCapability.Multimedia.Audio.Tone 8598 8599**参数:** 8600 8601| 参数名 | 类型 | 必填 | 说明 | 8602| :------- | :------------------- | :--- | :---------------------------- | 8603| callback | AsyncCallback<void\> | 是 | 使用callback方式异步返回结果。 | 8604 8605**示例:** 8606 8607```ts 8608import { BusinessError } from '@ohos.base'; 8609tonePlayer.release((err: BusinessError) => { 8610 if (err) { 8611 console.error(`callback call release failed error: ${err.message}`); 8612 return; 8613 } else { 8614 console.info('callback call release success '); 8615 } 8616}); 8617``` 8618 8619### release<sup>9+</sup> 8620 8621release(): Promise<void> 8622 8623释放与此TonePlayer对象关联的资源。使用Promise方式异步返回结果。 8624 8625**系统接口:** 该接口为系统接口 8626 8627**系统能力:** SystemCapability.Multimedia.Audio.Tone 8628 8629**返回值:** 8630 8631| 类型 | 说明 | 8632| :------------- | :---------------------------- | 8633| Promise<void\> | 使用Promise方式异步返回结果。 | 8634 8635**示例:** 8636 8637```ts 8638tonePlayer.release().then(() => { 8639 console.info('promise call release'); 8640}).catch(() => { 8641 console.error('promise call release fail'); 8642}); 8643``` 8644 8645## ActiveDeviceType<sup>(deprecated)</sup> 8646 8647枚举,活跃设备类型。 8648 8649> **说明:** 8650> 8651> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。 8652 8653**系统能力:** SystemCapability.Multimedia.Audio.Device 8654 8655| 名称 | 值 | 说明 | 8656| ------------- | ------ | ---------------------------------------------------- | 8657| SPEAKER | 2 | 扬声器。 | 8658| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 | 8659 8660## InterruptActionType<sup>(deprecated)</sup> 8661 8662枚举,中断事件返回类型。 8663 8664> **说明:** 8665> 8666> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。 8667 8668**系统能力:** SystemCapability.Multimedia.Audio.Renderer 8669 8670| 名称 | 值 | 说明 | 8671| -------------- | ------ | ------------------ | 8672| TYPE_ACTIVATED | 0 | 表示触发焦点事件。 | 8673| TYPE_INTERRUPT | 1 | 表示音频打断事件。 | 8674 8675## AudioInterrupt<sup>(deprecated)</sup> 8676 8677音频监听事件传入的参数。 8678 8679> **说明:** 8680> 8681> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。 8682 8683**系统能力:** SystemCapability.Multimedia.Audio.Renderer 8684 8685| 名称 | 类型 | 必填 | 说明 | 8686| --------------- | --------------------------- | ----| ------------------------------------------------------------ | 8687| streamUsage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 8688| contentType | [ContentType](#contenttype) | 是 | 音频打断媒体类型。 | 8689| pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 | 8690 8691## InterruptAction<sup>(deprecated)</sup> 8692 8693音频打断/获取焦点事件的回调方法。 8694 8695> **说明:** 8696> 8697> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。 8698 8699**系统能力:** SystemCapability.Multimedia.Audio.Renderer 8700 8701| 名称 | 类型 | 必填 | 说明 | 8702| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 8703| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是 | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 | 8704| type | [InterruptType](#interrupttype) | 否 | 打断事件类型。 | 8705| hint | [InterruptHint](#interrupthint) | 否 | 打断事件提示。 | 8706| activated | boolean | 否 | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 | 8707