1e41f4b71Sopenharmony_ci# @ohos.multimedia.audio (音频管理) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci音频管理提供管理音频的一些基础能力,包括对音频音量、音频设备的管理,以及对音频数据的采集和渲染等。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci该模块提供以下音频相关的常用功能: 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci- [AudioManager](#audiomanager):音频管理。 8e41f4b71Sopenharmony_ci- [AudioRenderer](#audiorenderer8):音频渲染,用于播放PCM(Pulse Code Modulation)音频数据。 9e41f4b71Sopenharmony_ci- [AudioCapturer](#audiocapturer8):音频采集,用于录制PCM音频数据。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci> **说明:** 12e41f4b71Sopenharmony_ci> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## 导入模块 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ci```ts 17e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 18e41f4b71Sopenharmony_ci``` 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci## 常量 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 23e41f4b71Sopenharmony_ci| --------------------------------------- | ----------| ---- | ---- | ------------------ | 24e41f4b71Sopenharmony_ci| DEFAULT_VOLUME_GROUP_ID<sup>9+</sup> | number | 是 | 否 | 默认音量组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Volume | 25e41f4b71Sopenharmony_ci| DEFAULT_INTERRUPT_GROUP_ID<sup>9+</sup> | number | 是 | 否 | 默认音频中断组id。<br> **系统能力:** SystemCapability.Multimedia.Audio.Interrupt | 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci**示例:** 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci```ts 30e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ciconst defaultVolumeGroupId = audio.DEFAULT_VOLUME_GROUP_ID; 33e41f4b71Sopenharmony_ciconst defaultInterruptGroupId = audio.DEFAULT_INTERRUPT_GROUP_ID; 34e41f4b71Sopenharmony_ci``` 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci## audio.getAudioManager 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_cigetAudioManager(): AudioManager 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci获取音频管理器。 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**返回值:** 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci| 类型 | 说明 | 47e41f4b71Sopenharmony_ci| ----------------------------- | ------------ | 48e41f4b71Sopenharmony_ci| [AudioManager](#audiomanager) | 音频管理对象。 | 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci**示例:** 51e41f4b71Sopenharmony_ci```ts 52e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_cilet audioManager = audio.getAudioManager(); 55e41f4b71Sopenharmony_ci``` 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci## audio.createAudioRenderer<sup>8+</sup> 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_cicreateAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci获取音频渲染器。使用callback方式异步返回结果。 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**参数:** 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 68e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------- | ---- | ---------------- | 69e41f4b71Sopenharmony_ci| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 | 70e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRenderer](#audiorenderer8)> | 是 | 回调函数。当获取音频渲染器成功,err为undefined,data为获取到的音频渲染器对象;否则为错误对象。 | 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**示例:** 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ci```ts 75e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_cilet audioStreamInfo: audio.AudioStreamInfo = { 78e41f4b71Sopenharmony_ci samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 79e41f4b71Sopenharmony_ci channels: audio.AudioChannel.CHANNEL_1, 80e41f4b71Sopenharmony_ci sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 81e41f4b71Sopenharmony_ci encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 82e41f4b71Sopenharmony_ci}; 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_cilet audioRendererInfo: audio.AudioRendererInfo = { 85e41f4b71Sopenharmony_ci usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, 86e41f4b71Sopenharmony_ci rendererFlags: 0 87e41f4b71Sopenharmony_ci}; 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_cilet audioRendererOptions: audio.AudioRendererOptions = { 90e41f4b71Sopenharmony_ci streamInfo: audioStreamInfo, 91e41f4b71Sopenharmony_ci rendererInfo: audioRendererInfo 92e41f4b71Sopenharmony_ci}; 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ciaudio.createAudioRenderer(audioRendererOptions,(err, data) => { 95e41f4b71Sopenharmony_ci if (err) { 96e41f4b71Sopenharmony_ci console.error(`AudioRenderer Created: Error: ${err}`); 97e41f4b71Sopenharmony_ci } else { 98e41f4b71Sopenharmony_ci console.info('AudioRenderer Created: Success: SUCCESS'); 99e41f4b71Sopenharmony_ci let audioRenderer = data; 100e41f4b71Sopenharmony_ci } 101e41f4b71Sopenharmony_ci}); 102e41f4b71Sopenharmony_ci``` 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci## audio.createAudioRenderer<sup>8+</sup> 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_cicreateAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\> 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci获取音频渲染器。使用Promise方式异步返回结果。 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ci**参数:** 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 115e41f4b71Sopenharmony_ci| :------ | :--------------------------------------------- | :--- | :----------- | 116e41f4b71Sopenharmony_ci| options | [AudioRendererOptions](#audiorendereroptions8) | 是 | 配置渲染器。 | 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci**返回值:** 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci| 类型 | 说明 | 121e41f4b71Sopenharmony_ci| ----------------------------------------- | ---------------- | 122e41f4b71Sopenharmony_ci| Promise<[AudioRenderer](#audiorenderer8)> | Promise对象,返回音频渲染器对象。 | 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci**示例:** 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci```ts 127e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 128e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_cilet audioStreamInfo: audio.AudioStreamInfo = { 131e41f4b71Sopenharmony_ci samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 132e41f4b71Sopenharmony_ci channels: audio.AudioChannel.CHANNEL_1, 133e41f4b71Sopenharmony_ci sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 134e41f4b71Sopenharmony_ci encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 135e41f4b71Sopenharmony_ci}; 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_cilet audioRendererInfo: audio.AudioRendererInfo = { 138e41f4b71Sopenharmony_ci usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION, 139e41f4b71Sopenharmony_ci rendererFlags: 0 140e41f4b71Sopenharmony_ci}; 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_cilet audioRendererOptions: audio.AudioRendererOptions = { 143e41f4b71Sopenharmony_ci streamInfo: audioStreamInfo, 144e41f4b71Sopenharmony_ci rendererInfo: audioRendererInfo 145e41f4b71Sopenharmony_ci}; 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_cilet audioRenderer: audio.AudioRenderer; 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ciaudio.createAudioRenderer(audioRendererOptions).then((data) => { 150e41f4b71Sopenharmony_ci audioRenderer = data; 151e41f4b71Sopenharmony_ci console.info('AudioFrameworkRenderLog: AudioRenderer Created : Success : Stream Type: SUCCESS'); 152e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 153e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`); 154e41f4b71Sopenharmony_ci}); 155e41f4b71Sopenharmony_ci``` 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci## audio.createAudioCapturer<sup>8+</sup> 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_cicreateAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci获取音频采集器。使用callback方式异步返回结果。 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci仅设置Mic音频源(即[SourceType](#sourcetype8)为SOURCE_TYPE_MIC)时需要该权限。 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci**参数:** 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 172e41f4b71Sopenharmony_ci| :------- | :---------------------------------------------- | :--- | :--------------- | 173e41f4b71Sopenharmony_ci| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是 | 配置音频采集器。 | 174e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioCapturer](#audiocapturer8)> | 是 | Callback对象,成功将返回音频采集器对象,异常将返回error对象:<br>错误码6800301,表示包含参数校验异常、权限校验异常、系统处理异常(具体错误查看系统日志)。<br>错误码6800101,表示包含必选参数为空、参数类型错误。 | 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci**示例:** 177e41f4b71Sopenharmony_ci 178e41f4b71Sopenharmony_ci```ts 179e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_cilet audioStreamInfo: audio.AudioStreamInfo = { 182e41f4b71Sopenharmony_ci samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 183e41f4b71Sopenharmony_ci channels: audio.AudioChannel.CHANNEL_2, 184e41f4b71Sopenharmony_ci sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 185e41f4b71Sopenharmony_ci encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 186e41f4b71Sopenharmony_ci}; 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_cilet audioCapturerInfo: audio.AudioCapturerInfo = { 189e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 190e41f4b71Sopenharmony_ci capturerFlags: 0 191e41f4b71Sopenharmony_ci}; 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_cilet audioCapturerOptions: audio.AudioCapturerOptions = { 194e41f4b71Sopenharmony_ci streamInfo: audioStreamInfo, 195e41f4b71Sopenharmony_ci capturerInfo: audioCapturerInfo 196e41f4b71Sopenharmony_ci}; 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ciaudio.createAudioCapturer(audioCapturerOptions, (err, data) => { 199e41f4b71Sopenharmony_ci if (err) { 200e41f4b71Sopenharmony_ci console.error(`AudioCapturer Created : Error: ${err}`); 201e41f4b71Sopenharmony_ci } else { 202e41f4b71Sopenharmony_ci console.info('AudioCapturer Created : Success : SUCCESS'); 203e41f4b71Sopenharmony_ci let audioCapturer = data; 204e41f4b71Sopenharmony_ci } 205e41f4b71Sopenharmony_ci}); 206e41f4b71Sopenharmony_ci``` 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci## audio.createAudioCapturer<sup>8+</sup> 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_cicreateAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\> 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci获取音频采集器。使用Promise 方式异步返回结果。 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci仅设置Mic音频源(即[SourceType](#sourcetype8)为SOURCE_TYPE_MIC)时需要该权限。 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci**参数:** 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 223e41f4b71Sopenharmony_ci| :------ | :--------------------------------------------- | :--- | :--------------- | 224e41f4b71Sopenharmony_ci| options | [AudioCapturerOptions](#audiocaptureroptions8) | 是 | 配置音频采集器。 | 225e41f4b71Sopenharmony_ci 226e41f4b71Sopenharmony_ci**返回值:** 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci| 类型 | 说明 | 229e41f4b71Sopenharmony_ci| ----------------------------------------- |----------------------| 230e41f4b71Sopenharmony_ci| Promise<[AudioCapturer](#audiocapturer8)> | Promise对象,成功将返回音频采集器对象,异常将返回error对象:<br>错误码6800301,表示包含参数校验异常、权限校验异常、系统处理异常(具体错误查看系统日志)。<br>错误码6800101,表示包含必选参数为空、参数类型错误。 | 231e41f4b71Sopenharmony_ci 232e41f4b71Sopenharmony_ci**示例:** 233e41f4b71Sopenharmony_ci 234e41f4b71Sopenharmony_ci```ts 235e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 236e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_cilet audioStreamInfo: audio.AudioStreamInfo = { 239e41f4b71Sopenharmony_ci samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100, 240e41f4b71Sopenharmony_ci channels: audio.AudioChannel.CHANNEL_2, 241e41f4b71Sopenharmony_ci sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, 242e41f4b71Sopenharmony_ci encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW 243e41f4b71Sopenharmony_ci}; 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_cilet audioCapturerInfo: audio.AudioCapturerInfo = { 246e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 247e41f4b71Sopenharmony_ci capturerFlags: 0 248e41f4b71Sopenharmony_ci}; 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_cilet audioCapturerOptions:audio.AudioCapturerOptions = { 251e41f4b71Sopenharmony_ci streamInfo: audioStreamInfo, 252e41f4b71Sopenharmony_ci capturerInfo: audioCapturerInfo 253e41f4b71Sopenharmony_ci}; 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_cilet audioCapturer: audio.AudioCapturer; 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ciaudio.createAudioCapturer(audioCapturerOptions).then((data) => { 258e41f4b71Sopenharmony_ci audioCapturer = data; 259e41f4b71Sopenharmony_ci console.info('AudioCapturer Created : Success : Stream Type: SUCCESS'); 260e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 261e41f4b71Sopenharmony_ci console.error(`AudioCapturer Created : ERROR : ${err}`); 262e41f4b71Sopenharmony_ci}); 263e41f4b71Sopenharmony_ci``` 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci## AudioVolumeType 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci枚举,音频流类型。 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 272e41f4b71Sopenharmony_ci| ---------------------------- | ------ | ---------- | 273e41f4b71Sopenharmony_ci| VOICE_CALL<sup>8+</sup> | 0 | 语音电话。 | 274e41f4b71Sopenharmony_ci| RINGTONE | 2 | 铃声。 | 275e41f4b71Sopenharmony_ci| MEDIA | 3 | 媒体。 | 276e41f4b71Sopenharmony_ci| ALARM<sup>10+</sup> | 4 | 闹钟。 | 277e41f4b71Sopenharmony_ci| ACCESSIBILITY<sup>10+</sup> | 5 | 无障碍。 | 278e41f4b71Sopenharmony_ci| VOICE_ASSISTANT<sup>8+</sup> | 9 | 语音助手。 | 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_ci## InterruptMode<sup>9+</sup> 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci枚举,焦点模型。 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 289e41f4b71Sopenharmony_ci| ---------------------------- | ------ | ---------- | 290e41f4b71Sopenharmony_ci| SHARE_MODE | 0 | 共享焦点模式。 | 291e41f4b71Sopenharmony_ci| INDEPENDENT_MODE | 1 | 独立焦点模式。 | 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci## DeviceFlag 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci枚举,可获取的设备种类。 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 300e41f4b71Sopenharmony_ci| ------------------------------- | ------ |---------------------------| 301e41f4b71Sopenharmony_ci| OUTPUT_DEVICES_FLAG | 1 | 输出设备。 | 302e41f4b71Sopenharmony_ci| INPUT_DEVICES_FLAG | 2 | 输入设备。 | 303e41f4b71Sopenharmony_ci| ALL_DEVICES_FLAG | 3 | 所有设备。 | 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci## DeviceUsage<sup>12+</sup> 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci枚举,可获取的设备种类。 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 312e41f4b71Sopenharmony_ci| ------------------------------- | ------ |---------------------------| 313e41f4b71Sopenharmony_ci| MEDIA_OUTPUT_DEVICES | 1 | 媒体输出设备。| 314e41f4b71Sopenharmony_ci| MEDIA_INPUT_DEVICES | 2 | 媒体输入设备。| 315e41f4b71Sopenharmony_ci| ALL_MEDIA_DEVICES | 3 | 所有媒体设备。| 316e41f4b71Sopenharmony_ci| CALL_OUTPUT_DEVICES | 4 | 通话输出设备。| 317e41f4b71Sopenharmony_ci| CALL_INPUT_DEVICES | 8 | 通话输入设备。| 318e41f4b71Sopenharmony_ci| ALL_CALL_DEVICES | 12 | 所有通话设备。| 319e41f4b71Sopenharmony_ci 320e41f4b71Sopenharmony_ci## DeviceRole 321e41f4b71Sopenharmony_ci 322e41f4b71Sopenharmony_ci枚举,设备角色。 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 325e41f4b71Sopenharmony_ci 326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 329e41f4b71Sopenharmony_ci| ------------- | ------ | -------------- | 330e41f4b71Sopenharmony_ci| INPUT_DEVICE | 1 | 输入设备角色。 | 331e41f4b71Sopenharmony_ci| OUTPUT_DEVICE | 2 | 输出设备角色。 | 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci## DeviceType 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci枚举,设备类型。 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 340e41f4b71Sopenharmony_ci 341e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 342e41f4b71Sopenharmony_ci| ---------------------| ------ | --------------------------------------------------------- | 343e41f4b71Sopenharmony_ci| INVALID | 0 | 无效设备。 | 344e41f4b71Sopenharmony_ci| EARPIECE | 1 | 听筒。 | 345e41f4b71Sopenharmony_ci| SPEAKER | 2 | 扬声器。 | 346e41f4b71Sopenharmony_ci| WIRED_HEADSET | 3 | 有线耳机,带麦克风。 | 347e41f4b71Sopenharmony_ci| WIRED_HEADPHONES | 4 | 有线耳机,无麦克风。 | 348e41f4b71Sopenharmony_ci| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 | 349e41f4b71Sopenharmony_ci| BLUETOOTH_A2DP | 8 | 蓝牙设备A2DP(Advanced Audio Distribution Profile)连接。 | 350e41f4b71Sopenharmony_ci| MIC | 15 | 麦克风。 | 351e41f4b71Sopenharmony_ci| USB_HEADSET | 22 | USB耳机,带麦克风。 | 352e41f4b71Sopenharmony_ci| DISPLAY_PORT<sup>12+</sup> | 23 | DisplayPort(显示接口,简称DP),用于外接扩展设备。 | 353e41f4b71Sopenharmony_ci| REMOTE_CAST<sup>12+</sup> | 24 | 音频被系统应用投送到其他远程的设备。 | 354e41f4b71Sopenharmony_ci| DEFAULT<sup>9+</sup> | 1000 | 默认设备类型。 | 355e41f4b71Sopenharmony_ci 356e41f4b71Sopenharmony_ci## CommunicationDeviceType<sup>9+</sup> 357e41f4b71Sopenharmony_ci 358e41f4b71Sopenharmony_ci枚举,用于通信的可用设备类型。 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 363e41f4b71Sopenharmony_ci| ------------- | ------ | -------------| 364e41f4b71Sopenharmony_ci| SPEAKER | 2 | 扬声器。 | 365e41f4b71Sopenharmony_ci 366e41f4b71Sopenharmony_ci## AudioRingMode 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci枚举,铃声模式。 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 373e41f4b71Sopenharmony_ci| ------------------- | ------ | ---------- | 374e41f4b71Sopenharmony_ci| RINGER_MODE_SILENT | 0 | 静音模式。 | 375e41f4b71Sopenharmony_ci| RINGER_MODE_VIBRATE | 1 | 震动模式。 | 376e41f4b71Sopenharmony_ci| RINGER_MODE_NORMAL | 2 | 响铃模式。 | 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci## AudioSampleFormat<sup>8+</sup> 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci枚举,音频采样格式。 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 385e41f4b71Sopenharmony_ci| ---------------------------------- | ------ | -------------------------- | 386e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_INVALID | -1 | 无效格式。 | 387e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_U8 | 0 | 无符号8位整数。 | 388e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_S16LE | 1 | 带符号的16位整数,小尾数。 | 389e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_S24LE | 2 | 带符号的24位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 390e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_S32LE | 3 | 带符号的32位整数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 391e41f4b71Sopenharmony_ci| SAMPLE_FORMAT_F32LE<sup>9+</sup> | 4 | 带符号的32位浮点数,小尾数。 <br>由于系统限制,该采样格式仅部分设备支持,请根据实际情况使用。| 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci## AudioErrors<sup>9+</sup> 394e41f4b71Sopenharmony_ci 395e41f4b71Sopenharmony_ci枚举,音频错误码。 396e41f4b71Sopenharmony_ci 397e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 398e41f4b71Sopenharmony_ci 399e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 400e41f4b71Sopenharmony_ci| ---------------------| --------| ----------------- | 401e41f4b71Sopenharmony_ci| ERROR_INVALID_PARAM | 6800101 | 无效入参。 | 402e41f4b71Sopenharmony_ci| ERROR_NO_MEMORY | 6800102 | 分配内存失败。 | 403e41f4b71Sopenharmony_ci| ERROR_ILLEGAL_STATE | 6800103 | 状态不支持。 | 404e41f4b71Sopenharmony_ci| ERROR_UNSUPPORTED | 6800104 | 参数选项不支持。 | 405e41f4b71Sopenharmony_ci| ERROR_TIMEOUT | 6800105 | 处理超时。 | 406e41f4b71Sopenharmony_ci| ERROR_STREAM_LIMIT | 6800201 | 音频流数量达到限制。| 407e41f4b71Sopenharmony_ci| ERROR_SYSTEM | 6800301 | 系统处理异常。 | 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ci## AudioChannel<sup>8+</sup> 410e41f4b71Sopenharmony_ci 411e41f4b71Sopenharmony_ci枚举, 音频声道。 412e41f4b71Sopenharmony_ci 413e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 414e41f4b71Sopenharmony_ci 415e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 416e41f4b71Sopenharmony_ci| --------- | -------- |------| 417e41f4b71Sopenharmony_ci| CHANNEL_1 | 0x1 << 0 | 单声道。 | 418e41f4b71Sopenharmony_ci| CHANNEL_2 | 0x1 << 1 | 双声道。 | 419e41f4b71Sopenharmony_ci| CHANNEL_3<sup>11+</sup> | 3 | 三声道。 | 420e41f4b71Sopenharmony_ci| CHANNEL_4<sup>11+</sup> | 4 | 四声道。 | 421e41f4b71Sopenharmony_ci| CHANNEL_5<sup>11+</sup> | 5 | 五声道。 | 422e41f4b71Sopenharmony_ci| CHANNEL_6<sup>11+</sup> | 6 | 六声道。 | 423e41f4b71Sopenharmony_ci| CHANNEL_7<sup>11+</sup> | 7 | 七声道。 | 424e41f4b71Sopenharmony_ci| CHANNEL_8<sup>11+</sup> | 8 | 八声道。 | 425e41f4b71Sopenharmony_ci| CHANNEL_9<sup>11+</sup> | 9 | 九声道。 | 426e41f4b71Sopenharmony_ci| CHANNEL_10<sup>11+</sup> | 10 | 十声道。 | 427e41f4b71Sopenharmony_ci| CHANNEL_12<sup>11+</sup> | 12 | 十二声道。 | 428e41f4b71Sopenharmony_ci| CHANNEL_14<sup>11+</sup> | 14 | 十四声道。 | 429e41f4b71Sopenharmony_ci| CHANNEL_16<sup>11+</sup> | 16 | 十六声道。 | 430e41f4b71Sopenharmony_ci 431e41f4b71Sopenharmony_ci## AudioSamplingRate<sup>8+</sup> 432e41f4b71Sopenharmony_ci 433e41f4b71Sopenharmony_ci枚举,音频采样率,具体设备支持的采样率规格会存在差异。 434e41f4b71Sopenharmony_ci 435e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 438e41f4b71Sopenharmony_ci| ----------------- | ------ | --------------- | 439e41f4b71Sopenharmony_ci| SAMPLE_RATE_8000 | 8000 | 采样率为8000。 | 440e41f4b71Sopenharmony_ci| SAMPLE_RATE_11025 | 11025 | 采样率为11025。 | 441e41f4b71Sopenharmony_ci| SAMPLE_RATE_12000 | 12000 | 采样率为12000。 | 442e41f4b71Sopenharmony_ci| SAMPLE_RATE_16000 | 16000 | 采样率为16000。 | 443e41f4b71Sopenharmony_ci| SAMPLE_RATE_22050 | 22050 | 采样率为22050。 | 444e41f4b71Sopenharmony_ci| SAMPLE_RATE_24000 | 24000 | 采样率为24000。 | 445e41f4b71Sopenharmony_ci| SAMPLE_RATE_32000 | 32000 | 采样率为32000。 | 446e41f4b71Sopenharmony_ci| SAMPLE_RATE_44100 | 44100 | 采样率为44100。 | 447e41f4b71Sopenharmony_ci| SAMPLE_RATE_48000 | 48000 | 采样率为48000。 | 448e41f4b71Sopenharmony_ci| SAMPLE_RATE_64000 | 64000 | 采样率为64000。 | 449e41f4b71Sopenharmony_ci| SAMPLE_RATE_88200<sup>12+</sup> | 88200 | 采样率为88200。 | 450e41f4b71Sopenharmony_ci| SAMPLE_RATE_96000 | 96000 | 采样率为96000。 | 451e41f4b71Sopenharmony_ci| SAMPLE_RATE_176400<sup>12+</sup> | 176400 | 采样率为176400。 | 452e41f4b71Sopenharmony_ci| SAMPLE_RATE_192000<sup>12+</sup> | 192000 | 采样率为192000。 | 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci## AudioEncodingType<sup>8+</sup> 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci枚举,音频编码类型。 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 463e41f4b71Sopenharmony_ci| --------------------- | ------ | --------- | 464e41f4b71Sopenharmony_ci| ENCODING_TYPE_INVALID | -1 | 无效。 | 465e41f4b71Sopenharmony_ci| ENCODING_TYPE_RAW | 0 | PCM编码。 | 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci## AudioChannelLayout<sup>11+</sup> 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci枚举,音频文件声道布局类型。 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 474e41f4b71Sopenharmony_ci| ------------------------------ | ---------------- | --------------------------------------------- | 475e41f4b71Sopenharmony_ci| CH_LAYOUT_UNKNOWN | 0x0 | 未知声道布局。 | 476e41f4b71Sopenharmony_ci| CH_LAYOUT_MONO | 0x4 | 声道布局为MONO。 | 477e41f4b71Sopenharmony_ci| CH_LAYOUT_STEREO | 0x3 | 声道布局为STEREO。 | 478e41f4b71Sopenharmony_ci| CH_LAYOUT_STEREO_DOWNMIX | 0x60000000 | 声道布局为STEREO-DOWNMIX。 | 479e41f4b71Sopenharmony_ci| CH_LAYOUT_2POINT1 | 0xB | 声道布局为2.1。 | 480e41f4b71Sopenharmony_ci| CH_LAYOUT_3POINT0 | 0x103 | 声道布局为3.0。 | 481e41f4b71Sopenharmony_ci| CH_LAYOUT_SURROUND | 0x7 | 声道布局为SURROUND。 | 482e41f4b71Sopenharmony_ci| CH_LAYOUT_3POINT1 | 0xF | 声道布局为3.1。 | 483e41f4b71Sopenharmony_ci| CH_LAYOUT_4POINT0 | 0x107 | 声道布局为4.0。 | 484e41f4b71Sopenharmony_ci| CH_LAYOUT_QUAD | 0x33 | 声道布局为QUAD。 | 485e41f4b71Sopenharmony_ci| CH_LAYOUT_QUAD_SIDE | 0x603 | 声道布局为QUAD-SIDE。 | 486e41f4b71Sopenharmony_ci| CH_LAYOUT_2POINT0POINT2 | 0x3000000003 | 声道布局为2.0.2。 | 487e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER1_ACN_N3D | 0x100000000001 | 声道排序为ACN_N3D(根据ITU标准)的一阶FOA文件。 | 488e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER1_ACN_SN3D | 0x100000001001 | 声道排序为ACN_SN3D(根据ITU标准)的一阶FOA文件。 | 489e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER1_FUMA | 0x100000000101 | 声道排序为FUMA(根据ITU标准)的一阶FOA文件。 | 490e41f4b71Sopenharmony_ci| CH_LAYOUT_4POINT1 | 0x10F | 声道布局为4.1 | 491e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT0 | 0x607 | 声道布局为5.0。 | 492e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT0_BACK | 0x37 | 声道布局为5.0-BACK。 | 493e41f4b71Sopenharmony_ci| CH_LAYOUT_2POINT1POINT2 | 0x300000000B | 声道布局为2.1.2。 | 494e41f4b71Sopenharmony_ci| CH_LAYOUT_3POINT0POINT2 | 0x3000000007 | 声道布局为3.0.2。 | 495e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT1 | 0x60F | 声道布局为5.1。 | 496e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT1_BACK | 0x3F | 声道布局为5.1-BACK。 | 497e41f4b71Sopenharmony_ci| CH_LAYOUT_6POINT0 | 0x707 | 声道布局为6.0。 | 498e41f4b71Sopenharmony_ci| CH_LAYOUT_HEXAGONAL | 0x137 | 声道布局为HEXAGONAL。 | 499e41f4b71Sopenharmony_ci| CH_LAYOUT_3POINT1POINT2 | 0x500F | 声道布局为3.1.2。 | 500e41f4b71Sopenharmony_ci| CH_LAYOUT_6POINT0_FRONT | 0x6C3 | 声道布局为6.0-FRONT。 | 501e41f4b71Sopenharmony_ci| CH_LAYOUT_6POINT1 | 0x70F | 声道布局为6.1。 | 502e41f4b71Sopenharmony_ci| CH_LAYOUT_6POINT1_BACK | 0x13F | 声道布局为6.1-BACK。 | 503e41f4b71Sopenharmony_ci| CH_LAYOUT_6POINT1_FRONT | 0x6CB | 声道布局为6.1-FRONT。 | 504e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT0 | 0x637 | 声道布局为7.0。 | 505e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT0_FRONT | 0x6C7 | 声道布局为7.0-FRONT。 | 506e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT1 | 0x63F | 声道布局为7.1。 | 507e41f4b71Sopenharmony_ci| CH_LAYOUT_OCTAGONAL | 0x737 | 声道布局为OCTAGONAL。 | 508e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT1POINT2 | 0x300000060F | 声道布局为5.1.2。 | 509e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT1_WIDE | 0x6CF | 声道布局为7.1-WIDE。 | 510e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT1_WIDE_BACK | 0xFF | 声道布局为7.1-WIDE-BACK。 | 511e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER2_ACN_N3D | 0x100000000002 | 声道排序为ACN_N3D(根据ITU标准)的二阶HOA文件。 | 512e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER2_ACN_SN3D | 0x100000001002 | 声道排序为ACN_SN3D(根据ITU标准)的二阶HOA文件。 | 513e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER2_FUMA | 0x100000000102 | 声道排序为FUMA(根据ITU标准)的二阶HOA文件。 | 514e41f4b71Sopenharmony_ci| CH_LAYOUT_5POINT1POINT4 | 0x2D60F | 声道布局为5.1.4。 | 515e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT1POINT2 | 0x300000063F | 声道布局为7.1.2。 | 516e41f4b71Sopenharmony_ci| CH_LAYOUT_7POINT1POINT4 | 0x2D63F | 声道布局为7.1.4。 | 517e41f4b71Sopenharmony_ci| CH_LAYOUT_10POINT2 | 0x180005737 | 声道布局为10.2。 | 518e41f4b71Sopenharmony_ci| CH_LAYOUT_9POINT1POINT4 | 0x18002D63F | 声道布局为9.1.4。 | 519e41f4b71Sopenharmony_ci| CH_LAYOUT_9POINT1POINT6 | 0x318002D63F | 声道布局为9.1.6。 | 520e41f4b71Sopenharmony_ci| CH_LAYOUT_HEXADECAGONAL | 0x18003F737 | 声道布局为HEXADECAGONAL。 | 521e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER3_ACN_N3D | 0x100000000003 | 声道排序为ACN_N3D(根据ITU标准)的三阶HOA文件。 | 522e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER3_ACN_SN3D | 0x100000001003 | 声道排序为ACN_SN3D(根据ITU标准)的三阶HOA文件。 | 523e41f4b71Sopenharmony_ci| CH_LAYOUT_AMB_ORDER3_FUMA | 0x100000000103 | 声道排序为FUMA(根据ITU标准)的三阶HOA文件。 | 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci## ContentType<sup>(deprecated)</sup> 526e41f4b71Sopenharmony_ci 527e41f4b71Sopenharmony_ci枚举,音频内容类型。 528e41f4b71Sopenharmony_ci 529e41f4b71Sopenharmony_ci> **说明:** 530e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 10 开始废弃。建议使用[StreamUsage](#streamusage)声明音频流使用类型即可。 531e41f4b71Sopenharmony_ci 532e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 533e41f4b71Sopenharmony_ci 534e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 535e41f4b71Sopenharmony_ci| ---------------------------------- | ------ | ---------- | 536e41f4b71Sopenharmony_ci| CONTENT_TYPE_UNKNOWN | 0 | 未知类型。 | 537e41f4b71Sopenharmony_ci| CONTENT_TYPE_SPEECH | 1 | 语音。 | 538e41f4b71Sopenharmony_ci| CONTENT_TYPE_MUSIC | 2 | 音乐。 | 539e41f4b71Sopenharmony_ci| CONTENT_TYPE_MOVIE | 3 | 电影。 | 540e41f4b71Sopenharmony_ci| CONTENT_TYPE_SONIFICATION | 4 | 通知音。 | 541e41f4b71Sopenharmony_ci| CONTENT_TYPE_RINGTONE<sup>8+</sup> | 5 | 铃声。 | 542e41f4b71Sopenharmony_ci 543e41f4b71Sopenharmony_ci## StreamUsage 544e41f4b71Sopenharmony_ci 545e41f4b71Sopenharmony_ci枚举,音频流使用类型。 546e41f4b71Sopenharmony_ci 547e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 548e41f4b71Sopenharmony_ci 549e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 550e41f4b71Sopenharmony_ci| ------------------------------------------| ------ |---------------------------------------------------------------------------------------------------------------------------------------------| 551e41f4b71Sopenharmony_ci| STREAM_USAGE_UNKNOWN | 0 | 未知类型。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 552e41f4b71Sopenharmony_ci| STREAM_USAGE_MEDIA<sup>(deprecated)</sup> | 1 | 媒体。<br/> 从API version 7开始支持,从API version 10 开始废弃。建议使用该枚举中的STREAM_USAGE_MUSIC、STREAM_USAGE_MOVIE、STREAM_USAGE_GAME或STREAM_USAGE_AUDIOBOOK替代。 | 553e41f4b71Sopenharmony_ci| STREAM_USAGE_MUSIC<sup>10+</sup> | 1 | 音乐。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 554e41f4b71Sopenharmony_ci| STREAM_USAGE_VOICE_COMMUNICATION | 2 | VoIP语音通话。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 555e41f4b71Sopenharmony_ci| STREAM_USAGE_VOICE_ASSISTANT<sup>9+</sup> | 3 | 语音播报。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 556e41f4b71Sopenharmony_ci| STREAM_USAGE_ALARM<sup>10+</sup> | 4 | 闹钟。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 557e41f4b71Sopenharmony_ci| STREAM_USAGE_VOICE_MESSAGE<sup>10+</sup> | 5 | 语音消息。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 558e41f4b71Sopenharmony_ci| STREAM_USAGE_NOTIFICATION_RINGTONE<sup>(deprecated)</sup> | 6 | 通知铃声。<br/> 从 API version 10 开始废弃。建议使用该枚举中的STREAM_USAGE_RINGTONE替代。 | 559e41f4b71Sopenharmony_ci| STREAM_USAGE_RINGTONE<sup>10+</sup> | 6 | 铃声。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 560e41f4b71Sopenharmony_ci| STREAM_USAGE_NOTIFICATION<sup>10+</sup> | 7 | 通知。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 561e41f4b71Sopenharmony_ci| STREAM_USAGE_ACCESSIBILITY<sup>10+</sup> | 8 | 无障碍。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 562e41f4b71Sopenharmony_ci| STREAM_USAGE_MOVIE<sup>10+</sup> | 10 | 电影或视频。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 563e41f4b71Sopenharmony_ci| STREAM_USAGE_GAME<sup>10+</sup> | 11 | 游戏。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 564e41f4b71Sopenharmony_ci| STREAM_USAGE_AUDIOBOOK<sup>10+</sup> | 12 | 有声读物(包括听书、相声、评书)、听新闻、播客等。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 565e41f4b71Sopenharmony_ci| STREAM_USAGE_NAVIGATION<sup>10+</sup> | 13 | 导航。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 566e41f4b71Sopenharmony_ci| STREAM_USAGE_VIDEO_COMMUNICATION<sup>12+</sup> | 17 | VoIP视频通话。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 567e41f4b71Sopenharmony_ci 568e41f4b71Sopenharmony_ci## AudioState<sup>8+</sup> 569e41f4b71Sopenharmony_ci 570e41f4b71Sopenharmony_ci枚举,音频状态。 571e41f4b71Sopenharmony_ci 572e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 573e41f4b71Sopenharmony_ci 574e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 575e41f4b71Sopenharmony_ci| -------------- | ------ | ---------------- | 576e41f4b71Sopenharmony_ci| STATE_INVALID | -1 | 无效状态。 | 577e41f4b71Sopenharmony_ci| STATE_NEW | 0 | 创建新实例状态。 | 578e41f4b71Sopenharmony_ci| STATE_PREPARED | 1 | 准备状态。 | 579e41f4b71Sopenharmony_ci| STATE_RUNNING | 2 | 运行状态。 | 580e41f4b71Sopenharmony_ci| STATE_STOPPED | 3 | 停止状态。 | 581e41f4b71Sopenharmony_ci| STATE_RELEASED | 4 | 释放状态。 | 582e41f4b71Sopenharmony_ci| STATE_PAUSED | 5 | 暂停状态。 | 583e41f4b71Sopenharmony_ci 584e41f4b71Sopenharmony_ci## AudioEffectMode<sup>10+</sup> 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_ci枚举,音效模式。 587e41f4b71Sopenharmony_ci 588e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 589e41f4b71Sopenharmony_ci 590e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 591e41f4b71Sopenharmony_ci 592e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 593e41f4b71Sopenharmony_ci| ------------------ | ------ | ---------- | 594e41f4b71Sopenharmony_ci| EFFECT_NONE | 0 | 关闭音效。 | 595e41f4b71Sopenharmony_ci| EFFECT_DEFAULT | 1 | 默认音效。 | 596e41f4b71Sopenharmony_ci 597e41f4b71Sopenharmony_ci## AudioRendererRate<sup>8+</sup> 598e41f4b71Sopenharmony_ci 599e41f4b71Sopenharmony_ci枚举,音频渲染速度。 600e41f4b71Sopenharmony_ci 601e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 602e41f4b71Sopenharmony_ci 603e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 604e41f4b71Sopenharmony_ci| ------------------ | ------ | ---------- | 605e41f4b71Sopenharmony_ci| RENDER_RATE_NORMAL | 0 | 正常速度。 | 606e41f4b71Sopenharmony_ci| RENDER_RATE_DOUBLE | 1 | 2倍速。 | 607e41f4b71Sopenharmony_ci| RENDER_RATE_HALF | 2 | 0.5倍数。 | 608e41f4b71Sopenharmony_ci 609e41f4b71Sopenharmony_ci## InterruptType 610e41f4b71Sopenharmony_ci 611e41f4b71Sopenharmony_ci枚举,中断类型。 612e41f4b71Sopenharmony_ci 613e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 614e41f4b71Sopenharmony_ci 615e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 618e41f4b71Sopenharmony_ci| -------------------- | ------ | ---------------------- | 619e41f4b71Sopenharmony_ci| INTERRUPT_TYPE_BEGIN | 1 | 音频播放中断事件开始。 | 620e41f4b71Sopenharmony_ci| INTERRUPT_TYPE_END | 2 | 音频播放中断事件结束。 | 621e41f4b71Sopenharmony_ci 622e41f4b71Sopenharmony_ci## InterruptForceType<sup>9+</sup> 623e41f4b71Sopenharmony_ci 624e41f4b71Sopenharmony_ci枚举,音频打断类型。 625e41f4b71Sopenharmony_ci 626e41f4b71Sopenharmony_ci当用户监听到音频中断(即收到[InterruptEvent](#interruptevent9)事件)时,将获取此信息。 627e41f4b71Sopenharmony_ci 628e41f4b71Sopenharmony_ci此类型表示本次音频打断的操作是否已由系统强制执行,具体操作信息(如音频暂停、停止等)可通过[InterruptHint](#interrupthint)获取。关于音频打断策略的详细说明可参考文档[处理音频焦点事件](../../media/audio/audio-playback-concurrency.md)。 629e41f4b71Sopenharmony_ci 630e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 631e41f4b71Sopenharmony_ci 632e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 633e41f4b71Sopenharmony_ci 634e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 635e41f4b71Sopenharmony_ci| --------------- | ------ | ------------------------------------ | 636e41f4b71Sopenharmony_ci| INTERRUPT_FORCE | 0 | 强制打断类型,即具体操作已由系统强制执行。 | 637e41f4b71Sopenharmony_ci| INTERRUPT_SHARE | 1 | 共享打断类型,即系统不执行具体操作,通过[InterruptHint](#interrupthint)提示并建议应用操作,应用可自行决策下一步处理方式。 | 638e41f4b71Sopenharmony_ci 639e41f4b71Sopenharmony_ci## InterruptHint 640e41f4b71Sopenharmony_ci 641e41f4b71Sopenharmony_ci枚举,中断提示。 642e41f4b71Sopenharmony_ci 643e41f4b71Sopenharmony_ci当用户监听到音频中断(即收到[InterruptEvent](#interruptevent9)事件)时,将获取此信息。 644e41f4b71Sopenharmony_ci 645e41f4b71Sopenharmony_ci此类型表示根据焦点策略,当前需要对音频流的具体操作(如暂停、调整音量等)。 646e41f4b71Sopenharmony_ci 647e41f4b71Sopenharmony_ci可以结合InterruptEvent中的[InterruptForceType](#interruptforcetype9)信息,判断该操作是否已由系统强制执行。关于音频打断策略的详细说明可参考文档[处理音频焦点事件](../../media/audio/audio-playback-concurrency.md)。 648e41f4b71Sopenharmony_ci 649e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 650e41f4b71Sopenharmony_ci 651e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 652e41f4b71Sopenharmony_ci 653e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 654e41f4b71Sopenharmony_ci| ---------------------------------- | ------ | -------------------------------------------- | 655e41f4b71Sopenharmony_ci| INTERRUPT_HINT_NONE<sup>8+</sup> | 0 | 无提示。 | 656e41f4b71Sopenharmony_ci| INTERRUPT_HINT_RESUME | 1 | 提示音频恢复,应用可主动触发开始渲染或开始采集的相关操作。<br>此操作无法由系统强制执行,其对应的[InterruptForceType](#interruptforcetype9)一定为INTERRUPT_SHARE类型。 | 657e41f4b71Sopenharmony_ci| INTERRUPT_HINT_PAUSE | 2 | 提示音频暂停,暂时失去音频焦点。<br>后续待焦点可用时,会出现INTERRUPT_HINT_RESUME事件。 | 658e41f4b71Sopenharmony_ci| INTERRUPT_HINT_STOP | 3 | 提示音频停止,彻底失去音频焦点。 | 659e41f4b71Sopenharmony_ci| INTERRUPT_HINT_DUCK | 4 | 提示音频躲避开始,音频降低音量播放,而不会停止。 | 660e41f4b71Sopenharmony_ci| INTERRUPT_HINT_UNDUCK<sup>8+</sup> | 5 | 提示音量躲避结束,音频恢复正常音量。 | 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci## AudioStreamInfo<sup>8+</sup> 663e41f4b71Sopenharmony_ci 664e41f4b71Sopenharmony_ci音频流信息。 665e41f4b71Sopenharmony_ci 666e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 669e41f4b71Sopenharmony_ci| ------------ | ------------------------------------------------- | ---- | ------------------ | 670e41f4b71Sopenharmony_ci| samplingRate | [AudioSamplingRate](#audiosamplingrate8) | 是 | 音频文件的采样率。 | 671e41f4b71Sopenharmony_ci| channels | [AudioChannel](#audiochannel8) | 是 | 音频文件的通道数。 | 672e41f4b71Sopenharmony_ci| sampleFormat | [AudioSampleFormat](#audiosampleformat8) | 是 | 音频采样格式。 | 673e41f4b71Sopenharmony_ci| encodingType | [AudioEncodingType](#audioencodingtype8) | 是 | 音频编码格式。 | 674e41f4b71Sopenharmony_ci| channelLayout<sup>11+</sup> | [AudioChannelLayout](#audiochannellayout11) | 否 | 音频声道布局,默认值为0x0。 | 675e41f4b71Sopenharmony_ci 676e41f4b71Sopenharmony_ci## AudioRendererInfo<sup>8+</sup> 677e41f4b71Sopenharmony_ci 678e41f4b71Sopenharmony_ci音频渲染器信息。 679e41f4b71Sopenharmony_ci 680e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 681e41f4b71Sopenharmony_ci 682e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 683e41f4b71Sopenharmony_ci| ------------- | --------------------------- | ---- | ---------------- | 684e41f4b71Sopenharmony_ci| content | [ContentType](#contenttypedeprecated) | 否 | 音频内容类型。<br>API version 8、9为必填参数,从API version 10开始,变更为可选参数,默认值为CONTENT_TYPE_UNKNOWN。同时,[ContentType](#contenttypedeprecated)废弃,建议直接使用[StreamUsage](#streamusage)声明音频流使用类型即可。 | 685e41f4b71Sopenharmony_ci| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 686e41f4b71Sopenharmony_ci| rendererFlags | number | 是 | 音频渲染器标志。<br>0代表音频渲染器。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。| 687e41f4b71Sopenharmony_ci 688e41f4b71Sopenharmony_ci## AudioRendererOptions<sup>8+</sup> 689e41f4b71Sopenharmony_ci 690e41f4b71Sopenharmony_ci音频渲染器选项信息。 691e41f4b71Sopenharmony_ci 692e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 693e41f4b71Sopenharmony_ci| ------------ | ---------------------------------------- | ---- | ---------------- | 694e41f4b71Sopenharmony_ci| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 表示音频流信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer | 695e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Renderer | 696e41f4b71Sopenharmony_ci| privacyType<sup>10+</sup> | [AudioPrivacyType](#audioprivacytype10) | 否 | 表示音频流是否可以被其他应用录制,默认值为0。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture | 697e41f4b71Sopenharmony_ci 698e41f4b71Sopenharmony_ci## AudioPrivacyType<sup>10+</sup> 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_ci枚举类型,用于标识对应播放音频流是否支持被其他应用录制。 701e41f4b71Sopenharmony_ci 702e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 703e41f4b71Sopenharmony_ci 704e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 705e41f4b71Sopenharmony_ci| -------------------- | ---- | -------------------------------- | 706e41f4b71Sopenharmony_ci| PRIVACY_TYPE_PUBLIC | 0 | 表示音频流可以被其他应用录制。 | 707e41f4b71Sopenharmony_ci| PRIVACY_TYPE_PRIVATE | 1 | 表示音频流不可以被其他应用录制。 | 708e41f4b71Sopenharmony_ci 709e41f4b71Sopenharmony_ci## InterruptEvent<sup>9+</sup> 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci播放中断时,应用接收的中断事件。 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 714e41f4b71Sopenharmony_ci 715e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci| 名称 | 类型 |必填 | 说明 | 718e41f4b71Sopenharmony_ci| --------- | ------------------------------------------ | ---- | ------------------------------------ | 719e41f4b71Sopenharmony_ci| eventType | [InterruptType](#interrupttype) | 是 | 中断事件类型,开始或是结束。 | 720e41f4b71Sopenharmony_ci| forceType | [InterruptForceType](#interruptforcetype9) | 是 | 操作是由系统执行或是由应用程序执行。 | 721e41f4b71Sopenharmony_ci| hintType | [InterruptHint](#interrupthint) | 是 | 中断提示。 | 722e41f4b71Sopenharmony_ci 723e41f4b71Sopenharmony_ci## VolumeEvent<sup>9+</sup> 724e41f4b71Sopenharmony_ci 725e41f4b71Sopenharmony_ci音量改变时,应用接收的事件。 726e41f4b71Sopenharmony_ci 727e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 728e41f4b71Sopenharmony_ci 729e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 730e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- |-------------------------------------------| 731e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 732e41f4b71Sopenharmony_ci| volume | number | 是 | 音量等级,可设置范围通过getMinVolume和getMaxVolume获取。 | 733e41f4b71Sopenharmony_ci| updateUi | boolean | 是 | 在UI中显示音量变化,true为显示,false为不显示。 | 734e41f4b71Sopenharmony_ci 735e41f4b71Sopenharmony_ci## MicStateChangeEvent<sup>9+</sup> 736e41f4b71Sopenharmony_ci 737e41f4b71Sopenharmony_ci麦克风状态变化时,应用接收的事件。 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 742e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- |-------------------------------------------------------- | 743e41f4b71Sopenharmony_ci| mute | boolean | 是 | 回调返回系统麦克风静音状态,true为静音,false为非静音。 | 744e41f4b71Sopenharmony_ci 745e41f4b71Sopenharmony_ci## DeviceChangeAction 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci描述设备连接状态变化和设备信息。 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 750e41f4b71Sopenharmony_ci 751e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 752e41f4b71Sopenharmony_ci| :---------------- | :------------------------------------------------ | :--- | :----------------- | 753e41f4b71Sopenharmony_ci| type | [DeviceChangeType](#devicechangetype) | 是 | 设备连接状态变化。 | 754e41f4b71Sopenharmony_ci| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 设备信息。 | 755e41f4b71Sopenharmony_ci 756e41f4b71Sopenharmony_ci## ChannelBlendMode<sup>11+</sup> 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci枚举,声道混合模式类型。 759e41f4b71Sopenharmony_ci 760e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 763e41f4b71Sopenharmony_ci| :------------------------------------------- | :----- | :--------------------- | 764e41f4b71Sopenharmony_ci| MODE_DEFAULT | 0 | 无声道混合。 | 765e41f4b71Sopenharmony_ci| MODE_BLEND_LR | 1 | 混合左右声道。 | 766e41f4b71Sopenharmony_ci| MODE_ALL_LEFT | 2 | 从左声道拷贝覆盖到右声道混合。 | 767e41f4b71Sopenharmony_ci| MODE_ALL_RIGHT | 3 | 从右声道拷贝覆盖到左声道混合。 | 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci## AudioStreamDeviceChangeReason<sup>11+</sup> 770e41f4b71Sopenharmony_ci 771e41f4b71Sopenharmony_ci枚举,流设备变更原因。 772e41f4b71Sopenharmony_ci 773e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 774e41f4b71Sopenharmony_ci 775e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 776e41f4b71Sopenharmony_ci 777e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 778e41f4b71Sopenharmony_ci|:------------------------------------------| :----- |:----------------| 779e41f4b71Sopenharmony_ci| REASON_UNKNOWN | 0 | 未知原因。 | 780e41f4b71Sopenharmony_ci| REASON_NEW_DEVICE_AVAILABLE | 1 | 新设备可用。 | 781e41f4b71Sopenharmony_ci| REASON_OLD_DEVICE_UNAVAILABLE | 2 | 旧设备不可用。当报告此原因时,应用程序应考虑暂停音频播放。 | 782e41f4b71Sopenharmony_ci| REASON_OVERRODE | 3 | 强选。 | 783e41f4b71Sopenharmony_ci 784e41f4b71Sopenharmony_ci## AudioStreamDeviceChangeInfo<sup>11+</sup> 785e41f4b71Sopenharmony_ci 786e41f4b71Sopenharmony_ci流设备变更时,应用接收的事件。 787e41f4b71Sopenharmony_ci 788e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 791e41f4b71Sopenharmony_ci 792e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 793e41f4b71Sopenharmony_ci| :---------------- |:------------------------------------------------------------------| :--- | :----------------- | 794e41f4b71Sopenharmony_ci| devices | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 设备信息。 | 795e41f4b71Sopenharmony_ci| changeReason | [AudioStreamDeviceChangeReason](#audiostreamdevicechangereason11) | 是 | 流设备变更原因。 | 796e41f4b71Sopenharmony_ci 797e41f4b71Sopenharmony_ci## DeviceChangeType 798e41f4b71Sopenharmony_ci 799e41f4b71Sopenharmony_ci枚举,设备连接状态变化。 800e41f4b71Sopenharmony_ci 801e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 802e41f4b71Sopenharmony_ci 803e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 804e41f4b71Sopenharmony_ci| :--------- | :--- | :------------- | 805e41f4b71Sopenharmony_ci| CONNECT | 0 | 设备连接。 | 806e41f4b71Sopenharmony_ci| DISCONNECT | 1 | 断开设备连接。 | 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci## AudioCapturerOptions<sup>8+</sup> 809e41f4b71Sopenharmony_ci 810e41f4b71Sopenharmony_ci音频采集器选项信息。 811e41f4b71Sopenharmony_ci 812e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 813e41f4b71Sopenharmony_ci| ----------------------------------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 814e41f4b71Sopenharmony_ci| streamInfo | [AudioStreamInfo](#audiostreaminfo8) | 是 | 表示音频流信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer | 815e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 <br/>**系统能力:** SystemCapability.Multimedia.Audio.Capturer | 816e41f4b71Sopenharmony_ci| playbackCaptureConfig<sup>(deprecated)</sup> | [AudioPlaybackCaptureConfig](#audioplaybackcaptureconfigdeprecated) | 否 | 音频内录的配置信息。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture。<br/> 从API version 10 开始支持,从 API version 12 开始废弃。Audio不再提供内录接口,请通过[录屏接口AVScreenCapture](../apis-media-kit/_a_v_screen_capture.md)进行内录。 | 817e41f4b71Sopenharmony_ci 818e41f4b71Sopenharmony_ci## AudioCapturerInfo<sup>8+</sup> 819e41f4b71Sopenharmony_ci 820e41f4b71Sopenharmony_ci描述音频采集器信息。 821e41f4b71Sopenharmony_ci 822e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 823e41f4b71Sopenharmony_ci 824e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 825e41f4b71Sopenharmony_ci| :------------ | :------------------------ | :--- | :--------------- | 826e41f4b71Sopenharmony_ci| source | [SourceType](#sourcetype8) | 是 | 音源类型。 | 827e41f4b71Sopenharmony_ci| capturerFlags | number | 是 | 音频采集器标志。<br>0代表音频采集器。 | 828e41f4b71Sopenharmony_ci 829e41f4b71Sopenharmony_ci## SourceType<sup>8+</sup> 830e41f4b71Sopenharmony_ci 831e41f4b71Sopenharmony_ci枚举,音源类型。 832e41f4b71Sopenharmony_ci 833e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 834e41f4b71Sopenharmony_ci| :------------------------------------------- | :----- | :--------------------- | 835e41f4b71Sopenharmony_ci| SOURCE_TYPE_INVALID | -1 | 无效的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 836e41f4b71Sopenharmony_ci| SOURCE_TYPE_MIC | 0 | Mic音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 837e41f4b71Sopenharmony_ci| SOURCE_TYPE_VOICE_RECOGNITION<sup>9+</sup> | 1 | 语音识别源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 838e41f4b71Sopenharmony_ci| SOURCE_TYPE_PLAYBACK_CAPTURE<sup>(deprecated)</sup> | 2 | 播放音频流(内录)录制音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture。<br/> 从API version 10 开始支持,从 API version 12 开始废弃。Audio不再提供内录接口,请通过[录屏接口AVScreenCapture](../apis-media-kit/_a_v_screen_capture.md)进行内录。 | 839e41f4b71Sopenharmony_ci| SOURCE_TYPE_VOICE_COMMUNICATION | 7 | 语音通话场景的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 840e41f4b71Sopenharmony_ci| SOURCE_TYPE_VOICE_MESSAGE<sup>12+</sup> | 10 | 短语音消息的音频源。<br/>**系统能力:** SystemCapability.Multimedia.Audio.Core | 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci## AudioPlaybackCaptureConfig<sup>(deprecated)</sup> 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_ci播放音频流录制(内录)的配置信息。 845e41f4b71Sopenharmony_ci 846e41f4b71Sopenharmony_ci> **说明:** 847e41f4b71Sopenharmony_ci> 从 API version 10 开始支持,从 API version 12 开始废弃。Audio不再提供内录接口,请通过[录屏接口AVScreenCapture](../apis-media-kit/_a_v_screen_capture.md)进行内录。 848e41f4b71Sopenharmony_ci 849e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 850e41f4b71Sopenharmony_ci 851e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 852e41f4b71Sopenharmony_ci| ------------- | --------------------------------------------- | ---- | -------------------------------- | 853e41f4b71Sopenharmony_ci| filterOptions | [CaptureFilterOptions](#capturefilteroptionsdeprecated) | 是 | 需要录制的播放音频流的筛选信息。 | 854e41f4b71Sopenharmony_ci 855e41f4b71Sopenharmony_ci## CaptureFilterOptions<sup>(deprecated)</sup> 856e41f4b71Sopenharmony_ci 857e41f4b71Sopenharmony_ci待录制的播放音频流的筛选信息。 858e41f4b71Sopenharmony_ci 859e41f4b71Sopenharmony_ci> **说明:** 860e41f4b71Sopenharmony_ci> 从 API version 10 开始支持,从 API version 12 开始废弃。Audio不再提供内录接口,请通过[录屏接口AVScreenCapture](../apis-media-kit/_a_v_screen_capture.md)进行内录。 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO,具体请参考以下说明。 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci- 在API version 10时,CaptureFilterOptions支持使用StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,使用时需要申请权限ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO,该权限仅系统应用可申请。 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci- 从API version 11开始,CaptureFilterOptions不再支持使用StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,所以当前接口不再涉及此权限。 867e41f4b71Sopenharmony_ci 868e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture 869e41f4b71Sopenharmony_ci 870e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 871e41f4b71Sopenharmony_ci| ------ | ---------------------------------- | ---- | ------------------------------------------------------------ | 872e41f4b71Sopenharmony_ci| usages | Array<[StreamUsage](#streamusage)> | 是 | 指定需要录制的音频播放流的StreamUsage类型。可同时指定0个或多个StreamUsage。Array为空时,默认录制StreamUsage为STREAM_USAGE_MUSIC、STREAM_USAGE_MOVIE、STREAM_USAGE_GAME和STREAM_USAGE_AUDIOBOOK的音频播放流。 | 873e41f4b71Sopenharmony_ci 874e41f4b71Sopenharmony_ci## AudioScene<sup>8+</sup> 875e41f4b71Sopenharmony_ci 876e41f4b71Sopenharmony_ci枚举,音频场景。 877e41f4b71Sopenharmony_ci 878e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 879e41f4b71Sopenharmony_ci 880e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 881e41f4b71Sopenharmony_ci| :--------------------- | :----- | :-------------------------------------------- | 882e41f4b71Sopenharmony_ci| AUDIO_SCENE_DEFAULT | 0 | 默认音频场景。 | 883e41f4b71Sopenharmony_ci| AUDIO_SCENE_RINGING<sup>12+</sup> | 1 | 响铃模式。 | 884e41f4b71Sopenharmony_ci| AUDIO_SCENE_PHONE_CALL<sup>12+</sup> | 2 | 电话模式。 | 885e41f4b71Sopenharmony_ci| AUDIO_SCENE_VOICE_CHAT | 3 | 语音聊天模式。 | 886e41f4b71Sopenharmony_ci 887e41f4b71Sopenharmony_ci## AudioConcurrencyMode<sup>12+</sup> 888e41f4b71Sopenharmony_ci 889e41f4b71Sopenharmony_ci枚举,音频并发模式。 890e41f4b71Sopenharmony_ci 891e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 892e41f4b71Sopenharmony_ci 893e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 894e41f4b71Sopenharmony_ci| :--------------------- |:--|:--------| 895e41f4b71Sopenharmony_ci| CONCURRENCY_DEFAULT | 0 | 默认使用系统策略。 | 896e41f4b71Sopenharmony_ci| CONCURRENCY_MIX_WITH_OTHERS | 1 | 和其它音频并发。 | 897e41f4b71Sopenharmony_ci| CONCURRENCY_DUCK_OTHERS | 2 | 压低其他音频的音量。 | 898e41f4b71Sopenharmony_ci| CONCURRENCY_PAUSE_OTHERS | 3 | 暂停其他音频。 | 899e41f4b71Sopenharmony_ci 900e41f4b71Sopenharmony_ci## AudioSessionDeactivatedReason<sup>12+</sup> 901e41f4b71Sopenharmony_ci 902e41f4b71Sopenharmony_ci枚举,音频会话停用原因。 903e41f4b71Sopenharmony_ci 904e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 905e41f4b71Sopenharmony_ci 906e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 907e41f4b71Sopenharmony_ci| :--------------------- |:--|:-------| 908e41f4b71Sopenharmony_ci| DEACTIVATED_LOWER_PRIORITY | 0 | 应用焦点被抢占。 | 909e41f4b71Sopenharmony_ci| DEACTIVATED_TIMEOUT | 1 | 音频会话等待超时。 | 910e41f4b71Sopenharmony_ci 911e41f4b71Sopenharmony_ci## AudioSessionStrategy<sup>12+</sup> 912e41f4b71Sopenharmony_ci 913e41f4b71Sopenharmony_ci音频会话策略。 914e41f4b71Sopenharmony_ci 915e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 916e41f4b71Sopenharmony_ci 917e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 918e41f4b71Sopenharmony_ci| :------------ |:------------------------------------------------| :--- | :--------------- | 919e41f4b71Sopenharmony_ci| concurrencyMode | [AudioConcurrencyMode](#audioconcurrencymode12) | 是 | 音频并发模式。 | 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci## AudioSessionDeactivatedEvent<sup>12+</sup> 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci音频会话已停用事件。 924e41f4b71Sopenharmony_ci 925e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 926e41f4b71Sopenharmony_ci 927e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 928e41f4b71Sopenharmony_ci| :------------ |:------------------------------------------------------------------| :--- | :--------------- | 929e41f4b71Sopenharmony_ci| reason | [AudioSessionDeactivatedReason](#audiosessiondeactivatedreason12) | 是 | 音频会话停用原因。 | 930e41f4b71Sopenharmony_ci 931e41f4b71Sopenharmony_ci## AudioManager 932e41f4b71Sopenharmony_ci 933e41f4b71Sopenharmony_ci管理音频音量和音频设备。在调用AudioManager的接口前,需要先通过[getAudioManager](#audiogetaudiomanager)创建实例。 934e41f4b71Sopenharmony_ci 935e41f4b71Sopenharmony_ci### setAudioParameter<sup>(deprecated)</sup> 936e41f4b71Sopenharmony_ci 937e41f4b71Sopenharmony_cisetAudioParameter(key: string, value: string, callback: AsyncCallback<void>): void 938e41f4b71Sopenharmony_ci 939e41f4b71Sopenharmony_ci音频参数设置,使用callback方式异步返回结果。 940e41f4b71Sopenharmony_ci 941e41f4b71Sopenharmony_ci接口用于为根据硬件设备支持能力扩展音频配置。支持的参数与产品、设备强相关,非通用参数,示例代码内使用样例参数。 942e41f4b71Sopenharmony_ci 943e41f4b71Sopenharmony_ci> **说明:** 944e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃。替代接口仅面向系统应用开放。 945e41f4b71Sopenharmony_ci 946e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS 947e41f4b71Sopenharmony_ci 948e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 949e41f4b71Sopenharmony_ci 950e41f4b71Sopenharmony_ci**参数:** 951e41f4b71Sopenharmony_ci 952e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 953e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ------------------------ | 954e41f4b71Sopenharmony_ci| key | string | 是 | 被设置的音频参数的键。 | 955e41f4b71Sopenharmony_ci| value | string | 是 | 被设置的音频参数的值。 | 956e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当音频参数设置成功,err为undefined,否则为错误对象。 | 957e41f4b71Sopenharmony_ci 958e41f4b71Sopenharmony_ci**示例:** 959e41f4b71Sopenharmony_ci 960e41f4b71Sopenharmony_ci```ts 961e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 962e41f4b71Sopenharmony_ci 963e41f4b71Sopenharmony_ciaudioManager.setAudioParameter('key_example', 'value_example', (err: BusinessError) => { 964e41f4b71Sopenharmony_ci if (err) { 965e41f4b71Sopenharmony_ci console.error(`Failed to set the audio parameter. ${err}`); 966e41f4b71Sopenharmony_ci return; 967e41f4b71Sopenharmony_ci } 968e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate a successful setting of the audio parameter.'); 969e41f4b71Sopenharmony_ci}); 970e41f4b71Sopenharmony_ci``` 971e41f4b71Sopenharmony_ci 972e41f4b71Sopenharmony_ci### setAudioParameter<sup>(deprecated)</sup> 973e41f4b71Sopenharmony_ci 974e41f4b71Sopenharmony_cisetAudioParameter(key: string, value: string): Promise<void> 975e41f4b71Sopenharmony_ci 976e41f4b71Sopenharmony_ci音频参数设置,使用Promise方式异步返回结果。 977e41f4b71Sopenharmony_ci 978e41f4b71Sopenharmony_ci接口用于为根据硬件设备支持能力扩展音频配置。支持的参数与产品、设备强相关,非通用参数,示例代码内使用样例参数。 979e41f4b71Sopenharmony_ci 980e41f4b71Sopenharmony_ci> **说明:** 981e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃。替代接口仅面向系统应用开放。 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MODIFY_AUDIO_SETTINGS 984e41f4b71Sopenharmony_ci 985e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 986e41f4b71Sopenharmony_ci 987e41f4b71Sopenharmony_ci**参数:** 988e41f4b71Sopenharmony_ci 989e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 990e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 991e41f4b71Sopenharmony_ci| key | string | 是 | 被设置的音频参数的键。 | 992e41f4b71Sopenharmony_ci| value | string | 是 | 被设置的音频参数的值。 | 993e41f4b71Sopenharmony_ci 994e41f4b71Sopenharmony_ci**返回值:** 995e41f4b71Sopenharmony_ci 996e41f4b71Sopenharmony_ci| 类型 | 说明 | 997e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 998e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 999e41f4b71Sopenharmony_ci 1000e41f4b71Sopenharmony_ci**示例:** 1001e41f4b71Sopenharmony_ci 1002e41f4b71Sopenharmony_ci```ts 1003e41f4b71Sopenharmony_ciaudioManager.setAudioParameter('key_example', 'value_example').then(() => { 1004e41f4b71Sopenharmony_ci console.info('Promise returned to indicate a successful setting of the audio parameter.'); 1005e41f4b71Sopenharmony_ci}); 1006e41f4b71Sopenharmony_ci``` 1007e41f4b71Sopenharmony_ci 1008e41f4b71Sopenharmony_ci### getAudioParameter<sup>(deprecated)</sup> 1009e41f4b71Sopenharmony_ci 1010e41f4b71Sopenharmony_cigetAudioParameter(key: string, callback: AsyncCallback<string>): void 1011e41f4b71Sopenharmony_ci 1012e41f4b71Sopenharmony_ci获取指定音频参数值,使用callback方式异步返回结果。 1013e41f4b71Sopenharmony_ci 1014e41f4b71Sopenharmony_ci本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 1015e41f4b71Sopenharmony_ci 1016e41f4b71Sopenharmony_ci> **说明:** 1017e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃。替代接口仅面向系统应用开放。 1018e41f4b71Sopenharmony_ci 1019e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 1020e41f4b71Sopenharmony_ci 1021e41f4b71Sopenharmony_ci**参数:** 1022e41f4b71Sopenharmony_ci 1023e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1024e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ---------------------------- | 1025e41f4b71Sopenharmony_ci| key | string | 是 | 待获取的音频参数的键。 | 1026e41f4b71Sopenharmony_ci| callback | AsyncCallback<string> | 是 | 回调函数。当获取指定音频参数值成功,err为undefined,data为获取到的指定音频参数值;否则为错误对象。 | 1027e41f4b71Sopenharmony_ci 1028e41f4b71Sopenharmony_ci**示例:** 1029e41f4b71Sopenharmony_ci 1030e41f4b71Sopenharmony_ci```ts 1031e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1032e41f4b71Sopenharmony_ci 1033e41f4b71Sopenharmony_ciaudioManager.getAudioParameter('key_example', (err: BusinessError, value: string) => { 1034e41f4b71Sopenharmony_ci if (err) { 1035e41f4b71Sopenharmony_ci console.error(`Failed to obtain the value of the audio parameter. ${err}`); 1036e41f4b71Sopenharmony_ci return; 1037e41f4b71Sopenharmony_ci } 1038e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the value of the audio parameter is obtained ${value}.`); 1039e41f4b71Sopenharmony_ci}); 1040e41f4b71Sopenharmony_ci``` 1041e41f4b71Sopenharmony_ci 1042e41f4b71Sopenharmony_ci### getAudioParameter<sup>(deprecated)</sup> 1043e41f4b71Sopenharmony_ci 1044e41f4b71Sopenharmony_cigetAudioParameter(key: string): Promise<string> 1045e41f4b71Sopenharmony_ci 1046e41f4b71Sopenharmony_ci获取指定音频参数值,使用Promise方式异步返回结果。 1047e41f4b71Sopenharmony_ci 1048e41f4b71Sopenharmony_ci本接口的使用场景为根据硬件设备支持能力扩展音频配置。在不同的设备平台上,所支持的音频参数会存在差异。示例代码内使用样例参数,实际支持的音频配置参数见具体设备平台的资料描述。 1049e41f4b71Sopenharmony_ci 1050e41f4b71Sopenharmony_ci> **说明:** 1051e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃。替代接口仅面向系统应用开放。 1052e41f4b71Sopenharmony_ci 1053e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 1054e41f4b71Sopenharmony_ci 1055e41f4b71Sopenharmony_ci**参数:** 1056e41f4b71Sopenharmony_ci 1057e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1058e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------------- | 1059e41f4b71Sopenharmony_ci| key | string | 是 | 待获取的音频参数的键。 | 1060e41f4b71Sopenharmony_ci 1061e41f4b71Sopenharmony_ci**返回值:** 1062e41f4b71Sopenharmony_ci 1063e41f4b71Sopenharmony_ci| 类型 | 说明 | 1064e41f4b71Sopenharmony_ci| --------------------- | ----------------------------------- | 1065e41f4b71Sopenharmony_ci| Promise<string> | Promise对象,返回获取的音频参数的值。 | 1066e41f4b71Sopenharmony_ci 1067e41f4b71Sopenharmony_ci**示例:** 1068e41f4b71Sopenharmony_ci 1069e41f4b71Sopenharmony_ci```ts 1070e41f4b71Sopenharmony_ciaudioManager.getAudioParameter('key_example').then((value: string) => { 1071e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the value of the audio parameter is obtained ${value}.`); 1072e41f4b71Sopenharmony_ci}); 1073e41f4b71Sopenharmony_ci``` 1074e41f4b71Sopenharmony_ci 1075e41f4b71Sopenharmony_ci### getAudioScene<sup>8+</sup> 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_cigetAudioScene\(callback: AsyncCallback<AudioScene\>\): void 1078e41f4b71Sopenharmony_ci 1079e41f4b71Sopenharmony_ci获取音频场景模式,使用callback方式返回异步结果。 1080e41f4b71Sopenharmony_ci 1081e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1082e41f4b71Sopenharmony_ci 1083e41f4b71Sopenharmony_ci**参数:** 1084e41f4b71Sopenharmony_ci 1085e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1086e41f4b71Sopenharmony_ci| :------- | :-------------------------------------------------- | :--- | :--------------------------- | 1087e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioScene](#audioscene8)> | 是 | 回调函数。当获取音频场景模式成功,err为undefined,data为获取到的音频场景模式;否则为错误对象。 | 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci**示例:** 1090e41f4b71Sopenharmony_ci 1091e41f4b71Sopenharmony_ci```ts 1092e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1093e41f4b71Sopenharmony_ci 1094e41f4b71Sopenharmony_ciaudioManager.getAudioScene((err: BusinessError, value: audio.AudioScene) => { 1095e41f4b71Sopenharmony_ci if (err) { 1096e41f4b71Sopenharmony_ci console.error(`Failed to obtain the audio scene mode. ${err}`); 1097e41f4b71Sopenharmony_ci return; 1098e41f4b71Sopenharmony_ci } 1099e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the audio scene mode is obtained ${value}.`); 1100e41f4b71Sopenharmony_ci}); 1101e41f4b71Sopenharmony_ci``` 1102e41f4b71Sopenharmony_ci 1103e41f4b71Sopenharmony_ci### getAudioScene<sup>8+</sup> 1104e41f4b71Sopenharmony_ci 1105e41f4b71Sopenharmony_cigetAudioScene\(\): Promise<AudioScene\> 1106e41f4b71Sopenharmony_ci 1107e41f4b71Sopenharmony_ci获取音频场景模式,使用Promise方式返回异步结果。 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_ci**返回值:** 1112e41f4b71Sopenharmony_ci 1113e41f4b71Sopenharmony_ci| 类型 | 说明 | 1114e41f4b71Sopenharmony_ci| :-------------------------------------------- | :--------------------------- | 1115e41f4b71Sopenharmony_ci| Promise<[AudioScene](#audioscene8)> | Promise对象,返回音频场景模式。 | 1116e41f4b71Sopenharmony_ci 1117e41f4b71Sopenharmony_ci**示例:** 1118e41f4b71Sopenharmony_ci 1119e41f4b71Sopenharmony_ci```ts 1120e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1121e41f4b71Sopenharmony_ci 1122e41f4b71Sopenharmony_ciaudioManager.getAudioScene().then((value: audio.AudioScene) => { 1123e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the audio scene mode is obtained ${value}.`); 1124e41f4b71Sopenharmony_ci}).catch ((err: BusinessError) => { 1125e41f4b71Sopenharmony_ci console.error(`Failed to obtain the audio scene mode ${err}`); 1126e41f4b71Sopenharmony_ci}); 1127e41f4b71Sopenharmony_ci``` 1128e41f4b71Sopenharmony_ci 1129e41f4b71Sopenharmony_ci### getAudioSceneSync<sup>10+</sup> 1130e41f4b71Sopenharmony_ci 1131e41f4b71Sopenharmony_cigetAudioSceneSync\(\): AudioScene 1132e41f4b71Sopenharmony_ci 1133e41f4b71Sopenharmony_ci获取音频场景模式,同步返回结果。 1134e41f4b71Sopenharmony_ci 1135e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1136e41f4b71Sopenharmony_ci 1137e41f4b71Sopenharmony_ci**返回值:** 1138e41f4b71Sopenharmony_ci 1139e41f4b71Sopenharmony_ci| 类型 | 说明 | 1140e41f4b71Sopenharmony_ci| :-------------------------------------------- | :--------------------------- | 1141e41f4b71Sopenharmony_ci| [AudioScene](#audioscene8) | 音频场景模式。 | 1142e41f4b71Sopenharmony_ci 1143e41f4b71Sopenharmony_ci**示例:** 1144e41f4b71Sopenharmony_ci 1145e41f4b71Sopenharmony_ci```ts 1146e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1147e41f4b71Sopenharmony_ci 1148e41f4b71Sopenharmony_citry { 1149e41f4b71Sopenharmony_ci let value: audio.AudioScene = audioManager.getAudioSceneSync(); 1150e41f4b71Sopenharmony_ci console.info(`indicate that the audio scene mode is obtained ${value}.`); 1151e41f4b71Sopenharmony_ci} catch (err) { 1152e41f4b71Sopenharmony_ci let error = err as BusinessError; 1153e41f4b71Sopenharmony_ci console.error(`Failed to obtain the audio scene mode ${error}`); 1154e41f4b71Sopenharmony_ci} 1155e41f4b71Sopenharmony_ci``` 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ci### getVolumeManager<sup>9+</sup> 1158e41f4b71Sopenharmony_ci 1159e41f4b71Sopenharmony_cigetVolumeManager(): AudioVolumeManager 1160e41f4b71Sopenharmony_ci 1161e41f4b71Sopenharmony_ci获取音频音量管理器。 1162e41f4b71Sopenharmony_ci 1163e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1164e41f4b71Sopenharmony_ci 1165e41f4b71Sopenharmony_ci**返回值:** 1166e41f4b71Sopenharmony_ci 1167e41f4b71Sopenharmony_ci| 类型 | 说明 | 1168e41f4b71Sopenharmony_ci|-----------------------------------------| ----------------------------- | 1169e41f4b71Sopenharmony_ci| [AudioVolumeManager](#audiovolumemanager9) | AudioVolumeManager实例 | 1170e41f4b71Sopenharmony_ci 1171e41f4b71Sopenharmony_ci**示例:** 1172e41f4b71Sopenharmony_ci 1173e41f4b71Sopenharmony_ci```ts 1174e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 1175e41f4b71Sopenharmony_ci 1176e41f4b71Sopenharmony_cilet audioVolumeManager: audio.AudioVolumeManager = audioManager.getVolumeManager(); 1177e41f4b71Sopenharmony_ci``` 1178e41f4b71Sopenharmony_ci 1179e41f4b71Sopenharmony_ci### getStreamManager<sup>9+</sup> 1180e41f4b71Sopenharmony_ci 1181e41f4b71Sopenharmony_cigetStreamManager(): AudioStreamManager 1182e41f4b71Sopenharmony_ci 1183e41f4b71Sopenharmony_ci获取音频流管理器。 1184e41f4b71Sopenharmony_ci 1185e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 1186e41f4b71Sopenharmony_ci 1187e41f4b71Sopenharmony_ci**返回值:** 1188e41f4b71Sopenharmony_ci 1189e41f4b71Sopenharmony_ci| 类型 | 说明 | 1190e41f4b71Sopenharmony_ci|--------------------------------------------| ----------------------------- | 1191e41f4b71Sopenharmony_ci| [AudioStreamManager](#audiostreammanager9) | AudioStreamManager实例 | 1192e41f4b71Sopenharmony_ci 1193e41f4b71Sopenharmony_ci**示例:** 1194e41f4b71Sopenharmony_ci 1195e41f4b71Sopenharmony_ci```ts 1196e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 1197e41f4b71Sopenharmony_ci 1198e41f4b71Sopenharmony_cilet audioStreamManager: audio.AudioStreamManager = audioManager.getStreamManager(); 1199e41f4b71Sopenharmony_ci``` 1200e41f4b71Sopenharmony_ci 1201e41f4b71Sopenharmony_ci### getRoutingManager<sup>9+</sup> 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_cigetRoutingManager(): AudioRoutingManager 1204e41f4b71Sopenharmony_ci 1205e41f4b71Sopenharmony_ci获取音频路由设备管理器。 1206e41f4b71Sopenharmony_ci 1207e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1208e41f4b71Sopenharmony_ci 1209e41f4b71Sopenharmony_ci**返回值:** 1210e41f4b71Sopenharmony_ci 1211e41f4b71Sopenharmony_ci| 类型 | 说明 | 1212e41f4b71Sopenharmony_ci|------------------------------------------| ----------------------------- | 1213e41f4b71Sopenharmony_ci| [AudioRoutingManager](#audioroutingmanager9) | AudioRoutingManager实例 | 1214e41f4b71Sopenharmony_ci 1215e41f4b71Sopenharmony_ci**示例:** 1216e41f4b71Sopenharmony_ci 1217e41f4b71Sopenharmony_ci```ts 1218e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 1219e41f4b71Sopenharmony_ci 1220e41f4b71Sopenharmony_cilet audioRoutingManager: audio.AudioRoutingManager = audioManager.getRoutingManager(); 1221e41f4b71Sopenharmony_ci``` 1222e41f4b71Sopenharmony_ci 1223e41f4b71Sopenharmony_ci### getSessionManager<sup>12+</sup> 1224e41f4b71Sopenharmony_ci 1225e41f4b71Sopenharmony_cigetSessionManager(): AudioSessionManager 1226e41f4b71Sopenharmony_ci 1227e41f4b71Sopenharmony_ci获取音频会话管理器。 1228e41f4b71Sopenharmony_ci 1229e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 1230e41f4b71Sopenharmony_ci 1231e41f4b71Sopenharmony_ci**返回值:** 1232e41f4b71Sopenharmony_ci 1233e41f4b71Sopenharmony_ci| 类型 | 说明 | 1234e41f4b71Sopenharmony_ci|----------------------------------------------| ----------------------------- | 1235e41f4b71Sopenharmony_ci| [AudioSessionManager](#audiosessionmanager12) | AudioSessionManager实例 | 1236e41f4b71Sopenharmony_ci 1237e41f4b71Sopenharmony_ci**示例:** 1238e41f4b71Sopenharmony_ci 1239e41f4b71Sopenharmony_ci```ts 1240e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 1241e41f4b71Sopenharmony_ci 1242e41f4b71Sopenharmony_cilet audioSessionManager: audio.AudioSessionManager = audioManager.getSessionManager(); 1243e41f4b71Sopenharmony_ci``` 1244e41f4b71Sopenharmony_ci 1245e41f4b71Sopenharmony_ci### setVolume<sup>(deprecated)</sup> 1246e41f4b71Sopenharmony_ci 1247e41f4b71Sopenharmony_cisetVolume(volumeType: AudioVolumeType, volume: number, callback: AsyncCallback<void>): void 1248e41f4b71Sopenharmony_ci 1249e41f4b71Sopenharmony_ci设置指定流的音量,使用callback方式异步返回结果。 1250e41f4b71Sopenharmony_ci 1251e41f4b71Sopenharmony_ci> **说明:** 1252e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。 1253e41f4b71Sopenharmony_ci 1254e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1255e41f4b71Sopenharmony_ci 1256e41f4b71Sopenharmony_ci仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 1257e41f4b71Sopenharmony_ci 1258e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1259e41f4b71Sopenharmony_ci 1260e41f4b71Sopenharmony_ci**参数:** 1261e41f4b71Sopenharmony_ci 1262e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1263e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 1264e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1265e41f4b71Sopenharmony_ci| volume | number | 是 | 音量等级,可设置范围通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | 1266e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置指定流的音量成功,err为undefined,否则为错误对象。 | 1267e41f4b71Sopenharmony_ci 1268e41f4b71Sopenharmony_ci**示例:** 1269e41f4b71Sopenharmony_ci 1270e41f4b71Sopenharmony_ci```ts 1271e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1272e41f4b71Sopenharmony_ci 1273e41f4b71Sopenharmony_ciaudioManager.setVolume(audio.AudioVolumeType.MEDIA, 10, (err: BusinessError) => { 1274e41f4b71Sopenharmony_ci if (err) { 1275e41f4b71Sopenharmony_ci console.error(`Failed to set the volume. ${err}`); 1276e41f4b71Sopenharmony_ci return; 1277e41f4b71Sopenharmony_ci } 1278e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate a successful volume setting.'); 1279e41f4b71Sopenharmony_ci}); 1280e41f4b71Sopenharmony_ci``` 1281e41f4b71Sopenharmony_ci 1282e41f4b71Sopenharmony_ci### setVolume<sup>(deprecated)</sup> 1283e41f4b71Sopenharmony_ci 1284e41f4b71Sopenharmony_cisetVolume(volumeType: AudioVolumeType, volume: number): Promise<void> 1285e41f4b71Sopenharmony_ci 1286e41f4b71Sopenharmony_ci设置指定流的音量,使用Promise方式异步返回结果。 1287e41f4b71Sopenharmony_ci 1288e41f4b71Sopenharmony_ci> **说明:** 1289e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用AudioVolumeGroupManager中的[setVolume](#setvolume9)替代,替代接口能力仅对系统应用开放。 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1292e41f4b71Sopenharmony_ci 1293e41f4b71Sopenharmony_ci仅设置铃声(即volumeType为AudioVolumeType.RINGTONE)在静音和非静音状态切换时需要该权限。 1294e41f4b71Sopenharmony_ci 1295e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1296e41f4b71Sopenharmony_ci 1297e41f4b71Sopenharmony_ci**参数:** 1298e41f4b71Sopenharmony_ci 1299e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1300e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 1301e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1302e41f4b71Sopenharmony_ci| volume | number | 是 | 音量等级,可设置范围通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | 1303e41f4b71Sopenharmony_ci 1304e41f4b71Sopenharmony_ci**返回值:** 1305e41f4b71Sopenharmony_ci 1306e41f4b71Sopenharmony_ci| 类型 | 说明 | 1307e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 1308e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 1309e41f4b71Sopenharmony_ci 1310e41f4b71Sopenharmony_ci**示例:** 1311e41f4b71Sopenharmony_ci 1312e41f4b71Sopenharmony_ci```ts 1313e41f4b71Sopenharmony_ciaudioManager.setVolume(audio.AudioVolumeType.MEDIA, 10).then(() => { 1314e41f4b71Sopenharmony_ci console.info('Promise returned to indicate a successful volume setting.'); 1315e41f4b71Sopenharmony_ci}); 1316e41f4b71Sopenharmony_ci``` 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ci### getVolume<sup>(deprecated)</sup> 1319e41f4b71Sopenharmony_ci 1320e41f4b71Sopenharmony_cigetVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci获取指定流的音量,使用callback方式异步返回结果。 1323e41f4b71Sopenharmony_ci 1324e41f4b71Sopenharmony_ci> **说明:** 1325e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。 1326e41f4b71Sopenharmony_ci 1327e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1328e41f4b71Sopenharmony_ci 1329e41f4b71Sopenharmony_ci**参数:** 1330e41f4b71Sopenharmony_ci 1331e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1332e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------ | 1333e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1334e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | 1335e41f4b71Sopenharmony_ci 1336e41f4b71Sopenharmony_ci**示例:** 1337e41f4b71Sopenharmony_ci 1338e41f4b71Sopenharmony_ci```ts 1339e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1340e41f4b71Sopenharmony_ci 1341e41f4b71Sopenharmony_ciaudioManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1342e41f4b71Sopenharmony_ci if (err) { 1343e41f4b71Sopenharmony_ci console.error(`Failed to obtain the volume. ${err}`); 1344e41f4b71Sopenharmony_ci return; 1345e41f4b71Sopenharmony_ci } 1346e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the volume is obtained.'); 1347e41f4b71Sopenharmony_ci}); 1348e41f4b71Sopenharmony_ci``` 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci### getVolume<sup>(deprecated)</sup> 1351e41f4b71Sopenharmony_ci 1352e41f4b71Sopenharmony_cigetVolume(volumeType: AudioVolumeType): Promise<number> 1353e41f4b71Sopenharmony_ci 1354e41f4b71Sopenharmony_ci获取指定流的音量,使用Promise方式异步返回结果。 1355e41f4b71Sopenharmony_ci 1356e41f4b71Sopenharmony_ci> **说明:** 1357e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getVolume](#getvolume9)替代。 1358e41f4b71Sopenharmony_ci 1359e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1360e41f4b71Sopenharmony_ci 1361e41f4b71Sopenharmony_ci**参数:** 1362e41f4b71Sopenharmony_ci 1363e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1364e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 1365e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1366e41f4b71Sopenharmony_ci 1367e41f4b71Sopenharmony_ci**返回值:** 1368e41f4b71Sopenharmony_ci 1369e41f4b71Sopenharmony_ci| 类型 | 说明 | 1370e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 1371e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolumedeprecated)和[getMaxVolume](#getmaxvolumedeprecated)获取。 | 1372e41f4b71Sopenharmony_ci 1373e41f4b71Sopenharmony_ci**示例:** 1374e41f4b71Sopenharmony_ci 1375e41f4b71Sopenharmony_ci```ts 1376e41f4b71Sopenharmony_ciaudioManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 1377e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the volume is obtained ${value} .`); 1378e41f4b71Sopenharmony_ci}); 1379e41f4b71Sopenharmony_ci``` 1380e41f4b71Sopenharmony_ci 1381e41f4b71Sopenharmony_ci### getMinVolume<sup>(deprecated)</sup> 1382e41f4b71Sopenharmony_ci 1383e41f4b71Sopenharmony_cigetMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1384e41f4b71Sopenharmony_ci 1385e41f4b71Sopenharmony_ci获取指定流的最小音量,使用callback方式异步返回结果。 1386e41f4b71Sopenharmony_ci 1387e41f4b71Sopenharmony_ci> **说明:** 1388e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。 1389e41f4b71Sopenharmony_ci 1390e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1391e41f4b71Sopenharmony_ci 1392e41f4b71Sopenharmony_ci**参数:** 1393e41f4b71Sopenharmony_ci 1394e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1395e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------ | 1396e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1397e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。 | 1398e41f4b71Sopenharmony_ci 1399e41f4b71Sopenharmony_ci**示例:** 1400e41f4b71Sopenharmony_ci 1401e41f4b71Sopenharmony_ci```ts 1402e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ciaudioManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1405e41f4b71Sopenharmony_ci if (err) { 1406e41f4b71Sopenharmony_ci console.error(`Failed to obtain the minimum volume. ${err}`); 1407e41f4b71Sopenharmony_ci return; 1408e41f4b71Sopenharmony_ci } 1409e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`); 1410e41f4b71Sopenharmony_ci}); 1411e41f4b71Sopenharmony_ci``` 1412e41f4b71Sopenharmony_ci 1413e41f4b71Sopenharmony_ci### getMinVolume<sup>(deprecated)</sup> 1414e41f4b71Sopenharmony_ci 1415e41f4b71Sopenharmony_cigetMinVolume(volumeType: AudioVolumeType): Promise<number> 1416e41f4b71Sopenharmony_ci 1417e41f4b71Sopenharmony_ci获取指定流的最小音量,使用Promise方式异步返回结果。 1418e41f4b71Sopenharmony_ci 1419e41f4b71Sopenharmony_ci> **说明:** 1420e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMinVolume](#getminvolume9)替代。 1421e41f4b71Sopenharmony_ci 1422e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1423e41f4b71Sopenharmony_ci 1424e41f4b71Sopenharmony_ci**参数:** 1425e41f4b71Sopenharmony_ci 1426e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1427e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 1428e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1429e41f4b71Sopenharmony_ci 1430e41f4b71Sopenharmony_ci**返回值:** 1431e41f4b71Sopenharmony_ci 1432e41f4b71Sopenharmony_ci| 类型 | 说明 | 1433e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 1434e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回最小音量。 | 1435e41f4b71Sopenharmony_ci 1436e41f4b71Sopenharmony_ci**示例:** 1437e41f4b71Sopenharmony_ci 1438e41f4b71Sopenharmony_ci```ts 1439e41f4b71Sopenharmony_ciaudioManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 1440e41f4b71Sopenharmony_ci console.info(`Promised returned to indicate that the minimum volume is obtained. ${value}`); 1441e41f4b71Sopenharmony_ci}); 1442e41f4b71Sopenharmony_ci``` 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci### getMaxVolume<sup>(deprecated)</sup> 1445e41f4b71Sopenharmony_ci 1446e41f4b71Sopenharmony_cigetMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci获取指定流的最大音量,使用callback方式异步返回结果。 1449e41f4b71Sopenharmony_ci 1450e41f4b71Sopenharmony_ci> **说明:** 1451e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。 1452e41f4b71Sopenharmony_ci 1453e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1454e41f4b71Sopenharmony_ci 1455e41f4b71Sopenharmony_ci**参数:** 1456e41f4b71Sopenharmony_ci 1457e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1458e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ---------------------- | 1459e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1460e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。 | 1461e41f4b71Sopenharmony_ci 1462e41f4b71Sopenharmony_ci**示例:** 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci```ts 1465e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1466e41f4b71Sopenharmony_ci 1467e41f4b71Sopenharmony_ciaudioManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 1468e41f4b71Sopenharmony_ci if (err) { 1469e41f4b71Sopenharmony_ci console.error(`Failed to obtain the maximum volume. ${err}`); 1470e41f4b71Sopenharmony_ci return; 1471e41f4b71Sopenharmony_ci } 1472e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`); 1473e41f4b71Sopenharmony_ci}); 1474e41f4b71Sopenharmony_ci``` 1475e41f4b71Sopenharmony_ci 1476e41f4b71Sopenharmony_ci### getMaxVolume<sup>(deprecated)</sup> 1477e41f4b71Sopenharmony_ci 1478e41f4b71Sopenharmony_cigetMaxVolume(volumeType: AudioVolumeType): Promise<number> 1479e41f4b71Sopenharmony_ci 1480e41f4b71Sopenharmony_ci获取指定流的最大音量,使用Promise方式异步返回结果。 1481e41f4b71Sopenharmony_ci 1482e41f4b71Sopenharmony_ci> **说明:** 1483e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getMaxVolume](#getmaxvolume9)替代。 1484e41f4b71Sopenharmony_ci 1485e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1486e41f4b71Sopenharmony_ci 1487e41f4b71Sopenharmony_ci**参数:** 1488e41f4b71Sopenharmony_ci 1489e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1490e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 1491e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1492e41f4b71Sopenharmony_ci 1493e41f4b71Sopenharmony_ci**返回值:** 1494e41f4b71Sopenharmony_ci 1495e41f4b71Sopenharmony_ci| 类型 | 说明 | 1496e41f4b71Sopenharmony_ci| --------------------- | ----------------------------- | 1497e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回最大音量。 | 1498e41f4b71Sopenharmony_ci 1499e41f4b71Sopenharmony_ci**示例:** 1500e41f4b71Sopenharmony_ci 1501e41f4b71Sopenharmony_ci```ts 1502e41f4b71Sopenharmony_ciaudioManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => { 1503e41f4b71Sopenharmony_ci console.info('Promised returned to indicate that the maximum volume is obtained.'); 1504e41f4b71Sopenharmony_ci}); 1505e41f4b71Sopenharmony_ci``` 1506e41f4b71Sopenharmony_ci 1507e41f4b71Sopenharmony_ci### mute<sup>(deprecated)</sup> 1508e41f4b71Sopenharmony_ci 1509e41f4b71Sopenharmony_cimute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback<void>): void 1510e41f4b71Sopenharmony_ci 1511e41f4b71Sopenharmony_ci设置指定音量流静音,当该音量流可设置的最小音量不能为0时会返回false,例如:闹钟、通话,使用callback方式异步返回结果。 1512e41f4b71Sopenharmony_ci 1513e41f4b71Sopenharmony_ci> **说明:** 1514e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 1515e41f4b71Sopenharmony_ci 1516e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1517e41f4b71Sopenharmony_ci 1518e41f4b71Sopenharmony_ci**参数:** 1519e41f4b71Sopenharmony_ci 1520e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1521e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------------------------- | 1522e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1523e41f4b71Sopenharmony_ci| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 1524e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置指定音量流静音成功,err为undefined,否则为错误对象。 | 1525e41f4b71Sopenharmony_ci 1526e41f4b71Sopenharmony_ci**示例:** 1527e41f4b71Sopenharmony_ci 1528e41f4b71Sopenharmony_ci```ts 1529e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1530e41f4b71Sopenharmony_ci 1531e41f4b71Sopenharmony_ciaudioManager.mute(audio.AudioVolumeType.MEDIA, true, (err: BusinessError) => { 1532e41f4b71Sopenharmony_ci if (err) { 1533e41f4b71Sopenharmony_ci console.error(`Failed to mute the stream. ${err}`); 1534e41f4b71Sopenharmony_ci return; 1535e41f4b71Sopenharmony_ci } 1536e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the stream is muted.'); 1537e41f4b71Sopenharmony_ci}); 1538e41f4b71Sopenharmony_ci``` 1539e41f4b71Sopenharmony_ci 1540e41f4b71Sopenharmony_ci### mute<sup>(deprecated)</sup> 1541e41f4b71Sopenharmony_ci 1542e41f4b71Sopenharmony_cimute(volumeType: AudioVolumeType, mute: boolean): Promise<void> 1543e41f4b71Sopenharmony_ci 1544e41f4b71Sopenharmony_ci设置指定音量流静音,当该音量流可设置的最小音量不能为0时会返回false,例如:闹钟、通话,使用Promise方式异步返回结果。 1545e41f4b71Sopenharmony_ci 1546e41f4b71Sopenharmony_ci> **说明:** 1547e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 1548e41f4b71Sopenharmony_ci 1549e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1550e41f4b71Sopenharmony_ci 1551e41f4b71Sopenharmony_ci**参数:** 1552e41f4b71Sopenharmony_ci 1553e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1554e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------------------------- | 1555e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1556e41f4b71Sopenharmony_ci| mute | boolean | 是 | 静音状态,true为静音,false为非静音。 | 1557e41f4b71Sopenharmony_ci 1558e41f4b71Sopenharmony_ci**返回值:** 1559e41f4b71Sopenharmony_ci 1560e41f4b71Sopenharmony_ci| 类型 | 说明 | 1561e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 1562e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_ci**示例:** 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci 1567e41f4b71Sopenharmony_ci```ts 1568e41f4b71Sopenharmony_ciaudioManager.mute(audio.AudioVolumeType.MEDIA, true).then(() => { 1569e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the stream is muted.'); 1570e41f4b71Sopenharmony_ci}); 1571e41f4b71Sopenharmony_ci``` 1572e41f4b71Sopenharmony_ci 1573e41f4b71Sopenharmony_ci### isMute<sup>(deprecated)</sup> 1574e41f4b71Sopenharmony_ci 1575e41f4b71Sopenharmony_ciisMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 1576e41f4b71Sopenharmony_ci 1577e41f4b71Sopenharmony_ci获取指定音量流是否被静音,使用callback方式异步返回结果。 1578e41f4b71Sopenharmony_ci 1579e41f4b71Sopenharmony_ci> **说明:** 1580e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。 1581e41f4b71Sopenharmony_ci 1582e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1583e41f4b71Sopenharmony_ci 1584e41f4b71Sopenharmony_ci**参数:** 1585e41f4b71Sopenharmony_ci 1586e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1587e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ----------------------------------------------- | 1588e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1589e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音量流是否被静音成功,err为undefined,data为true为静音,false为非静音;否则为错误对象。 | 1590e41f4b71Sopenharmony_ci 1591e41f4b71Sopenharmony_ci**示例:** 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_ci```ts 1594e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1595e41f4b71Sopenharmony_ci 1596e41f4b71Sopenharmony_ciaudioManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 1597e41f4b71Sopenharmony_ci if (err) { 1598e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status. ${err}`); 1599e41f4b71Sopenharmony_ci return; 1600e41f4b71Sopenharmony_ci } 1601e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the mute status of the stream is obtained. ${value}`); 1602e41f4b71Sopenharmony_ci}); 1603e41f4b71Sopenharmony_ci``` 1604e41f4b71Sopenharmony_ci 1605e41f4b71Sopenharmony_ci### isMute<sup>(deprecated)</sup> 1606e41f4b71Sopenharmony_ci 1607e41f4b71Sopenharmony_ciisMute(volumeType: AudioVolumeType): Promise<boolean> 1608e41f4b71Sopenharmony_ci 1609e41f4b71Sopenharmony_ci获取指定音量流是否被静音,使用Promise方式异步返回结果。 1610e41f4b71Sopenharmony_ci 1611e41f4b71Sopenharmony_ci> **说明:** 1612e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMute](#ismute9)替代。 1613e41f4b71Sopenharmony_ci 1614e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1615e41f4b71Sopenharmony_ci 1616e41f4b71Sopenharmony_ci**参数:** 1617e41f4b71Sopenharmony_ci 1618e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1619e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 1620e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1621e41f4b71Sopenharmony_ci 1622e41f4b71Sopenharmony_ci**返回值:** 1623e41f4b71Sopenharmony_ci 1624e41f4b71Sopenharmony_ci| 类型 | 说明 | 1625e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | 1626e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回流静音状态,true为静音,false为非静音。 | 1627e41f4b71Sopenharmony_ci 1628e41f4b71Sopenharmony_ci**示例:** 1629e41f4b71Sopenharmony_ci 1630e41f4b71Sopenharmony_ci```ts 1631e41f4b71Sopenharmony_ciaudioManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 1632e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`); 1633e41f4b71Sopenharmony_ci}); 1634e41f4b71Sopenharmony_ci``` 1635e41f4b71Sopenharmony_ci 1636e41f4b71Sopenharmony_ci### isActive<sup>(deprecated)</sup> 1637e41f4b71Sopenharmony_ci 1638e41f4b71Sopenharmony_ciisActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 1639e41f4b71Sopenharmony_ci 1640e41f4b71Sopenharmony_ci获取指定音量流是否为活跃状态,使用callback方式异步返回结果。 1641e41f4b71Sopenharmony_ci 1642e41f4b71Sopenharmony_ci> **说明:** 1643e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1646e41f4b71Sopenharmony_ci 1647e41f4b71Sopenharmony_ci**参数:** 1648e41f4b71Sopenharmony_ci 1649e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1650e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------------------------------------- | 1651e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1652e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音量流是否为活跃状态成功,err为undefined,data为true为活跃,false为不活跃;否则为错误对象。 | 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci**示例:** 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci```ts 1657e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1658e41f4b71Sopenharmony_ci 1659e41f4b71Sopenharmony_ciaudioManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 1660e41f4b71Sopenharmony_ci if (err) { 1661e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the stream. ${err}`); 1662e41f4b71Sopenharmony_ci return; 1663e41f4b71Sopenharmony_ci } 1664e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`); 1665e41f4b71Sopenharmony_ci}); 1666e41f4b71Sopenharmony_ci``` 1667e41f4b71Sopenharmony_ci 1668e41f4b71Sopenharmony_ci### isActive<sup>(deprecated)</sup> 1669e41f4b71Sopenharmony_ci 1670e41f4b71Sopenharmony_ciisActive(volumeType: AudioVolumeType): Promise<boolean> 1671e41f4b71Sopenharmony_ci 1672e41f4b71Sopenharmony_ci获取指定音量流是否为活跃状态,使用Promise方式异步返回结果。 1673e41f4b71Sopenharmony_ci 1674e41f4b71Sopenharmony_ci> **说明:** 1675e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioStreamManager中的[isActive](#isactive9)替代。 1676e41f4b71Sopenharmony_ci 1677e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 1678e41f4b71Sopenharmony_ci 1679e41f4b71Sopenharmony_ci**参数:** 1680e41f4b71Sopenharmony_ci 1681e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1682e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 1683e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 1684e41f4b71Sopenharmony_ci 1685e41f4b71Sopenharmony_ci**返回值:** 1686e41f4b71Sopenharmony_ci 1687e41f4b71Sopenharmony_ci| 类型 | 说明 | 1688e41f4b71Sopenharmony_ci| ---------------------- | -------------------------------------------------------- | 1689e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回流的活跃状态,true为活跃,false为不活跃。 | 1690e41f4b71Sopenharmony_ci 1691e41f4b71Sopenharmony_ci**示例:** 1692e41f4b71Sopenharmony_ci 1693e41f4b71Sopenharmony_ci```ts 1694e41f4b71Sopenharmony_ciaudioManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 1695e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`); 1696e41f4b71Sopenharmony_ci}); 1697e41f4b71Sopenharmony_ci``` 1698e41f4b71Sopenharmony_ci 1699e41f4b71Sopenharmony_ci### setRingerMode<sup>(deprecated)</sup> 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_cisetRingerMode(mode: AudioRingMode, callback: AsyncCallback<void>): void 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci设置铃声模式,使用callback方式异步返回结果。 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci> **说明:** 1706e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 1707e41f4b71Sopenharmony_ci 1708e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1709e41f4b71Sopenharmony_ci 1710e41f4b71Sopenharmony_ci仅在静音和非静音状态切换时需要该权限。 1711e41f4b71Sopenharmony_ci 1712e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1713e41f4b71Sopenharmony_ci 1714e41f4b71Sopenharmony_ci**参数:** 1715e41f4b71Sopenharmony_ci 1716e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1717e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ------------------------ | 1718e41f4b71Sopenharmony_ci| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 1719e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置铃声模式成功,err为undefined,否则为错误对象。 | 1720e41f4b71Sopenharmony_ci 1721e41f4b71Sopenharmony_ci**示例:** 1722e41f4b71Sopenharmony_ci 1723e41f4b71Sopenharmony_ci```ts 1724e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_ciaudioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err: BusinessError) => { 1727e41f4b71Sopenharmony_ci if (err) { 1728e41f4b71Sopenharmony_ci console.error(`Failed to set the ringer mode. ${err}`); 1729e41f4b71Sopenharmony_ci return; 1730e41f4b71Sopenharmony_ci } 1731e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate a successful setting of the ringer mode.'); 1732e41f4b71Sopenharmony_ci}); 1733e41f4b71Sopenharmony_ci``` 1734e41f4b71Sopenharmony_ci 1735e41f4b71Sopenharmony_ci### setRingerMode<sup>(deprecated)</sup> 1736e41f4b71Sopenharmony_ci 1737e41f4b71Sopenharmony_cisetRingerMode(mode: AudioRingMode): Promise<void> 1738e41f4b71Sopenharmony_ci 1739e41f4b71Sopenharmony_ci设置铃声模式,使用Promise方式异步返回结果。 1740e41f4b71Sopenharmony_ci 1741e41f4b71Sopenharmony_ci> **说明:** 1742e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 1743e41f4b71Sopenharmony_ci 1744e41f4b71Sopenharmony_ci 1745e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.ACCESS_NOTIFICATION_POLICY 1746e41f4b71Sopenharmony_ci 1747e41f4b71Sopenharmony_ci仅在静音和非静音状态切换时需要该权限。 1748e41f4b71Sopenharmony_ci 1749e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1750e41f4b71Sopenharmony_ci 1751e41f4b71Sopenharmony_ci**参数:** 1752e41f4b71Sopenharmony_ci 1753e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1754e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | -------------- | 1755e41f4b71Sopenharmony_ci| mode | [AudioRingMode](#audioringmode) | 是 | 音频铃声模式。 | 1756e41f4b71Sopenharmony_ci 1757e41f4b71Sopenharmony_ci**返回值:** 1758e41f4b71Sopenharmony_ci 1759e41f4b71Sopenharmony_ci| 类型 | 说明 | 1760e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 1761e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 1762e41f4b71Sopenharmony_ci 1763e41f4b71Sopenharmony_ci**示例:** 1764e41f4b71Sopenharmony_ci 1765e41f4b71Sopenharmony_ci```ts 1766e41f4b71Sopenharmony_ciaudioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL).then(() => { 1767e41f4b71Sopenharmony_ci console.info('Promise returned to indicate a successful setting of the ringer mode.'); 1768e41f4b71Sopenharmony_ci}); 1769e41f4b71Sopenharmony_ci``` 1770e41f4b71Sopenharmony_ci 1771e41f4b71Sopenharmony_ci### getRingerMode<sup>(deprecated)</sup> 1772e41f4b71Sopenharmony_ci 1773e41f4b71Sopenharmony_cigetRingerMode(callback: AsyncCallback<AudioRingMode>): void 1774e41f4b71Sopenharmony_ci 1775e41f4b71Sopenharmony_ci获取铃声模式,使用callback方式异步返回结果。 1776e41f4b71Sopenharmony_ci 1777e41f4b71Sopenharmony_ci> **说明:** 1778e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。 1779e41f4b71Sopenharmony_ci 1780e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1781e41f4b71Sopenharmony_ci 1782e41f4b71Sopenharmony_ci**参数:** 1783e41f4b71Sopenharmony_ci 1784e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1785e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | ---- | ------------------------ | 1786e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | 是 | 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。 | 1787e41f4b71Sopenharmony_ci 1788e41f4b71Sopenharmony_ci**示例:** 1789e41f4b71Sopenharmony_ci 1790e41f4b71Sopenharmony_ci```ts 1791e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1792e41f4b71Sopenharmony_ci 1793e41f4b71Sopenharmony_ciaudioManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => { 1794e41f4b71Sopenharmony_ci if (err) { 1795e41f4b71Sopenharmony_ci console.error(`Failed to obtain the ringer mode. ${err}`); 1796e41f4b71Sopenharmony_ci return; 1797e41f4b71Sopenharmony_ci } 1798e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`); 1799e41f4b71Sopenharmony_ci}); 1800e41f4b71Sopenharmony_ci``` 1801e41f4b71Sopenharmony_ci 1802e41f4b71Sopenharmony_ci### getRingerMode<sup>(deprecated)</sup> 1803e41f4b71Sopenharmony_ci 1804e41f4b71Sopenharmony_cigetRingerMode(): Promise<AudioRingMode> 1805e41f4b71Sopenharmony_ci 1806e41f4b71Sopenharmony_ci获取铃声模式,使用Promise方式异步返回结果。 1807e41f4b71Sopenharmony_ci 1808e41f4b71Sopenharmony_ci> **说明:** 1809e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[getRingerMode](#getringermode9)替代。 1810e41f4b71Sopenharmony_ci 1811e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 1812e41f4b71Sopenharmony_ci 1813e41f4b71Sopenharmony_ci**返回值:** 1814e41f4b71Sopenharmony_ci 1815e41f4b71Sopenharmony_ci| 类型 | 说明 | 1816e41f4b71Sopenharmony_ci| ---------------------------------------------- | ------------------------------- | 1817e41f4b71Sopenharmony_ci| Promise<[AudioRingMode](#audioringmode)> | Promise对象,返回系统的铃声模式。 | 1818e41f4b71Sopenharmony_ci 1819e41f4b71Sopenharmony_ci**示例:** 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci```ts 1822e41f4b71Sopenharmony_ciaudioManager.getRingerMode().then((value: audio.AudioRingMode) => { 1823e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`); 1824e41f4b71Sopenharmony_ci}); 1825e41f4b71Sopenharmony_ci``` 1826e41f4b71Sopenharmony_ci 1827e41f4b71Sopenharmony_ci### getDevices<sup>(deprecated)</sup> 1828e41f4b71Sopenharmony_ci 1829e41f4b71Sopenharmony_cigetDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void 1830e41f4b71Sopenharmony_ci 1831e41f4b71Sopenharmony_ci获取音频设备列表,使用callback方式异步返回结果。 1832e41f4b71Sopenharmony_ci 1833e41f4b71Sopenharmony_ci> **说明:** 1834e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。 1835e41f4b71Sopenharmony_ci 1836e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1837e41f4b71Sopenharmony_ci 1838e41f4b71Sopenharmony_ci**参数:** 1839e41f4b71Sopenharmony_ci 1840e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1841e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 1842e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 1843e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数。当获取音频设备列表成功,err为undefined,data为获取到的音频设备列表;否则为错误对象。 | 1844e41f4b71Sopenharmony_ci 1845e41f4b71Sopenharmony_ci**示例:** 1846e41f4b71Sopenharmony_ci```ts 1847e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1848e41f4b71Sopenharmony_ci 1849e41f4b71Sopenharmony_ciaudioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => { 1850e41f4b71Sopenharmony_ci if (err) { 1851e41f4b71Sopenharmony_ci console.error(`Failed to obtain the device list. ${err}`); 1852e41f4b71Sopenharmony_ci return; 1853e41f4b71Sopenharmony_ci } 1854e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the device list is obtained.'); 1855e41f4b71Sopenharmony_ci}); 1856e41f4b71Sopenharmony_ci``` 1857e41f4b71Sopenharmony_ci 1858e41f4b71Sopenharmony_ci### getDevices<sup>(deprecated)</sup> 1859e41f4b71Sopenharmony_ci 1860e41f4b71Sopenharmony_cigetDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> 1861e41f4b71Sopenharmony_ci 1862e41f4b71Sopenharmony_ci获取音频设备列表,使用Promise方式异步返回结果。 1863e41f4b71Sopenharmony_ci 1864e41f4b71Sopenharmony_ci> **说明:** 1865e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[getDevices](#getdevices9)替代。 1866e41f4b71Sopenharmony_ci 1867e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1868e41f4b71Sopenharmony_ci 1869e41f4b71Sopenharmony_ci**参数:** 1870e41f4b71Sopenharmony_ci 1871e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1872e41f4b71Sopenharmony_ci| ---------- | ------------------------- | ---- | ---------------- | 1873e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 1874e41f4b71Sopenharmony_ci 1875e41f4b71Sopenharmony_ci**返回值:** 1876e41f4b71Sopenharmony_ci 1877e41f4b71Sopenharmony_ci| 类型 | 说明 | 1878e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------- | 1879e41f4b71Sopenharmony_ci| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise对象,返回设备列表。 | 1880e41f4b71Sopenharmony_ci 1881e41f4b71Sopenharmony_ci**示例:** 1882e41f4b71Sopenharmony_ci 1883e41f4b71Sopenharmony_ci```ts 1884e41f4b71Sopenharmony_ciaudioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => { 1885e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the device list is obtained.'); 1886e41f4b71Sopenharmony_ci}); 1887e41f4b71Sopenharmony_ci``` 1888e41f4b71Sopenharmony_ci 1889e41f4b71Sopenharmony_ci### setDeviceActive<sup>(deprecated)</sup> 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_cisetDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback<void>): void 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci设置设备激活状态,使用callback方式异步返回结果。 1894e41f4b71Sopenharmony_ci 1895e41f4b71Sopenharmony_ci> **说明:** 1896e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。 1897e41f4b71Sopenharmony_ci 1898e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1899e41f4b71Sopenharmony_ci 1900e41f4b71Sopenharmony_ci**参数:** 1901e41f4b71Sopenharmony_ci 1902e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1903e41f4b71Sopenharmony_ci| ---------- | ------------------------------------- | ---- |-------------| 1904e41f4b71Sopenharmony_ci| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1905e41f4b71Sopenharmony_ci| active | boolean | 是 | 设备激活状态。 | 1906e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置设备激活状态成功,err为undefined,否则为错误对象。 | 1907e41f4b71Sopenharmony_ci 1908e41f4b71Sopenharmony_ci**示例:** 1909e41f4b71Sopenharmony_ci 1910e41f4b71Sopenharmony_ci```ts 1911e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1912e41f4b71Sopenharmony_ci 1913e41f4b71Sopenharmony_ciaudioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true, (err: BusinessError) => { 1914e41f4b71Sopenharmony_ci if (err) { 1915e41f4b71Sopenharmony_ci console.error(`Failed to set the active status of the device. ${err}`); 1916e41f4b71Sopenharmony_ci return; 1917e41f4b71Sopenharmony_ci } 1918e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the device is set to the active status.'); 1919e41f4b71Sopenharmony_ci}); 1920e41f4b71Sopenharmony_ci``` 1921e41f4b71Sopenharmony_ci 1922e41f4b71Sopenharmony_ci### setDeviceActive<sup>(deprecated)</sup> 1923e41f4b71Sopenharmony_ci 1924e41f4b71Sopenharmony_cisetDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise<void> 1925e41f4b71Sopenharmony_ci 1926e41f4b71Sopenharmony_ci设置设备激活状态,使用Promise方式异步返回结果。 1927e41f4b71Sopenharmony_ci 1928e41f4b71Sopenharmony_ci> **说明:** 1929e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[setCommunicationDevice](#setcommunicationdevice9)替代。 1930e41f4b71Sopenharmony_ci 1931e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1932e41f4b71Sopenharmony_ci 1933e41f4b71Sopenharmony_ci**参数:** 1934e41f4b71Sopenharmony_ci 1935e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1936e41f4b71Sopenharmony_ci| ---------- | ------------------------------------- | ---- | ------------------ | 1937e41f4b71Sopenharmony_ci| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1938e41f4b71Sopenharmony_ci| active | boolean | 是 | 设备激活状态。 | 1939e41f4b71Sopenharmony_ci 1940e41f4b71Sopenharmony_ci**返回值:** 1941e41f4b71Sopenharmony_ci 1942e41f4b71Sopenharmony_ci| 类型 | 说明 | 1943e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 1944e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 1945e41f4b71Sopenharmony_ci 1946e41f4b71Sopenharmony_ci**示例:** 1947e41f4b71Sopenharmony_ci 1948e41f4b71Sopenharmony_ci 1949e41f4b71Sopenharmony_ci```ts 1950e41f4b71Sopenharmony_ciaudioManager.setDeviceActive(audio.ActiveDeviceType.SPEAKER, true).then(() => { 1951e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the device is set to the active status.'); 1952e41f4b71Sopenharmony_ci}); 1953e41f4b71Sopenharmony_ci``` 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci### isDeviceActive<sup>(deprecated)</sup> 1956e41f4b71Sopenharmony_ci 1957e41f4b71Sopenharmony_ciisDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback<boolean>): void 1958e41f4b71Sopenharmony_ci 1959e41f4b71Sopenharmony_ci获取指定设备的激活状态,使用callback方式异步返回结果。 1960e41f4b71Sopenharmony_ci 1961e41f4b71Sopenharmony_ci> **说明:** 1962e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。 1963e41f4b71Sopenharmony_ci 1964e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1965e41f4b71Sopenharmony_ci 1966e41f4b71Sopenharmony_ci**参数:** 1967e41f4b71Sopenharmony_ci 1968e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1969e41f4b71Sopenharmony_ci| ---------- | ------------------------------------- | ---- | ------------------------ | 1970e41f4b71Sopenharmony_ci| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 1971e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定设备的激活状态成功,err为undefined,data为true为激活,false为未激活;否则为错误对象。 | 1972e41f4b71Sopenharmony_ci 1973e41f4b71Sopenharmony_ci**示例:** 1974e41f4b71Sopenharmony_ci 1975e41f4b71Sopenharmony_ci```ts 1976e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1977e41f4b71Sopenharmony_ci 1978e41f4b71Sopenharmony_ciaudioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER, (err: BusinessError, value: boolean) => { 1979e41f4b71Sopenharmony_ci if (err) { 1980e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the device. ${err}`); 1981e41f4b71Sopenharmony_ci return; 1982e41f4b71Sopenharmony_ci } 1983e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the active status of the device is obtained.'); 1984e41f4b71Sopenharmony_ci}); 1985e41f4b71Sopenharmony_ci``` 1986e41f4b71Sopenharmony_ci 1987e41f4b71Sopenharmony_ci### isDeviceActive<sup>(deprecated)</sup> 1988e41f4b71Sopenharmony_ci 1989e41f4b71Sopenharmony_ciisDeviceActive(deviceType: ActiveDeviceType): Promise<boolean> 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci获取指定设备的激活状态,使用Promise方式异步返回结果。 1992e41f4b71Sopenharmony_ci 1993e41f4b71Sopenharmony_ci> **说明:** 1994e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[isCommunicationDeviceActive](#iscommunicationdeviceactive9)替代。 1995e41f4b71Sopenharmony_ci 1996e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 1997e41f4b71Sopenharmony_ci 1998e41f4b71Sopenharmony_ci**参数:** 1999e41f4b71Sopenharmony_ci 2000e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2001e41f4b71Sopenharmony_ci| ---------- | ------------------------------------- | ---- | ------------------ | 2002e41f4b71Sopenharmony_ci| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | 是 | 活跃音频设备类型。 | 2003e41f4b71Sopenharmony_ci 2004e41f4b71Sopenharmony_ci**返回值:** 2005e41f4b71Sopenharmony_ci 2006e41f4b71Sopenharmony_ci| Type | Description | 2007e41f4b71Sopenharmony_ci| ---------------------- |---------------------------------------| 2008e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回设备的激活状态,true激活,false未激活。 | 2009e41f4b71Sopenharmony_ci 2010e41f4b71Sopenharmony_ci**示例:** 2011e41f4b71Sopenharmony_ci 2012e41f4b71Sopenharmony_ci```ts 2013e41f4b71Sopenharmony_ciaudioManager.isDeviceActive(audio.ActiveDeviceType.SPEAKER).then((value: boolean) => { 2014e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`); 2015e41f4b71Sopenharmony_ci}); 2016e41f4b71Sopenharmony_ci``` 2017e41f4b71Sopenharmony_ci 2018e41f4b71Sopenharmony_ci### setMicrophoneMute<sup>(deprecated)</sup> 2019e41f4b71Sopenharmony_ci 2020e41f4b71Sopenharmony_cisetMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void 2021e41f4b71Sopenharmony_ci 2022e41f4b71Sopenharmony_ci设置麦克风静音状态,使用callback方式异步返回结果。 2023e41f4b71Sopenharmony_ci 2024e41f4b71Sopenharmony_ci> **说明:** 2025e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 2026e41f4b71Sopenharmony_ci 2027e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 2028e41f4b71Sopenharmony_ci 2029e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2030e41f4b71Sopenharmony_ci 2031e41f4b71Sopenharmony_ci**参数:** 2032e41f4b71Sopenharmony_ci 2033e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2034e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | --------------------------------------------- | 2035e41f4b71Sopenharmony_ci| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 2036e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。 | 2037e41f4b71Sopenharmony_ci 2038e41f4b71Sopenharmony_ci**示例:** 2039e41f4b71Sopenharmony_ci 2040e41f4b71Sopenharmony_ci```ts 2041e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2042e41f4b71Sopenharmony_ci 2043e41f4b71Sopenharmony_ciaudioManager.setMicrophoneMute(true, (err: BusinessError) => { 2044e41f4b71Sopenharmony_ci if (err) { 2045e41f4b71Sopenharmony_ci console.error(`Failed to mute the microphone. ${err}`); 2046e41f4b71Sopenharmony_ci return; 2047e41f4b71Sopenharmony_ci } 2048e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the microphone is muted.'); 2049e41f4b71Sopenharmony_ci}); 2050e41f4b71Sopenharmony_ci``` 2051e41f4b71Sopenharmony_ci 2052e41f4b71Sopenharmony_ci### setMicrophoneMute<sup>(deprecated)</sup> 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_cisetMicrophoneMute(mute: boolean): Promise<void> 2055e41f4b71Sopenharmony_ci 2056e41f4b71Sopenharmony_ci设置麦克风静音状态,使用Promise方式异步返回结果。 2057e41f4b71Sopenharmony_ci 2058e41f4b71Sopenharmony_ci> **说明:** 2059e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。替代接口仅面向系统应用开放。 2060e41f4b71Sopenharmony_ci 2061e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 2062e41f4b71Sopenharmony_ci 2063e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2064e41f4b71Sopenharmony_ci 2065e41f4b71Sopenharmony_ci**参数:** 2066e41f4b71Sopenharmony_ci 2067e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2068e41f4b71Sopenharmony_ci| ------ | ------- | ---- | --------------------------------------------- | 2069e41f4b71Sopenharmony_ci| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci**返回值:** 2072e41f4b71Sopenharmony_ci 2073e41f4b71Sopenharmony_ci| 类型 | 说明 | 2074e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 2075e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci**示例:** 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci```ts 2080e41f4b71Sopenharmony_ciaudioManager.setMicrophoneMute(true).then(() => { 2081e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the microphone is muted.'); 2082e41f4b71Sopenharmony_ci}); 2083e41f4b71Sopenharmony_ci``` 2084e41f4b71Sopenharmony_ci 2085e41f4b71Sopenharmony_ci### isMicrophoneMute<sup>(deprecated)</sup> 2086e41f4b71Sopenharmony_ci 2087e41f4b71Sopenharmony_ciisMicrophoneMute(callback: AsyncCallback<boolean>): void 2088e41f4b71Sopenharmony_ci 2089e41f4b71Sopenharmony_ci获取麦克风静音状态,使用callback方式异步返回结果。 2090e41f4b71Sopenharmony_ci 2091e41f4b71Sopenharmony_ci> **说明:** 2092e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。 2093e41f4b71Sopenharmony_ci 2094e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 2095e41f4b71Sopenharmony_ci 2096e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2097e41f4b71Sopenharmony_ci 2098e41f4b71Sopenharmony_ci**参数:** 2099e41f4b71Sopenharmony_ci 2100e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2101e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ------------------------------------------------------- | 2102e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取麦克风静音状态成功,err为undefined,data为true为静音,false为非静音;否则为错误对象。 | 2103e41f4b71Sopenharmony_ci 2104e41f4b71Sopenharmony_ci**示例:** 2105e41f4b71Sopenharmony_ci 2106e41f4b71Sopenharmony_ci```ts 2107e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2108e41f4b71Sopenharmony_ci 2109e41f4b71Sopenharmony_ciaudioManager.isMicrophoneMute((err: BusinessError, value: boolean) => { 2110e41f4b71Sopenharmony_ci if (err) { 2111e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status of the microphone. ${err}`); 2112e41f4b71Sopenharmony_ci return; 2113e41f4b71Sopenharmony_ci } 2114e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`); 2115e41f4b71Sopenharmony_ci}); 2116e41f4b71Sopenharmony_ci``` 2117e41f4b71Sopenharmony_ci 2118e41f4b71Sopenharmony_ci### isMicrophoneMute<sup>(deprecated)</sup> 2119e41f4b71Sopenharmony_ci 2120e41f4b71Sopenharmony_ciisMicrophoneMute(): Promise<boolean> 2121e41f4b71Sopenharmony_ci 2122e41f4b71Sopenharmony_ci获取麦克风静音状态,使用Promise方式异步返回结果。 2123e41f4b71Sopenharmony_ci 2124e41f4b71Sopenharmony_ci> **说明:** 2125e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioVolumeGroupManager中的[isMicrophoneMute](#ismicrophonemute9)替代。 2126e41f4b71Sopenharmony_ci 2127e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 2128e41f4b71Sopenharmony_ci 2129e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2130e41f4b71Sopenharmony_ci 2131e41f4b71Sopenharmony_ci**返回值:** 2132e41f4b71Sopenharmony_ci 2133e41f4b71Sopenharmony_ci| 类型 | 说明 | 2134e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------------ | 2135e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回系统麦克风静音状态,true为静音,false为非静音。 | 2136e41f4b71Sopenharmony_ci 2137e41f4b71Sopenharmony_ci**示例:** 2138e41f4b71Sopenharmony_ci 2139e41f4b71Sopenharmony_ci```ts 2140e41f4b71Sopenharmony_ciaudioManager.isMicrophoneMute().then((value: boolean) => { 2141e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`); 2142e41f4b71Sopenharmony_ci}); 2143e41f4b71Sopenharmony_ci``` 2144e41f4b71Sopenharmony_ci 2145e41f4b71Sopenharmony_ci### on('deviceChange')<sup>(deprecated)</sup> 2146e41f4b71Sopenharmony_ci 2147e41f4b71Sopenharmony_cion(type: 'deviceChange', callback: Callback<DeviceChangeAction\>): void 2148e41f4b71Sopenharmony_ci 2149e41f4b71Sopenharmony_ci监听音频设备连接变化事件(当音频设备连接状态发生变化时触发),使用callback方式返回结果。 2150e41f4b71Sopenharmony_ci 2151e41f4b71Sopenharmony_ci> **说明:** 2152e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[on('deviceChange')](#ondevicechange9)替代。 2153e41f4b71Sopenharmony_ci 2154e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2155e41f4b71Sopenharmony_ci 2156e41f4b71Sopenharmony_ci**参数:** 2157e41f4b71Sopenharmony_ci 2158e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2159e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 2160e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'deviceChange'。 | 2161e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是 | 回调函数,返回设备更新详情。 | 2162e41f4b71Sopenharmony_ci 2163e41f4b71Sopenharmony_ci**示例:** 2164e41f4b71Sopenharmony_ci 2165e41f4b71Sopenharmony_ci```ts 2166e41f4b71Sopenharmony_ciaudioManager.on('deviceChange', (deviceChanged: audio.DeviceChangeAction) => { 2167e41f4b71Sopenharmony_ci console.info(`device change type : ${deviceChanged.type} `); 2168e41f4b71Sopenharmony_ci console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `); 2169e41f4b71Sopenharmony_ci console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `); 2170e41f4b71Sopenharmony_ci console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `); 2171e41f4b71Sopenharmony_ci}); 2172e41f4b71Sopenharmony_ci``` 2173e41f4b71Sopenharmony_ci 2174e41f4b71Sopenharmony_ci### off('deviceChange')<sup>(deprecated)</sup> 2175e41f4b71Sopenharmony_ci 2176e41f4b71Sopenharmony_cioff(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void 2177e41f4b71Sopenharmony_ci 2178e41f4b71Sopenharmony_ci取消监听音频设备连接变化事件,使用callback方式返回结果。 2179e41f4b71Sopenharmony_ci 2180e41f4b71Sopenharmony_ci> **说明:** 2181e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用AudioRoutingManager中的[off('deviceChange')](#offdevicechange9)替代。 2182e41f4b71Sopenharmony_ci 2183e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 2184e41f4b71Sopenharmony_ci 2185e41f4b71Sopenharmony_ci**参数:** 2186e41f4b71Sopenharmony_ci 2187e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2188e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 2189e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'deviceChange'。 | 2190e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 回调函数,返回设备更新详情。 | 2191e41f4b71Sopenharmony_ci 2192e41f4b71Sopenharmony_ci**示例:** 2193e41f4b71Sopenharmony_ci 2194e41f4b71Sopenharmony_ci```ts 2195e41f4b71Sopenharmony_ci// 取消该事件的所有监听 2196e41f4b71Sopenharmony_ciaudioManager.off('deviceChange'); 2197e41f4b71Sopenharmony_ci 2198e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 2199e41f4b71Sopenharmony_cilet deviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => { 2200e41f4b71Sopenharmony_ci console.info(`device change type : ${deviceChanged.type} `); 2201e41f4b71Sopenharmony_ci console.info(`device descriptor size : ${deviceChanged.deviceDescriptors.length} `); 2202e41f4b71Sopenharmony_ci console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole} `); 2203e41f4b71Sopenharmony_ci console.info(`device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType} `); 2204e41f4b71Sopenharmony_ci}; 2205e41f4b71Sopenharmony_ci 2206e41f4b71Sopenharmony_ciaudioManager.on('deviceChange', deviceChangeCallback); 2207e41f4b71Sopenharmony_ci 2208e41f4b71Sopenharmony_ciaudioManager.off('deviceChange', deviceChangeCallback); 2209e41f4b71Sopenharmony_ci``` 2210e41f4b71Sopenharmony_ci 2211e41f4b71Sopenharmony_ci### on('interrupt')<sup>(deprecated)</sup> 2212e41f4b71Sopenharmony_ci 2213e41f4b71Sopenharmony_cion(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback\<InterruptAction>): void 2214e41f4b71Sopenharmony_ci 2215e41f4b71Sopenharmony_ci监听音频打断事件(当应用程序的音频被另一个播放事件中断时触发,回调通知此应用程序),使用callback方式返回结果。 2216e41f4b71Sopenharmony_ci 2217e41f4b71Sopenharmony_ci与[on('audioInterrupt')](#onaudiointerrupt9)作用一致,均用于监听焦点变化。为无音频流的场景(未曾创建AudioRenderer对象),比如FM、语音唤醒等提供焦点变化监听功能。 2218e41f4b71Sopenharmony_ci 2219e41f4b71Sopenharmony_ci> **说明:** 2220e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃,建议使用AudioCapturer中的[on('audioInterrupt')](#onaudiointerrupt10)替代。 2221e41f4b71Sopenharmony_ci 2222e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 2223e41f4b71Sopenharmony_ci 2224e41f4b71Sopenharmony_ci**参数:** 2225e41f4b71Sopenharmony_ci 2226e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2227e41f4b71Sopenharmony_ci| --------- |---------------------------------------------------------| ---- | ------------------------------------------------------------ | 2228e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'interrupt'。 | 2229e41f4b71Sopenharmony_ci| interrupt | [AudioInterrupt](#audiointerruptdeprecated) | 是 | 音频打断事件类型的参数。 | 2230e41f4b71Sopenharmony_ci| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | 是 | 回调函数,返回音频打断时,应用接收的中断事件信息。 | 2231e41f4b71Sopenharmony_ci 2232e41f4b71Sopenharmony_ci**示例:** 2233e41f4b71Sopenharmony_ci 2234e41f4b71Sopenharmony_ci```ts 2235e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 2236e41f4b71Sopenharmony_ci 2237e41f4b71Sopenharmony_cilet interAudioInterrupt: audio.AudioInterrupt = { 2238e41f4b71Sopenharmony_ci streamUsage:2, 2239e41f4b71Sopenharmony_ci contentType:0, 2240e41f4b71Sopenharmony_ci pauseWhenDucked:true 2241e41f4b71Sopenharmony_ci}; 2242e41f4b71Sopenharmony_ci 2243e41f4b71Sopenharmony_ciaudioManager.on('interrupt', interAudioInterrupt, (interruptAction: audio.InterruptAction) => { 2244e41f4b71Sopenharmony_ci if (interruptAction.actionType === 0) { 2245e41f4b71Sopenharmony_ci console.info('An event to gain the audio focus starts.'); 2246e41f4b71Sopenharmony_ci console.info(`Focus gain event: ${interruptAction} `); 2247e41f4b71Sopenharmony_ci } 2248e41f4b71Sopenharmony_ci if (interruptAction.actionType === 1) { 2249e41f4b71Sopenharmony_ci console.info('An audio interruption event starts.'); 2250e41f4b71Sopenharmony_ci console.info(`Audio interruption event: ${interruptAction} `); 2251e41f4b71Sopenharmony_ci } 2252e41f4b71Sopenharmony_ci}); 2253e41f4b71Sopenharmony_ci``` 2254e41f4b71Sopenharmony_ci 2255e41f4b71Sopenharmony_ci### off('interrupt')<sup>(deprecated)</sup> 2256e41f4b71Sopenharmony_ci 2257e41f4b71Sopenharmony_cioff(type: 'interrupt', interrupt: AudioInterrupt, callback?: Callback\<InterruptAction>): void 2258e41f4b71Sopenharmony_ci 2259e41f4b71Sopenharmony_ci取消监听音频打断事件,使用callback方式返回结果。 2260e41f4b71Sopenharmony_ci 2261e41f4b71Sopenharmony_ci> **说明:** 2262e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 11 开始废弃,建议使用AudioCapturer中的[off('audioInterrupt')](#offaudiointerrupt10)替代。 2263e41f4b71Sopenharmony_ci 2264e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 2265e41f4b71Sopenharmony_ci 2266e41f4b71Sopenharmony_ci**参数:** 2267e41f4b71Sopenharmony_ci 2268e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2269e41f4b71Sopenharmony_ci| --------- |---------------------------------------------------------| ---- | ------------------------------------------------------------ | 2270e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'interrupt'。 | 2271e41f4b71Sopenharmony_ci| interrupt | [AudioInterrupt](#audiointerruptdeprecated) | 是 | 音频打断事件类型的参数。 | 2272e41f4b71Sopenharmony_ci| callback | Callback<[InterruptAction](#interruptactiondeprecated)> | 否 | 回调函数,返回删除监听事件,取消打断时,应用接收的中断事件信息。 | 2273e41f4b71Sopenharmony_ci 2274e41f4b71Sopenharmony_ci**示例:** 2275e41f4b71Sopenharmony_ci 2276e41f4b71Sopenharmony_ci```ts 2277e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 2278e41f4b71Sopenharmony_ci 2279e41f4b71Sopenharmony_cilet interAudioInterrupt: audio.AudioInterrupt = { 2280e41f4b71Sopenharmony_ci streamUsage:2, 2281e41f4b71Sopenharmony_ci contentType:0, 2282e41f4b71Sopenharmony_ci pauseWhenDucked:true 2283e41f4b71Sopenharmony_ci}; 2284e41f4b71Sopenharmony_ci 2285e41f4b71Sopenharmony_ci// 取消该事件的所有监听 2286e41f4b71Sopenharmony_ciaudioManager.off('interrupt', interAudioInterrupt); 2287e41f4b71Sopenharmony_ci 2288e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 2289e41f4b71Sopenharmony_cilet interruptCallback = (interruptAction: audio.InterruptAction) => { 2290e41f4b71Sopenharmony_ci if (interruptAction.actionType === 0) { 2291e41f4b71Sopenharmony_ci console.info('An event to gain the audio focus starts.'); 2292e41f4b71Sopenharmony_ci console.info(`Focus gain event: ${interruptAction} `); 2293e41f4b71Sopenharmony_ci } 2294e41f4b71Sopenharmony_ci if (interruptAction.actionType === 1) { 2295e41f4b71Sopenharmony_ci console.info('An audio interruption event starts.'); 2296e41f4b71Sopenharmony_ci console.info(`Audio interruption event: ${interruptAction} `); 2297e41f4b71Sopenharmony_ci } 2298e41f4b71Sopenharmony_ci}; 2299e41f4b71Sopenharmony_ci 2300e41f4b71Sopenharmony_ciaudioManager.on('interrupt', interAudioInterrupt, interruptCallback); 2301e41f4b71Sopenharmony_ci 2302e41f4b71Sopenharmony_ciaudioManager.off('interrupt', interAudioInterrupt, interruptCallback); 2303e41f4b71Sopenharmony_ci``` 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci## AudioVolumeManager<sup>9+</sup> 2306e41f4b71Sopenharmony_ci 2307e41f4b71Sopenharmony_ci音量管理。在使用AudioVolumeManager的接口前,需要使用[getVolumeManager](#getvolumemanager9)获取AudioVolumeManager实例。 2308e41f4b71Sopenharmony_ci 2309e41f4b71Sopenharmony_ci### getVolumeGroupManager<sup>9+</sup> 2310e41f4b71Sopenharmony_ci 2311e41f4b71Sopenharmony_cigetVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager\>\): void 2312e41f4b71Sopenharmony_ci 2313e41f4b71Sopenharmony_ci获取音频组管理器,使用callback方式异步返回结果。 2314e41f4b71Sopenharmony_ci 2315e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2316e41f4b71Sopenharmony_ci 2317e41f4b71Sopenharmony_ci**参数:** 2318e41f4b71Sopenharmony_ci 2319e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2320e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- |-----------------------------------------------------------| 2321e41f4b71Sopenharmony_ci| groupId | number | 是 | 音量组id,默认使用LOCAL_VOLUME_GROUP_ID。 | 2322e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioVolumeGroupManager](#audiovolumegroupmanager9)> | 是 | 回调函数。当获取音频组管理器成功,err为undefined,data为获取到的音频组管理器对象;否则为错误对象。 | 2323e41f4b71Sopenharmony_ci 2324e41f4b71Sopenharmony_ci**示例:** 2325e41f4b71Sopenharmony_ci 2326e41f4b71Sopenharmony_ci```ts 2327e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2328e41f4b71Sopenharmony_ci 2329e41f4b71Sopenharmony_cilet groupId: number = audio.DEFAULT_VOLUME_GROUP_ID; 2330e41f4b71Sopenharmony_ci 2331e41f4b71Sopenharmony_ciaudioVolumeManager.getVolumeGroupManager(groupId, (err: BusinessError, value: audio.AudioVolumeGroupManager) => { 2332e41f4b71Sopenharmony_ci if (err) { 2333e41f4b71Sopenharmony_ci console.error(`Failed to obtain the volume group infos list. ${err}`); 2334e41f4b71Sopenharmony_ci return; 2335e41f4b71Sopenharmony_ci } 2336e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the volume group infos list is obtained.'); 2337e41f4b71Sopenharmony_ci}); 2338e41f4b71Sopenharmony_ci 2339e41f4b71Sopenharmony_ci``` 2340e41f4b71Sopenharmony_ci 2341e41f4b71Sopenharmony_ci### getVolumeGroupManager<sup>9+</sup> 2342e41f4b71Sopenharmony_ci 2343e41f4b71Sopenharmony_cigetVolumeGroupManager(groupId: number\): Promise<AudioVolumeGroupManager\> 2344e41f4b71Sopenharmony_ci 2345e41f4b71Sopenharmony_ci获取音频组管理器,使用Promise方式异步返回结果。 2346e41f4b71Sopenharmony_ci 2347e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2348e41f4b71Sopenharmony_ci 2349e41f4b71Sopenharmony_ci**参数:** 2350e41f4b71Sopenharmony_ci 2351e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2352e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------- | ---- |----------------------------------| 2353e41f4b71Sopenharmony_ci| groupId | number | 是 | 音量组id,默认使用LOCAL_VOLUME_GROUP_ID。 | 2354e41f4b71Sopenharmony_ci 2355e41f4b71Sopenharmony_ci**返回值:** 2356e41f4b71Sopenharmony_ci 2357e41f4b71Sopenharmony_ci| 类型 | 说明 | 2358e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 2359e41f4b71Sopenharmony_ci| Promise< [AudioVolumeGroupManager](#audiovolumegroupmanager9) > | Promise对象,返回音量组实例。 | 2360e41f4b71Sopenharmony_ci 2361e41f4b71Sopenharmony_ci**示例:** 2362e41f4b71Sopenharmony_ci 2363e41f4b71Sopenharmony_ci```ts 2364e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 2365e41f4b71Sopenharmony_ci 2366e41f4b71Sopenharmony_cilet groupId: number = audio.DEFAULT_VOLUME_GROUP_ID; 2367e41f4b71Sopenharmony_cilet audioVolumeGroupManager: audio.AudioVolumeGroupManager | undefined = undefined; 2368e41f4b71Sopenharmony_ci 2369e41f4b71Sopenharmony_ciasync function getVolumeGroupManager(){ 2370e41f4b71Sopenharmony_ci audioVolumeGroupManager = await audioVolumeManager.getVolumeGroupManager(groupId); 2371e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the volume group infos list is obtained.'); 2372e41f4b71Sopenharmony_ci} 2373e41f4b71Sopenharmony_ci``` 2374e41f4b71Sopenharmony_ci 2375e41f4b71Sopenharmony_ci### getVolumeGroupManagerSync<sup>10+</sup> 2376e41f4b71Sopenharmony_ci 2377e41f4b71Sopenharmony_cigetVolumeGroupManagerSync(groupId: number\): AudioVolumeGroupManager 2378e41f4b71Sopenharmony_ci 2379e41f4b71Sopenharmony_ci获取音频组管理器,同步返回结果。 2380e41f4b71Sopenharmony_ci 2381e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2382e41f4b71Sopenharmony_ci 2383e41f4b71Sopenharmony_ci**参数:** 2384e41f4b71Sopenharmony_ci 2385e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2386e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------- | ---- |----------------------------------| 2387e41f4b71Sopenharmony_ci| groupId | number | 是 | 音量组id,默认使用LOCAL_VOLUME_GROUP_ID。 | 2388e41f4b71Sopenharmony_ci 2389e41f4b71Sopenharmony_ci**返回值:** 2390e41f4b71Sopenharmony_ci 2391e41f4b71Sopenharmony_ci| 类型 | 说明 | 2392e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 2393e41f4b71Sopenharmony_ci| [AudioVolumeGroupManager](#audiovolumegroupmanager9) | 音量组实例。 | 2394e41f4b71Sopenharmony_ci 2395e41f4b71Sopenharmony_ci**错误码:** 2396e41f4b71Sopenharmony_ci 2397e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2398e41f4b71Sopenharmony_ci 2399e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2400e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2401e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2402e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_ci**示例:** 2405e41f4b71Sopenharmony_ci 2406e41f4b71Sopenharmony_ci```ts 2407e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2408e41f4b71Sopenharmony_ci 2409e41f4b71Sopenharmony_citry { 2410e41f4b71Sopenharmony_ci let audioVolumeGroupManager: audio.AudioVolumeGroupManager = audioVolumeManager.getVolumeGroupManagerSync(audio.DEFAULT_VOLUME_GROUP_ID); 2411e41f4b71Sopenharmony_ci console.info(`Get audioVolumeGroupManager success.`); 2412e41f4b71Sopenharmony_ci} catch (err) { 2413e41f4b71Sopenharmony_ci let error = err as BusinessError; 2414e41f4b71Sopenharmony_ci console.error(`Failed to get audioVolumeGroupManager, error: ${error}`); 2415e41f4b71Sopenharmony_ci} 2416e41f4b71Sopenharmony_ci``` 2417e41f4b71Sopenharmony_ci 2418e41f4b71Sopenharmony_ci### on('volumeChange')<sup>9+</sup> 2419e41f4b71Sopenharmony_ci 2420e41f4b71Sopenharmony_cion(type: 'volumeChange', callback: Callback\<VolumeEvent>): void 2421e41f4b71Sopenharmony_ci 2422e41f4b71Sopenharmony_ci监听系统音量变化事件(当系统音量发生变化时触发),使用callback方式返回结果。 2423e41f4b71Sopenharmony_ci 2424e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2425e41f4b71Sopenharmony_ci 2426e41f4b71Sopenharmony_ci**参数:** 2427e41f4b71Sopenharmony_ci 2428e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2429e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 2430e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'volumeChange'。 | 2431e41f4b71Sopenharmony_ci| callback | Callback<[VolumeEvent](#volumeevent9)> | 是 | 回调函数,返回变化后的音量信息。 | 2432e41f4b71Sopenharmony_ci 2433e41f4b71Sopenharmony_ci**错误码:** 2434e41f4b71Sopenharmony_ci 2435e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2436e41f4b71Sopenharmony_ci 2437e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2438e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2439e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2440e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2441e41f4b71Sopenharmony_ci 2442e41f4b71Sopenharmony_ci**示例:** 2443e41f4b71Sopenharmony_ci 2444e41f4b71Sopenharmony_ci```ts 2445e41f4b71Sopenharmony_ciaudioVolumeManager.on('volumeChange', (volumeEvent: audio.VolumeEvent) => { 2446e41f4b71Sopenharmony_ci console.info(`VolumeType of stream: ${volumeEvent.volumeType} `); 2447e41f4b71Sopenharmony_ci console.info(`Volume level: ${volumeEvent.volume} `); 2448e41f4b71Sopenharmony_ci console.info(`Whether to updateUI: ${volumeEvent.updateUi} `); 2449e41f4b71Sopenharmony_ci}); 2450e41f4b71Sopenharmony_ci``` 2451e41f4b71Sopenharmony_ci 2452e41f4b71Sopenharmony_ci### off('volumeChange')<sup>12+</sup> 2453e41f4b71Sopenharmony_ci 2454e41f4b71Sopenharmony_cioff(type: 'volumeChange', callback?: Callback\<VolumeEvent>): void 2455e41f4b71Sopenharmony_ci 2456e41f4b71Sopenharmony_ci取消监听系统音量变化事件,使用callback方式返回结果。 2457e41f4b71Sopenharmony_ci 2458e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2459e41f4b71Sopenharmony_ci 2460e41f4b71Sopenharmony_ci**参数:** 2461e41f4b71Sopenharmony_ci 2462e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2463e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 2464e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'volumeChange'。 | 2465e41f4b71Sopenharmony_ci| callback | Callback<[VolumeEvent](#volumeevent9)> | 否 | 回调函数,返回变化后的音量信息。 | 2466e41f4b71Sopenharmony_ci 2467e41f4b71Sopenharmony_ci**错误码:** 2468e41f4b71Sopenharmony_ci 2469e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2470e41f4b71Sopenharmony_ci 2471e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2472e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2473e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters missing; 2.Incorrect parameter types. | 2474e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2475e41f4b71Sopenharmony_ci 2476e41f4b71Sopenharmony_ci**示例:** 2477e41f4b71Sopenharmony_ci 2478e41f4b71Sopenharmony_ci```ts 2479e41f4b71Sopenharmony_ci// 取消该事件的所有监听 2480e41f4b71Sopenharmony_ciaudioVolumeManager.off('volumeChange'); 2481e41f4b71Sopenharmony_ci 2482e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 2483e41f4b71Sopenharmony_cilet volumeChangeCallback = (volumeEvent: audio.VolumeEvent) => { 2484e41f4b71Sopenharmony_ci console.info(`VolumeType of stream: ${volumeEvent.volumeType} `); 2485e41f4b71Sopenharmony_ci console.info(`Volume level: ${volumeEvent.volume} `); 2486e41f4b71Sopenharmony_ci console.info(`Whether to updateUI: ${volumeEvent.updateUi} `); 2487e41f4b71Sopenharmony_ci}; 2488e41f4b71Sopenharmony_ci 2489e41f4b71Sopenharmony_ciaudioVolumeManager.on('volumeChange', volumeChangeCallback); 2490e41f4b71Sopenharmony_ci 2491e41f4b71Sopenharmony_ciaudioVolumeManager.off('volumeChange', volumeChangeCallback); 2492e41f4b71Sopenharmony_ci``` 2493e41f4b71Sopenharmony_ci 2494e41f4b71Sopenharmony_ci## AudioVolumeGroupManager<sup>9+</sup> 2495e41f4b71Sopenharmony_ci 2496e41f4b71Sopenharmony_ci管理音频组音量。在调用AudioVolumeGroupManager的接口前,需要先通过 [getVolumeGroupManager](#getvolumegroupmanager9) 创建实例。 2497e41f4b71Sopenharmony_ci 2498e41f4b71Sopenharmony_ci### getVolume<sup>9+</sup> 2499e41f4b71Sopenharmony_ci 2500e41f4b71Sopenharmony_cigetVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2501e41f4b71Sopenharmony_ci 2502e41f4b71Sopenharmony_ci获取指定流的音量,使用callback方式异步返回结果。 2503e41f4b71Sopenharmony_ci 2504e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2505e41f4b71Sopenharmony_ci 2506e41f4b71Sopenharmony_ci**参数:** 2507e41f4b71Sopenharmony_ci 2508e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2509e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------ | 2510e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2511e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的音量成功,err为undefined,data为获取到的指定流的音量;否则为错误对象。指定流的音量等级范围可通过[getMinVolume](#getminvolume9)和[getMaxVolume](#getmaxvolume9)获取。 | 2512e41f4b71Sopenharmony_ci 2513e41f4b71Sopenharmony_ci**示例:** 2514e41f4b71Sopenharmony_ci 2515e41f4b71Sopenharmony_ci```ts 2516e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2517e41f4b71Sopenharmony_ci 2518e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2519e41f4b71Sopenharmony_ci if (err) { 2520e41f4b71Sopenharmony_ci console.error(`Failed to obtain the volume. ${err}`); 2521e41f4b71Sopenharmony_ci return; 2522e41f4b71Sopenharmony_ci } 2523e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the volume is obtained.'); 2524e41f4b71Sopenharmony_ci}); 2525e41f4b71Sopenharmony_ci``` 2526e41f4b71Sopenharmony_ci 2527e41f4b71Sopenharmony_ci### getVolume<sup>9+</sup> 2528e41f4b71Sopenharmony_ci 2529e41f4b71Sopenharmony_cigetVolume(volumeType: AudioVolumeType): Promise<number> 2530e41f4b71Sopenharmony_ci 2531e41f4b71Sopenharmony_ci获取指定流的音量,使用Promise方式异步返回结果。 2532e41f4b71Sopenharmony_ci 2533e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2534e41f4b71Sopenharmony_ci 2535e41f4b71Sopenharmony_ci**参数:** 2536e41f4b71Sopenharmony_ci 2537e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2538e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2539e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2540e41f4b71Sopenharmony_ci 2541e41f4b71Sopenharmony_ci**返回值:** 2542e41f4b71Sopenharmony_ci 2543e41f4b71Sopenharmony_ci| 类型 | 说明 | 2544e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 2545e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolume9)和[getMaxVolume](#getmaxvolume9)获取。 | 2546e41f4b71Sopenharmony_ci 2547e41f4b71Sopenharmony_ci**示例:** 2548e41f4b71Sopenharmony_ci 2549e41f4b71Sopenharmony_ci```ts 2550e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 2551e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the volume is obtained ${value}.`); 2552e41f4b71Sopenharmony_ci}); 2553e41f4b71Sopenharmony_ci``` 2554e41f4b71Sopenharmony_ci 2555e41f4b71Sopenharmony_ci### getVolumeSync<sup>10+</sup> 2556e41f4b71Sopenharmony_ci 2557e41f4b71Sopenharmony_cigetVolumeSync(volumeType: AudioVolumeType): number; 2558e41f4b71Sopenharmony_ci 2559e41f4b71Sopenharmony_ci获取指定流的音量,同步返回结果。 2560e41f4b71Sopenharmony_ci 2561e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2562e41f4b71Sopenharmony_ci 2563e41f4b71Sopenharmony_ci**参数:** 2564e41f4b71Sopenharmony_ci 2565e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2566e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2567e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2568e41f4b71Sopenharmony_ci 2569e41f4b71Sopenharmony_ci**返回值:** 2570e41f4b71Sopenharmony_ci 2571e41f4b71Sopenharmony_ci| 类型 | 说明 | 2572e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 2573e41f4b71Sopenharmony_ci| number | 返回指定流的音量。指定流的音量等级范围可通过[getMinVolume](#getminvolume9)和[getMaxVolume](#getmaxvolume9)获取。 | 2574e41f4b71Sopenharmony_ci 2575e41f4b71Sopenharmony_ci**错误码:** 2576e41f4b71Sopenharmony_ci 2577e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2578e41f4b71Sopenharmony_ci 2579e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2580e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2581e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2582e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2583e41f4b71Sopenharmony_ci 2584e41f4b71Sopenharmony_ci**示例:** 2585e41f4b71Sopenharmony_ci 2586e41f4b71Sopenharmony_ci```ts 2587e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2588e41f4b71Sopenharmony_ci 2589e41f4b71Sopenharmony_citry { 2590e41f4b71Sopenharmony_ci let value: number = audioVolumeGroupManager.getVolumeSync(audio.AudioVolumeType.MEDIA); 2591e41f4b71Sopenharmony_ci console.info(`Indicate that the volume is obtained ${value}.`); 2592e41f4b71Sopenharmony_ci} catch (err) { 2593e41f4b71Sopenharmony_ci let error = err as BusinessError; 2594e41f4b71Sopenharmony_ci console.error(`Failed to obtain the volume, error ${error}.`); 2595e41f4b71Sopenharmony_ci} 2596e41f4b71Sopenharmony_ci``` 2597e41f4b71Sopenharmony_ci 2598e41f4b71Sopenharmony_ci### getMinVolume<sup>9+</sup> 2599e41f4b71Sopenharmony_ci 2600e41f4b71Sopenharmony_cigetMinVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2601e41f4b71Sopenharmony_ci 2602e41f4b71Sopenharmony_ci获取指定流的最小音量,使用callback方式异步返回结果。 2603e41f4b71Sopenharmony_ci 2604e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2605e41f4b71Sopenharmony_ci 2606e41f4b71Sopenharmony_ci**参数:** 2607e41f4b71Sopenharmony_ci 2608e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2609e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------ | 2610e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2611e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最小音量成功,err为undefined,data为获取到的指定流的最小音量;否则为错误对象。 | 2612e41f4b71Sopenharmony_ci 2613e41f4b71Sopenharmony_ci**示例:** 2614e41f4b71Sopenharmony_ci 2615e41f4b71Sopenharmony_ci```ts 2616e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2617e41f4b71Sopenharmony_ci 2618e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2619e41f4b71Sopenharmony_ci if (err) { 2620e41f4b71Sopenharmony_ci console.error(`Failed to obtain the minimum volume. ${err}`); 2621e41f4b71Sopenharmony_ci return; 2622e41f4b71Sopenharmony_ci } 2623e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the minimum volume is obtained. ${value}`); 2624e41f4b71Sopenharmony_ci}); 2625e41f4b71Sopenharmony_ci``` 2626e41f4b71Sopenharmony_ci 2627e41f4b71Sopenharmony_ci### getMinVolume<sup>9+</sup> 2628e41f4b71Sopenharmony_ci 2629e41f4b71Sopenharmony_cigetMinVolume(volumeType: AudioVolumeType): Promise<number> 2630e41f4b71Sopenharmony_ci 2631e41f4b71Sopenharmony_ci获取指定流的最小音量,使用Promise方式异步返回结果。 2632e41f4b71Sopenharmony_ci 2633e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2634e41f4b71Sopenharmony_ci 2635e41f4b71Sopenharmony_ci**参数:** 2636e41f4b71Sopenharmony_ci 2637e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2638e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2639e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2640e41f4b71Sopenharmony_ci 2641e41f4b71Sopenharmony_ci**返回值:** 2642e41f4b71Sopenharmony_ci 2643e41f4b71Sopenharmony_ci| 类型 | 说明 | 2644e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 2645e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回最小音量。 | 2646e41f4b71Sopenharmony_ci 2647e41f4b71Sopenharmony_ci**示例:** 2648e41f4b71Sopenharmony_ci 2649e41f4b71Sopenharmony_ci```ts 2650e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getMinVolume(audio.AudioVolumeType.MEDIA).then((value: number) => { 2651e41f4b71Sopenharmony_ci console.info(`Promised returned to indicate that the minimum volume is obtained ${value}.`); 2652e41f4b71Sopenharmony_ci}); 2653e41f4b71Sopenharmony_ci``` 2654e41f4b71Sopenharmony_ci 2655e41f4b71Sopenharmony_ci### getMinVolumeSync<sup>10+</sup> 2656e41f4b71Sopenharmony_ci 2657e41f4b71Sopenharmony_cigetMinVolumeSync(volumeType: AudioVolumeType): number; 2658e41f4b71Sopenharmony_ci 2659e41f4b71Sopenharmony_ci获取指定流的最小音量,同步返回结果。 2660e41f4b71Sopenharmony_ci 2661e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2662e41f4b71Sopenharmony_ci 2663e41f4b71Sopenharmony_ci**参数:** 2664e41f4b71Sopenharmony_ci 2665e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2666e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2667e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2668e41f4b71Sopenharmony_ci 2669e41f4b71Sopenharmony_ci**返回值:** 2670e41f4b71Sopenharmony_ci 2671e41f4b71Sopenharmony_ci| 类型 | 说明 | 2672e41f4b71Sopenharmony_ci| --------------------- | ------------------------- | 2673e41f4b71Sopenharmony_ci| number | 返回最小音量。 | 2674e41f4b71Sopenharmony_ci 2675e41f4b71Sopenharmony_ci**错误码:** 2676e41f4b71Sopenharmony_ci 2677e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2680e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2681e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2682e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2683e41f4b71Sopenharmony_ci 2684e41f4b71Sopenharmony_ci**示例:** 2685e41f4b71Sopenharmony_ci 2686e41f4b71Sopenharmony_ci```ts 2687e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2688e41f4b71Sopenharmony_ci 2689e41f4b71Sopenharmony_citry { 2690e41f4b71Sopenharmony_ci let value: number = audioVolumeGroupManager.getMinVolumeSync(audio.AudioVolumeType.MEDIA); 2691e41f4b71Sopenharmony_ci console.info(`Indicate that the minimum volume is obtained ${value}.`); 2692e41f4b71Sopenharmony_ci} catch (err) { 2693e41f4b71Sopenharmony_ci let error = err as BusinessError; 2694e41f4b71Sopenharmony_ci console.error(`Failed to obtain the minimum volume, error ${error}.`); 2695e41f4b71Sopenharmony_ci} 2696e41f4b71Sopenharmony_ci``` 2697e41f4b71Sopenharmony_ci 2698e41f4b71Sopenharmony_ci### getMaxVolume<sup>9+</sup> 2699e41f4b71Sopenharmony_ci 2700e41f4b71Sopenharmony_cigetMaxVolume(volumeType: AudioVolumeType, callback: AsyncCallback<number>): void 2701e41f4b71Sopenharmony_ci 2702e41f4b71Sopenharmony_ci获取指定流的最大音量,使用callback方式异步返回结果。 2703e41f4b71Sopenharmony_ci 2704e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2705e41f4b71Sopenharmony_ci 2706e41f4b71Sopenharmony_ci**参数:** 2707e41f4b71Sopenharmony_ci 2708e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2709e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ---------------------- | 2710e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2711e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取指定流的最大音量成功,err为undefined,data为获取到的指定流的最大音量;否则为错误对象。 | 2712e41f4b71Sopenharmony_ci 2713e41f4b71Sopenharmony_ci**示例:** 2714e41f4b71Sopenharmony_ci 2715e41f4b71Sopenharmony_ci```ts 2716e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2717e41f4b71Sopenharmony_ci 2718e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: number) => { 2719e41f4b71Sopenharmony_ci if (err) { 2720e41f4b71Sopenharmony_ci console.error(`Failed to obtain the maximum volume. ${err}`); 2721e41f4b71Sopenharmony_ci return; 2722e41f4b71Sopenharmony_ci } 2723e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the maximum volume is obtained. ${value}`); 2724e41f4b71Sopenharmony_ci}); 2725e41f4b71Sopenharmony_ci``` 2726e41f4b71Sopenharmony_ci 2727e41f4b71Sopenharmony_ci### getMaxVolume<sup>9+</sup> 2728e41f4b71Sopenharmony_ci 2729e41f4b71Sopenharmony_cigetMaxVolume(volumeType: AudioVolumeType): Promise<number> 2730e41f4b71Sopenharmony_ci 2731e41f4b71Sopenharmony_ci获取指定流的最大音量,使用Promise方式异步返回结果。 2732e41f4b71Sopenharmony_ci 2733e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2734e41f4b71Sopenharmony_ci 2735e41f4b71Sopenharmony_ci**参数:** 2736e41f4b71Sopenharmony_ci 2737e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2738e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2739e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2740e41f4b71Sopenharmony_ci 2741e41f4b71Sopenharmony_ci**返回值:** 2742e41f4b71Sopenharmony_ci 2743e41f4b71Sopenharmony_ci| 类型 | 说明 | 2744e41f4b71Sopenharmony_ci| --------------------- | ----------------------------- | 2745e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回最大音量大小。 | 2746e41f4b71Sopenharmony_ci 2747e41f4b71Sopenharmony_ci**示例:** 2748e41f4b71Sopenharmony_ci 2749e41f4b71Sopenharmony_ci```ts 2750e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getMaxVolume(audio.AudioVolumeType.MEDIA).then((data: number) => { 2751e41f4b71Sopenharmony_ci console.info('Promised returned to indicate that the maximum volume is obtained.'); 2752e41f4b71Sopenharmony_ci}); 2753e41f4b71Sopenharmony_ci``` 2754e41f4b71Sopenharmony_ci 2755e41f4b71Sopenharmony_ci### getMaxVolumeSync<sup>10+</sup> 2756e41f4b71Sopenharmony_ci 2757e41f4b71Sopenharmony_cigetMaxVolumeSync(volumeType: AudioVolumeType): number; 2758e41f4b71Sopenharmony_ci 2759e41f4b71Sopenharmony_ci获取指定流的最大音量,同步返回结果。 2760e41f4b71Sopenharmony_ci 2761e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2762e41f4b71Sopenharmony_ci 2763e41f4b71Sopenharmony_ci**参数:** 2764e41f4b71Sopenharmony_ci 2765e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2766e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2767e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2768e41f4b71Sopenharmony_ci 2769e41f4b71Sopenharmony_ci**返回值:** 2770e41f4b71Sopenharmony_ci 2771e41f4b71Sopenharmony_ci| 类型 | 说明 | 2772e41f4b71Sopenharmony_ci| --------------------- | ----------------------------- | 2773e41f4b71Sopenharmony_ci| number | 返回最大音量大小。 | 2774e41f4b71Sopenharmony_ci 2775e41f4b71Sopenharmony_ci**错误码:** 2776e41f4b71Sopenharmony_ci 2777e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2778e41f4b71Sopenharmony_ci 2779e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2780e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2781e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2782e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2783e41f4b71Sopenharmony_ci 2784e41f4b71Sopenharmony_ci**示例:** 2785e41f4b71Sopenharmony_ci 2786e41f4b71Sopenharmony_ci```ts 2787e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2788e41f4b71Sopenharmony_ci 2789e41f4b71Sopenharmony_citry { 2790e41f4b71Sopenharmony_ci let value: number = audioVolumeGroupManager.getMaxVolumeSync(audio.AudioVolumeType.MEDIA); 2791e41f4b71Sopenharmony_ci console.info(`Indicate that the maximum volume is obtained. ${value}`); 2792e41f4b71Sopenharmony_ci} catch (err) { 2793e41f4b71Sopenharmony_ci let error = err as BusinessError; 2794e41f4b71Sopenharmony_ci console.error(`Failed to obtain the maximum volume, error ${error}.`); 2795e41f4b71Sopenharmony_ci} 2796e41f4b71Sopenharmony_ci``` 2797e41f4b71Sopenharmony_ci 2798e41f4b71Sopenharmony_ci### isMute<sup>9+</sup> 2799e41f4b71Sopenharmony_ci 2800e41f4b71Sopenharmony_ciisMute(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 2801e41f4b71Sopenharmony_ci 2802e41f4b71Sopenharmony_ci获取指定音量流是否被静音,使用callback方式异步返回结果。 2803e41f4b71Sopenharmony_ci 2804e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2805e41f4b71Sopenharmony_ci 2806e41f4b71Sopenharmony_ci**参数:** 2807e41f4b71Sopenharmony_ci 2808e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2809e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ----------------------------------------------- | 2810e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2811e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音量流是否被静音成功,err为undefined,data为true为静音,false为非静音;否则为错误对象。 | 2812e41f4b71Sopenharmony_ci 2813e41f4b71Sopenharmony_ci**示例:** 2814e41f4b71Sopenharmony_ci 2815e41f4b71Sopenharmony_ci```ts 2816e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2817e41f4b71Sopenharmony_ci 2818e41f4b71Sopenharmony_ciaudioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 2819e41f4b71Sopenharmony_ci if (err) { 2820e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status. ${err}`); 2821e41f4b71Sopenharmony_ci return; 2822e41f4b71Sopenharmony_ci } 2823e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the mute status of the stream is obtained ${value}.`); 2824e41f4b71Sopenharmony_ci}); 2825e41f4b71Sopenharmony_ci``` 2826e41f4b71Sopenharmony_ci 2827e41f4b71Sopenharmony_ci### isMute<sup>9+</sup> 2828e41f4b71Sopenharmony_ci 2829e41f4b71Sopenharmony_ciisMute(volumeType: AudioVolumeType): Promise<boolean> 2830e41f4b71Sopenharmony_ci 2831e41f4b71Sopenharmony_ci获取指定音量流是否被静音,使用Promise方式异步返回结果。 2832e41f4b71Sopenharmony_ci 2833e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2834e41f4b71Sopenharmony_ci 2835e41f4b71Sopenharmony_ci**参数:** 2836e41f4b71Sopenharmony_ci 2837e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2838e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2839e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2840e41f4b71Sopenharmony_ci 2841e41f4b71Sopenharmony_ci**返回值:** 2842e41f4b71Sopenharmony_ci 2843e41f4b71Sopenharmony_ci| 类型 | 说明 | 2844e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | 2845e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回流静音状态,true为静音,false为非静音。 | 2846e41f4b71Sopenharmony_ci 2847e41f4b71Sopenharmony_ci**示例:** 2848e41f4b71Sopenharmony_ci 2849e41f4b71Sopenharmony_ci```ts 2850e41f4b71Sopenharmony_ciaudioVolumeGroupManager.isMute(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 2851e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the mute status of the stream is obtained ${value}.`); 2852e41f4b71Sopenharmony_ci}); 2853e41f4b71Sopenharmony_ci``` 2854e41f4b71Sopenharmony_ci 2855e41f4b71Sopenharmony_ci### isMuteSync<sup>10+</sup> 2856e41f4b71Sopenharmony_ci 2857e41f4b71Sopenharmony_ciisMuteSync(volumeType: AudioVolumeType): boolean 2858e41f4b71Sopenharmony_ci 2859e41f4b71Sopenharmony_ci获取指定音量流是否被静音,同步返回结果。 2860e41f4b71Sopenharmony_ci 2861e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2862e41f4b71Sopenharmony_ci 2863e41f4b71Sopenharmony_ci**参数:** 2864e41f4b71Sopenharmony_ci 2865e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2866e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 2867e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 2868e41f4b71Sopenharmony_ci 2869e41f4b71Sopenharmony_ci**返回值:** 2870e41f4b71Sopenharmony_ci 2871e41f4b71Sopenharmony_ci| 类型 | 说明 | 2872e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | 2873e41f4b71Sopenharmony_ci| boolean | 返回流静音状态,true为静音,false为非静音。 | 2874e41f4b71Sopenharmony_ci 2875e41f4b71Sopenharmony_ci**错误码:** 2876e41f4b71Sopenharmony_ci 2877e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2878e41f4b71Sopenharmony_ci 2879e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2880e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2881e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2882e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2883e41f4b71Sopenharmony_ci 2884e41f4b71Sopenharmony_ci**示例:** 2885e41f4b71Sopenharmony_ci 2886e41f4b71Sopenharmony_ci```ts 2887e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2888e41f4b71Sopenharmony_ci 2889e41f4b71Sopenharmony_citry { 2890e41f4b71Sopenharmony_ci let value: boolean = audioVolumeGroupManager.isMuteSync(audio.AudioVolumeType.MEDIA); 2891e41f4b71Sopenharmony_ci console.info(`Indicate that the mute status of the stream is obtained ${value}.`); 2892e41f4b71Sopenharmony_ci} catch (err) { 2893e41f4b71Sopenharmony_ci let error = err as BusinessError; 2894e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status of the stream, error ${error}.`); 2895e41f4b71Sopenharmony_ci} 2896e41f4b71Sopenharmony_ci``` 2897e41f4b71Sopenharmony_ci 2898e41f4b71Sopenharmony_ci### getRingerMode<sup>9+</sup> 2899e41f4b71Sopenharmony_ci 2900e41f4b71Sopenharmony_cigetRingerMode(callback: AsyncCallback<AudioRingMode>): void 2901e41f4b71Sopenharmony_ci 2902e41f4b71Sopenharmony_ci获取铃声模式,使用callback方式异步返回结果。 2903e41f4b71Sopenharmony_ci 2904e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2905e41f4b71Sopenharmony_ci 2906e41f4b71Sopenharmony_ci**参数:** 2907e41f4b71Sopenharmony_ci 2908e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2909e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | ---- | ------------------------ | 2910e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRingMode](#audioringmode)> | 是 | 回调函数。当获取铃声模式成功,err为undefined,data为获取到的铃声模式;否则为错误对象。 | 2911e41f4b71Sopenharmony_ci 2912e41f4b71Sopenharmony_ci**示例:** 2913e41f4b71Sopenharmony_ci 2914e41f4b71Sopenharmony_ci```ts 2915e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2916e41f4b71Sopenharmony_ci 2917e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getRingerMode((err: BusinessError, value: audio.AudioRingMode) => { 2918e41f4b71Sopenharmony_ci if (err) { 2919e41f4b71Sopenharmony_ci console.error(`Failed to obtain the ringer mode. ${err}`); 2920e41f4b71Sopenharmony_ci return; 2921e41f4b71Sopenharmony_ci } 2922e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the ringer mode is obtained ${value}.`); 2923e41f4b71Sopenharmony_ci}); 2924e41f4b71Sopenharmony_ci``` 2925e41f4b71Sopenharmony_ci 2926e41f4b71Sopenharmony_ci### getRingerMode<sup>9+</sup> 2927e41f4b71Sopenharmony_ci 2928e41f4b71Sopenharmony_cigetRingerMode(): Promise<AudioRingMode> 2929e41f4b71Sopenharmony_ci 2930e41f4b71Sopenharmony_ci获取铃声模式,使用Promise方式异步返回结果。 2931e41f4b71Sopenharmony_ci 2932e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2933e41f4b71Sopenharmony_ci 2934e41f4b71Sopenharmony_ci**返回值:** 2935e41f4b71Sopenharmony_ci 2936e41f4b71Sopenharmony_ci| 类型 | 说明 | 2937e41f4b71Sopenharmony_ci| ---------------------------------------------- | ------------------------------- | 2938e41f4b71Sopenharmony_ci| Promise<[AudioRingMode](#audioringmode)> | Promise对象,返回系统的铃声模式。 | 2939e41f4b71Sopenharmony_ci 2940e41f4b71Sopenharmony_ci**示例:** 2941e41f4b71Sopenharmony_ci 2942e41f4b71Sopenharmony_ci```ts 2943e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getRingerMode().then((value: audio.AudioRingMode) => { 2944e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the ringer mode is obtained ${value}.`); 2945e41f4b71Sopenharmony_ci}); 2946e41f4b71Sopenharmony_ci``` 2947e41f4b71Sopenharmony_ci 2948e41f4b71Sopenharmony_ci### getRingerModeSync<sup>10+</sup> 2949e41f4b71Sopenharmony_ci 2950e41f4b71Sopenharmony_cigetRingerModeSync(): AudioRingMode 2951e41f4b71Sopenharmony_ci 2952e41f4b71Sopenharmony_ci获取铃声模式,同步返回结果。 2953e41f4b71Sopenharmony_ci 2954e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2955e41f4b71Sopenharmony_ci 2956e41f4b71Sopenharmony_ci**返回值:** 2957e41f4b71Sopenharmony_ci 2958e41f4b71Sopenharmony_ci| 类型 | 说明 | 2959e41f4b71Sopenharmony_ci| ---------------------------------------------- | ------------------------------- | 2960e41f4b71Sopenharmony_ci| [AudioRingMode](#audioringmode) | 返回系统的铃声模式。 | 2961e41f4b71Sopenharmony_ci 2962e41f4b71Sopenharmony_ci**示例:** 2963e41f4b71Sopenharmony_ci 2964e41f4b71Sopenharmony_ci```ts 2965e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2966e41f4b71Sopenharmony_ci 2967e41f4b71Sopenharmony_citry { 2968e41f4b71Sopenharmony_ci let value: audio.AudioRingMode = audioVolumeGroupManager.getRingerModeSync(); 2969e41f4b71Sopenharmony_ci console.info(`Indicate that the ringer mode is obtained ${value}.`); 2970e41f4b71Sopenharmony_ci} catch (err) { 2971e41f4b71Sopenharmony_ci let error = err as BusinessError; 2972e41f4b71Sopenharmony_ci console.error(`Failed to obtain the ringer mode, error ${error}.`); 2973e41f4b71Sopenharmony_ci} 2974e41f4b71Sopenharmony_ci``` 2975e41f4b71Sopenharmony_ci 2976e41f4b71Sopenharmony_ci### on('ringerModeChange')<sup>9+</sup> 2977e41f4b71Sopenharmony_ci 2978e41f4b71Sopenharmony_cion(type: 'ringerModeChange', callback: Callback\<AudioRingMode>): void 2979e41f4b71Sopenharmony_ci 2980e41f4b71Sopenharmony_ci监听铃声模式变化事件(当[铃声模式](#audioringmode)发生变化时触发),使用callback方式返回结果。 2981e41f4b71Sopenharmony_ci 2982e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 2983e41f4b71Sopenharmony_ci 2984e41f4b71Sopenharmony_ci**参数:** 2985e41f4b71Sopenharmony_ci 2986e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2987e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | 2988e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'ringerModeChange'。 | 2989e41f4b71Sopenharmony_ci| callback | Callback<[AudioRingMode](#audioringmode)> | 是 | 回调函数,返回变化后的铃音模式。 | 2990e41f4b71Sopenharmony_ci 2991e41f4b71Sopenharmony_ci**错误码:** 2992e41f4b71Sopenharmony_ci 2993e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 2994e41f4b71Sopenharmony_ci 2995e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2996e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 2997e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 2998e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 2999e41f4b71Sopenharmony_ci 3000e41f4b71Sopenharmony_ci**示例:** 3001e41f4b71Sopenharmony_ci 3002e41f4b71Sopenharmony_ci```ts 3003e41f4b71Sopenharmony_ciaudioVolumeGroupManager.on('ringerModeChange', (ringerMode: audio.AudioRingMode) => { 3004e41f4b71Sopenharmony_ci console.info(`Updated ringermode: ${ringerMode}`); 3005e41f4b71Sopenharmony_ci}); 3006e41f4b71Sopenharmony_ci``` 3007e41f4b71Sopenharmony_ci 3008e41f4b71Sopenharmony_ci### setMicrophoneMute<sup>(deprecated)</sup> 3009e41f4b71Sopenharmony_ci 3010e41f4b71Sopenharmony_cisetMicrophoneMute(mute: boolean, callback: AsyncCallback<void>): void 3011e41f4b71Sopenharmony_ci 3012e41f4b71Sopenharmony_ci设置麦克风静音状态,使用callback方式异步返回结果。 3013e41f4b71Sopenharmony_ci 3014e41f4b71Sopenharmony_ci> **说明:** 3015e41f4b71Sopenharmony_ci> 3016e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 11 开始废弃。替代接口仅面向系统应用开放。 3017e41f4b71Sopenharmony_ci 3018e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。 3019e41f4b71Sopenharmony_ci 3020e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3021e41f4b71Sopenharmony_ci 3022e41f4b71Sopenharmony_ci**参数:** 3023e41f4b71Sopenharmony_ci 3024e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3025e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | --------------------------------------------- | 3026e41f4b71Sopenharmony_ci| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 3027e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置麦克风静音状态成功,err为undefined,否则为错误对象。 | 3028e41f4b71Sopenharmony_ci 3029e41f4b71Sopenharmony_ci**示例:** 3030e41f4b71Sopenharmony_ci 3031e41f4b71Sopenharmony_ci```ts 3032e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3033e41f4b71Sopenharmony_ci 3034e41f4b71Sopenharmony_ciaudioVolumeGroupManager.setMicrophoneMute(true, (err: BusinessError) => { 3035e41f4b71Sopenharmony_ci if (err) { 3036e41f4b71Sopenharmony_ci console.error(`Failed to mute the microphone. ${err}`); 3037e41f4b71Sopenharmony_ci return; 3038e41f4b71Sopenharmony_ci } 3039e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the microphone is muted.'); 3040e41f4b71Sopenharmony_ci}); 3041e41f4b71Sopenharmony_ci``` 3042e41f4b71Sopenharmony_ci 3043e41f4b71Sopenharmony_ci### setMicrophoneMute<sup>(deprecated)</sup> 3044e41f4b71Sopenharmony_ci 3045e41f4b71Sopenharmony_cisetMicrophoneMute(mute: boolean): Promise<void> 3046e41f4b71Sopenharmony_ci 3047e41f4b71Sopenharmony_ci设置麦克风静音状态,使用Promise方式异步返回结果。 3048e41f4b71Sopenharmony_ci 3049e41f4b71Sopenharmony_ci> **说明:** 3050e41f4b71Sopenharmony_ci> 3051e41f4b71Sopenharmony_ci> 从 API version 9开始支持,从API version 11 开始废弃。替代接口仅面向系统应用开放。 3052e41f4b71Sopenharmony_ci 3053e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MANAGE_AUDIO_CONFIG,该权限仅系统应用可申请。 3054e41f4b71Sopenharmony_ci 3055e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3056e41f4b71Sopenharmony_ci 3057e41f4b71Sopenharmony_ci**参数:** 3058e41f4b71Sopenharmony_ci 3059e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3060e41f4b71Sopenharmony_ci| ------ | ------- | ---- | --------------------------------------------- | 3061e41f4b71Sopenharmony_ci| mute | boolean | 是 | 待设置的静音状态,true为静音,false为非静音。 | 3062e41f4b71Sopenharmony_ci 3063e41f4b71Sopenharmony_ci**返回值:** 3064e41f4b71Sopenharmony_ci 3065e41f4b71Sopenharmony_ci| 类型 | 说明 | 3066e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 3067e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 3068e41f4b71Sopenharmony_ci 3069e41f4b71Sopenharmony_ci**示例:** 3070e41f4b71Sopenharmony_ci 3071e41f4b71Sopenharmony_ci```ts 3072e41f4b71Sopenharmony_ciaudioVolumeGroupManager.setMicrophoneMute(true).then(() => { 3073e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the microphone is muted.'); 3074e41f4b71Sopenharmony_ci}); 3075e41f4b71Sopenharmony_ci``` 3076e41f4b71Sopenharmony_ci 3077e41f4b71Sopenharmony_ci### isMicrophoneMute<sup>9+</sup> 3078e41f4b71Sopenharmony_ci 3079e41f4b71Sopenharmony_ciisMicrophoneMute(callback: AsyncCallback<boolean>): void 3080e41f4b71Sopenharmony_ci 3081e41f4b71Sopenharmony_ci获取麦克风静音状态,使用callback方式异步返回结果。 3082e41f4b71Sopenharmony_ci 3083e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3084e41f4b71Sopenharmony_ci 3085e41f4b71Sopenharmony_ci**参数:** 3086e41f4b71Sopenharmony_ci 3087e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3088e41f4b71Sopenharmony_ci| -------- | ---------------------------- | ---- | ------------------------------------------------------- | 3089e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取麦克风静音状态成功,err为undefined,data为true为静音,false为非静音;否则为错误对象。 | 3090e41f4b71Sopenharmony_ci 3091e41f4b71Sopenharmony_ci**示例:** 3092e41f4b71Sopenharmony_ci 3093e41f4b71Sopenharmony_ci```ts 3094e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3095e41f4b71Sopenharmony_ci 3096e41f4b71Sopenharmony_ciaudioVolumeGroupManager.isMicrophoneMute((err: BusinessError, value: boolean) => { 3097e41f4b71Sopenharmony_ci if (err) { 3098e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status of the microphone. ${err}`); 3099e41f4b71Sopenharmony_ci return; 3100e41f4b71Sopenharmony_ci } 3101e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the mute status of the microphone is obtained ${value}.`); 3102e41f4b71Sopenharmony_ci}); 3103e41f4b71Sopenharmony_ci``` 3104e41f4b71Sopenharmony_ci 3105e41f4b71Sopenharmony_ci### isMicrophoneMute<sup>9+</sup> 3106e41f4b71Sopenharmony_ci 3107e41f4b71Sopenharmony_ciisMicrophoneMute(): Promise<boolean> 3108e41f4b71Sopenharmony_ci 3109e41f4b71Sopenharmony_ci获取麦克风静音状态,使用Promise方式异步返回结果。 3110e41f4b71Sopenharmony_ci 3111e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3112e41f4b71Sopenharmony_ci 3113e41f4b71Sopenharmony_ci**返回值:** 3114e41f4b71Sopenharmony_ci 3115e41f4b71Sopenharmony_ci| 类型 | 说明 | 3116e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------------ | 3117e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回系统麦克风静音状态,true为静音,false为非静音。 | 3118e41f4b71Sopenharmony_ci 3119e41f4b71Sopenharmony_ci**示例:** 3120e41f4b71Sopenharmony_ci 3121e41f4b71Sopenharmony_ci```ts 3122e41f4b71Sopenharmony_ciaudioVolumeGroupManager.isMicrophoneMute().then((value: boolean) => { 3123e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the mute status of the microphone is obtained ${value}.`); 3124e41f4b71Sopenharmony_ci}); 3125e41f4b71Sopenharmony_ci``` 3126e41f4b71Sopenharmony_ci 3127e41f4b71Sopenharmony_ci### isMicrophoneMuteSync<sup>10+</sup> 3128e41f4b71Sopenharmony_ci 3129e41f4b71Sopenharmony_ciisMicrophoneMuteSync(): boolean 3130e41f4b71Sopenharmony_ci 3131e41f4b71Sopenharmony_ci获取麦克风静音状态,同步返回结果。 3132e41f4b71Sopenharmony_ci 3133e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3134e41f4b71Sopenharmony_ci 3135e41f4b71Sopenharmony_ci**返回值:** 3136e41f4b71Sopenharmony_ci 3137e41f4b71Sopenharmony_ci| 类型 | 说明 | 3138e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------------ | 3139e41f4b71Sopenharmony_ci| boolean | 返回系统麦克风静音状态,true为静音,false为非静音。 | 3140e41f4b71Sopenharmony_ci 3141e41f4b71Sopenharmony_ci**示例:** 3142e41f4b71Sopenharmony_ci 3143e41f4b71Sopenharmony_ci```ts 3144e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3145e41f4b71Sopenharmony_ci 3146e41f4b71Sopenharmony_citry { 3147e41f4b71Sopenharmony_ci let value: boolean = audioVolumeGroupManager.isMicrophoneMuteSync(); 3148e41f4b71Sopenharmony_ci console.info(`Indicate that the mute status of the microphone is obtained ${value}.`); 3149e41f4b71Sopenharmony_ci} catch (err) { 3150e41f4b71Sopenharmony_ci let error = err as BusinessError; 3151e41f4b71Sopenharmony_ci console.error(`Failed to obtain the mute status of the microphone, error ${error}.`); 3152e41f4b71Sopenharmony_ci} 3153e41f4b71Sopenharmony_ci``` 3154e41f4b71Sopenharmony_ci 3155e41f4b71Sopenharmony_ci### on('micStateChange')<sup>9+</sup> 3156e41f4b71Sopenharmony_ci 3157e41f4b71Sopenharmony_cion(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void 3158e41f4b71Sopenharmony_ci 3159e41f4b71Sopenharmony_ci监听系统麦克风状态更改事件(当检测到系统麦克风状态发生改变时触发),使用callback方式返回结果。 3160e41f4b71Sopenharmony_ci 3161e41f4b71Sopenharmony_ci目前此订阅接口在单进程多AudioManager实例的使用场景下,仅最后一个实例的订阅生效,其他实例的订阅会被覆盖(即使最后一个实例没有进行订阅),因此推荐使用单一AudioManager实例进行开发。 3162e41f4b71Sopenharmony_ci 3163e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3164e41f4b71Sopenharmony_ci 3165e41f4b71Sopenharmony_ci**参数:** 3166e41f4b71Sopenharmony_ci 3167e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3168e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 3169e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'micStateChange'。 | 3170e41f4b71Sopenharmony_ci| callback | Callback<[MicStateChangeEvent](#micstatechangeevent9)> | 是 | 回调函数,返回变更后的麦克风状态。 | 3171e41f4b71Sopenharmony_ci 3172e41f4b71Sopenharmony_ci**错误码:** 3173e41f4b71Sopenharmony_ci 3174e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3175e41f4b71Sopenharmony_ci 3176e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3177e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3178e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3179e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3180e41f4b71Sopenharmony_ci 3181e41f4b71Sopenharmony_ci**示例:** 3182e41f4b71Sopenharmony_ci 3183e41f4b71Sopenharmony_ci```ts 3184e41f4b71Sopenharmony_ciaudioVolumeGroupManager.on('micStateChange', (micStateChange: audio.MicStateChangeEvent) => { 3185e41f4b71Sopenharmony_ci console.info(`Current microphone status is: ${micStateChange.mute} `); 3186e41f4b71Sopenharmony_ci}); 3187e41f4b71Sopenharmony_ci``` 3188e41f4b71Sopenharmony_ci 3189e41f4b71Sopenharmony_ci### isVolumeUnadjustable<sup>10+</sup> 3190e41f4b71Sopenharmony_ci 3191e41f4b71Sopenharmony_ciisVolumeUnadjustable(): boolean 3192e41f4b71Sopenharmony_ci 3193e41f4b71Sopenharmony_ci获取固定音量模式开关状态,打开时进入固定音量模式,此时音量固定无法被调节,使用同步方式返回结果。 3194e41f4b71Sopenharmony_ci 3195e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3196e41f4b71Sopenharmony_ci 3197e41f4b71Sopenharmony_ci**返回值:** 3198e41f4b71Sopenharmony_ci 3199e41f4b71Sopenharmony_ci| 类型 | 说明 | 3200e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | 3201e41f4b71Sopenharmony_ci| boolean | 同步接口,返回固定音量模式开关状态,true为固定音量模式,false为非固定音量模式。 | 3202e41f4b71Sopenharmony_ci 3203e41f4b71Sopenharmony_ci**示例:** 3204e41f4b71Sopenharmony_ci 3205e41f4b71Sopenharmony_ci```ts 3206e41f4b71Sopenharmony_cilet volumeAdjustSwitch: boolean = audioVolumeGroupManager.isVolumeUnadjustable(); 3207e41f4b71Sopenharmony_ciconsole.info(`Whether it is volume unadjustable: ${volumeAdjustSwitch}.`); 3208e41f4b71Sopenharmony_ci``` 3209e41f4b71Sopenharmony_ci 3210e41f4b71Sopenharmony_ci### getSystemVolumeInDb<sup>10+</sup> 3211e41f4b71Sopenharmony_ci 3212e41f4b71Sopenharmony_cigetSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void 3213e41f4b71Sopenharmony_ci 3214e41f4b71Sopenharmony_ci获取音量增益dB值,使用callback方式异步返回结果。 3215e41f4b71Sopenharmony_ci 3216e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3217e41f4b71Sopenharmony_ci 3218e41f4b71Sopenharmony_ci**参数:** 3219e41f4b71Sopenharmony_ci 3220e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3221e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3222e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3223e41f4b71Sopenharmony_ci| volumeLevel | number | 是 | 音量等级。 | 3224e41f4b71Sopenharmony_ci| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3225e41f4b71Sopenharmony_ci| callback | AsyncCallback<number> | 是 | 回调函数。当获取音量增益dB值成功,err为undefined,data为获取到的音量增益dB值;否则为错误对象。 | 3226e41f4b71Sopenharmony_ci 3227e41f4b71Sopenharmony_ci**错误码:** 3228e41f4b71Sopenharmony_ci 3229e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3230e41f4b71Sopenharmony_ci 3231e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3232e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3233e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3234e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by callback. | 3235e41f4b71Sopenharmony_ci| 6800301 | System error. Return by callback. | 3236e41f4b71Sopenharmony_ci 3237e41f4b71Sopenharmony_ci**示例:** 3238e41f4b71Sopenharmony_ci 3239e41f4b71Sopenharmony_ci```ts 3240e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3241e41f4b71Sopenharmony_ci 3242e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER, (err: BusinessError, dB: number) => { 3243e41f4b71Sopenharmony_ci if (err) { 3244e41f4b71Sopenharmony_ci console.error(`Failed to get the volume DB. ${err}`); 3245e41f4b71Sopenharmony_ci } else { 3246e41f4b71Sopenharmony_ci console.info(`Success to get the volume DB. ${dB}`); 3247e41f4b71Sopenharmony_ci } 3248e41f4b71Sopenharmony_ci}); 3249e41f4b71Sopenharmony_ci``` 3250e41f4b71Sopenharmony_ci### getSystemVolumeInDb<sup>10+</sup> 3251e41f4b71Sopenharmony_ci 3252e41f4b71Sopenharmony_cigetSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number> 3253e41f4b71Sopenharmony_ci 3254e41f4b71Sopenharmony_ci获取音量增益dB值,使用Promise方式异步返回结果。 3255e41f4b71Sopenharmony_ci 3256e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3257e41f4b71Sopenharmony_ci 3258e41f4b71Sopenharmony_ci**参数:** 3259e41f4b71Sopenharmony_ci 3260e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3261e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3262e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3263e41f4b71Sopenharmony_ci| volumeLevel | number | 是 | 音量等级。 | 3264e41f4b71Sopenharmony_ci| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3265e41f4b71Sopenharmony_ci 3266e41f4b71Sopenharmony_ci**返回值:** 3267e41f4b71Sopenharmony_ci 3268e41f4b71Sopenharmony_ci| 类型 | 说明 | 3269e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | 3270e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回对应的音量增益dB值。 | 3271e41f4b71Sopenharmony_ci 3272e41f4b71Sopenharmony_ci**错误码:** 3273e41f4b71Sopenharmony_ci 3274e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3275e41f4b71Sopenharmony_ci 3276e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3277e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3278e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3279e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 3280e41f4b71Sopenharmony_ci| 6800301 | System error. Return by promise. | 3281e41f4b71Sopenharmony_ci 3282e41f4b71Sopenharmony_ci**示例:** 3283e41f4b71Sopenharmony_ci 3284e41f4b71Sopenharmony_ci```ts 3285e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3286e41f4b71Sopenharmony_ci 3287e41f4b71Sopenharmony_ciaudioVolumeGroupManager.getSystemVolumeInDb(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER).then((value: number) => { 3288e41f4b71Sopenharmony_ci console.info(`Success to get the volume DB. ${value}`); 3289e41f4b71Sopenharmony_ci}).catch((error: BusinessError) => { 3290e41f4b71Sopenharmony_ci console.error(`Fail to adjust the system volume by step. ${error}`); 3291e41f4b71Sopenharmony_ci}); 3292e41f4b71Sopenharmony_ci``` 3293e41f4b71Sopenharmony_ci 3294e41f4b71Sopenharmony_ci### getSystemVolumeInDbSync<sup>10+</sup> 3295e41f4b71Sopenharmony_ci 3296e41f4b71Sopenharmony_cigetSystemVolumeInDbSync(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): number 3297e41f4b71Sopenharmony_ci 3298e41f4b71Sopenharmony_ci获取音量增益dB值,同步返回结果。 3299e41f4b71Sopenharmony_ci 3300e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3301e41f4b71Sopenharmony_ci 3302e41f4b71Sopenharmony_ci**参数:** 3303e41f4b71Sopenharmony_ci 3304e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3305e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 3306e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音量流类型。 | 3307e41f4b71Sopenharmony_ci| volumeLevel | number | 是 | 音量等级。 | 3308e41f4b71Sopenharmony_ci| device | [DeviceType](#devicetype) | 是 | 设备类型。 | 3309e41f4b71Sopenharmony_ci 3310e41f4b71Sopenharmony_ci**返回值:** 3311e41f4b71Sopenharmony_ci 3312e41f4b71Sopenharmony_ci| 类型 | 说明 | 3313e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | 3314e41f4b71Sopenharmony_ci| number | 返回对应的音量增益dB值。 | 3315e41f4b71Sopenharmony_ci 3316e41f4b71Sopenharmony_ci**错误码:** 3317e41f4b71Sopenharmony_ci 3318e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3319e41f4b71Sopenharmony_ci 3320e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3321e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3322e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3323e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3324e41f4b71Sopenharmony_ci 3325e41f4b71Sopenharmony_ci**示例:** 3326e41f4b71Sopenharmony_ci 3327e41f4b71Sopenharmony_ci```ts 3328e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3329e41f4b71Sopenharmony_ci 3330e41f4b71Sopenharmony_citry { 3331e41f4b71Sopenharmony_ci let value: number = audioVolumeGroupManager.getSystemVolumeInDbSync(audio.AudioVolumeType.MEDIA, 3, audio.DeviceType.SPEAKER); 3332e41f4b71Sopenharmony_ci console.info(`Success to get the volume DB. ${value}`); 3333e41f4b71Sopenharmony_ci} catch (err) { 3334e41f4b71Sopenharmony_ci let error = err as BusinessError; 3335e41f4b71Sopenharmony_ci console.error(`Fail to adjust the system volume by step. ${error}`); 3336e41f4b71Sopenharmony_ci} 3337e41f4b71Sopenharmony_ci``` 3338e41f4b71Sopenharmony_ci 3339e41f4b71Sopenharmony_ci### getMaxAmplitudeForInputDevice<sup>12+</sup> 3340e41f4b71Sopenharmony_ci 3341e41f4b71Sopenharmony_cigetMaxAmplitudeForInputDevice(inputDevice: AudioDeviceDescriptor): Promise<number> 3342e41f4b71Sopenharmony_ci 3343e41f4b71Sopenharmony_ci获取输入设备音频流的最大电平值,大小取值在0-1之间,最小为0,使用Promise方式异步返回结果。 3344e41f4b71Sopenharmony_ci 3345e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3346e41f4b71Sopenharmony_ci 3347e41f4b71Sopenharmony_ci**参数:** 3348e41f4b71Sopenharmony_ci 3349e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3350e41f4b71Sopenharmony_ci| ----------- | ------------------------------------- | ---- | --------------------------------------------------- | 3351e41f4b71Sopenharmony_ci| inputDevice | [AudioDeviceDescriptor](#audiodevicedescriptor) | 是 | 获取最大电平值的设备信息。 | 3352e41f4b71Sopenharmony_ci 3353e41f4b71Sopenharmony_ci**返回值:** 3354e41f4b71Sopenharmony_ci 3355e41f4b71Sopenharmony_ci| 类型 | 说明 | 3356e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | 3357e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回对应设备的电平值,大小在0-1之间。 | 3358e41f4b71Sopenharmony_ci 3359e41f4b71Sopenharmony_ci**错误码:** 3360e41f4b71Sopenharmony_ci 3361e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3362e41f4b71Sopenharmony_ci 3363e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3364e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3365e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3366e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 3367e41f4b71Sopenharmony_ci| 6800301 | System error. Return by promise. | 3368e41f4b71Sopenharmony_ci 3369e41f4b71Sopenharmony_ci**示例:** 3370e41f4b71Sopenharmony_ci 3371e41f4b71Sopenharmony_ci```ts 3372e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3373e41f4b71Sopenharmony_ci 3374e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 3375e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 3376e41f4b71Sopenharmony_ci capturerFlags: 0 3377e41f4b71Sopenharmony_ci}; 3378e41f4b71Sopenharmony_ci 3379e41f4b71Sopenharmony_ciaudio.getAudioManager().getRoutingManager().getPreferredInputDeviceForCapturerInfo(capturerInfo).then((data) => { 3380e41f4b71Sopenharmony_ci audioVolumeGroupManager.getMaxAmplitudeForInputDevice(data[0]).then((value) => { 3381e41f4b71Sopenharmony_ci console.info(`mic volatileume amplitude is: ${value}`); 3382e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3383e41f4b71Sopenharmony_ci console.error("getMaxAmplitudeForInputDevice error" + JSON.stringify(err)); 3384e41f4b71Sopenharmony_ci }) 3385e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 3386e41f4b71Sopenharmony_ci console.error("get outputDeviceId error" + JSON.stringify(err)); 3387e41f4b71Sopenharmony_ci}) 3388e41f4b71Sopenharmony_ci``` 3389e41f4b71Sopenharmony_ci 3390e41f4b71Sopenharmony_ci### getMaxAmplitudeForOutputDevice<sup>12+</sup> 3391e41f4b71Sopenharmony_ci 3392e41f4b71Sopenharmony_cigetMaxAmplitudeForOutputDevice(outputDevice: AudioDeviceDescriptor): Promise<number> 3393e41f4b71Sopenharmony_ci 3394e41f4b71Sopenharmony_ci获取输出设备音频流的最大电平值,大小取值在0-1之间,最小为0,使用Promise方式异步返回结果。 3395e41f4b71Sopenharmony_ci 3396e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Volume 3397e41f4b71Sopenharmony_ci 3398e41f4b71Sopenharmony_ci**参数:** 3399e41f4b71Sopenharmony_ci 3400e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3401e41f4b71Sopenharmony_ci| ------------ | --------------------------------------- | ---- | -------------------------------------------------------- | 3402e41f4b71Sopenharmony_ci| outputDevice | [AudioDeviceDescriptor](#audiodevicedescriptor) | 是 | 获取最大电平值的设备信息。 | 3403e41f4b71Sopenharmony_ci 3404e41f4b71Sopenharmony_ci**返回值:** 3405e41f4b71Sopenharmony_ci 3406e41f4b71Sopenharmony_ci| 类型 | 说明 | 3407e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------- | 3408e41f4b71Sopenharmony_ci| Promise<number> | Promise对象,返回对应设备的电平值,大小在0-1之间。 | 3409e41f4b71Sopenharmony_ci 3410e41f4b71Sopenharmony_ci**错误码:** 3411e41f4b71Sopenharmony_ci 3412e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3413e41f4b71Sopenharmony_ci 3414e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3415e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3416e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3417e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 3418e41f4b71Sopenharmony_ci| 6800301 | System error. Return by promise. | 3419e41f4b71Sopenharmony_ci 3420e41f4b71Sopenharmony_ci**示例:** 3421e41f4b71Sopenharmony_ci 3422e41f4b71Sopenharmony_ci```ts 3423e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3424e41f4b71Sopenharmony_ci 3425e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 3426e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 3427e41f4b71Sopenharmony_ci rendererFlags : 0 3428e41f4b71Sopenharmony_ci}; 3429e41f4b71Sopenharmony_ci 3430e41f4b71Sopenharmony_ciaudio.getAudioManager().getRoutingManager().getPreferOutputDeviceForRendererInfo(rendererInfo).then((data) => { 3431e41f4b71Sopenharmony_ci audioVolumeGroupManager.getMaxAmplitudeForOutputDevice(data[0]).then((value) => { 3432e41f4b71Sopenharmony_ci console.info(`mic volatileume amplitude is: ${value}`); 3433e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3434e41f4b71Sopenharmony_ci console.error("getMaxAmplitudeForOutputDevice error" + JSON.stringify(err)); 3435e41f4b71Sopenharmony_ci }) 3436e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 3437e41f4b71Sopenharmony_ci console.error("getPreferOutputDeviceForRendererInfo error" + JSON.stringify(err)); 3438e41f4b71Sopenharmony_ci}) 3439e41f4b71Sopenharmony_ci``` 3440e41f4b71Sopenharmony_ci 3441e41f4b71Sopenharmony_ci## AudioStreamManager<sup>9+</sup> 3442e41f4b71Sopenharmony_ci 3443e41f4b71Sopenharmony_ci管理音频流。在使用AudioStreamManager的API前,需要使用[getStreamManager](#getstreammanager9)获取AudioStreamManager实例。 3444e41f4b71Sopenharmony_ci 3445e41f4b71Sopenharmony_ci### getCurrentAudioRendererInfoArray<sup>9+</sup> 3446e41f4b71Sopenharmony_ci 3447e41f4b71Sopenharmony_cigetCurrentAudioRendererInfoArray(callback: AsyncCallback<AudioRendererChangeInfoArray>): void 3448e41f4b71Sopenharmony_ci 3449e41f4b71Sopenharmony_ci获取当前音频渲染器的信息。使用callback异步回调。 3450e41f4b71Sopenharmony_ci 3451e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.Multimedia.Audio.Renderer 3452e41f4b71Sopenharmony_ci 3453e41f4b71Sopenharmony_ci**参数:** 3454e41f4b71Sopenharmony_ci 3455e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3456e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | -------- | --------------------------- | 3457e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数。当获取当前音频渲染器的信息成功,err为undefined,data为获取到的当前音频渲染器的信息;否则为错误对象。 | 3458e41f4b71Sopenharmony_ci 3459e41f4b71Sopenharmony_ci**示例:** 3460e41f4b71Sopenharmony_ci 3461e41f4b71Sopenharmony_ci```ts 3462e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3463e41f4b71Sopenharmony_ci 3464e41f4b71Sopenharmony_ciaudioStreamManager.getCurrentAudioRendererInfoArray(async (err: BusinessError, AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 3465e41f4b71Sopenharmony_ci console.info('getCurrentAudioRendererInfoArray **** Get Callback Called ****'); 3466e41f4b71Sopenharmony_ci if (err) { 3467e41f4b71Sopenharmony_ci console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`); 3468e41f4b71Sopenharmony_ci } else { 3469e41f4b71Sopenharmony_ci if (AudioRendererChangeInfoArray != null) { 3470e41f4b71Sopenharmony_ci for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 3471e41f4b71Sopenharmony_ci let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i]; 3472e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3473e41f4b71Sopenharmony_ci console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3474e41f4b71Sopenharmony_ci console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3475e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3476e41f4b71Sopenharmony_ci for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3477e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3478e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3479e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3480e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3481e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3482e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3483e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3484e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3485e41f4b71Sopenharmony_ci } 3486e41f4b71Sopenharmony_ci } 3487e41f4b71Sopenharmony_ci } 3488e41f4b71Sopenharmony_ci } 3489e41f4b71Sopenharmony_ci}); 3490e41f4b71Sopenharmony_ci``` 3491e41f4b71Sopenharmony_ci 3492e41f4b71Sopenharmony_ci### getCurrentAudioRendererInfoArray<sup>9+</sup> 3493e41f4b71Sopenharmony_ci 3494e41f4b71Sopenharmony_cigetCurrentAudioRendererInfoArray(): Promise<AudioRendererChangeInfoArray> 3495e41f4b71Sopenharmony_ci 3496e41f4b71Sopenharmony_ci获取当前音频渲染器的信息。使用Promise异步回调。 3497e41f4b71Sopenharmony_ci 3498e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3499e41f4b71Sopenharmony_ci 3500e41f4b71Sopenharmony_ci**返回值:** 3501e41f4b71Sopenharmony_ci 3502e41f4b71Sopenharmony_ci| 类型 | 说明 | 3503e41f4b71Sopenharmony_ci| ---------------------------------------------------------------------------------| --------------------------------------- | 3504e41f4b71Sopenharmony_ci| Promise<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | Promise对象,返回当前音频渲染器信息。 | 3505e41f4b71Sopenharmony_ci 3506e41f4b71Sopenharmony_ci**示例:** 3507e41f4b71Sopenharmony_ci 3508e41f4b71Sopenharmony_ci```ts 3509e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3510e41f4b71Sopenharmony_ci 3511e41f4b71Sopenharmony_ciasync function getCurrentAudioRendererInfoArray(){ 3512e41f4b71Sopenharmony_ci await audioStreamManager.getCurrentAudioRendererInfoArray().then((AudioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 3513e41f4b71Sopenharmony_ci console.info(`getCurrentAudioRendererInfoArray ######### Get Promise is called ##########`); 3514e41f4b71Sopenharmony_ci if (AudioRendererChangeInfoArray != null) { 3515e41f4b71Sopenharmony_ci for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 3516e41f4b71Sopenharmony_ci let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = AudioRendererChangeInfoArray[i]; 3517e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3518e41f4b71Sopenharmony_ci console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3519e41f4b71Sopenharmony_ci console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3520e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3521e41f4b71Sopenharmony_ci for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3522e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3523e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3524e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3525e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3526e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3527e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3528e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3529e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3530e41f4b71Sopenharmony_ci } 3531e41f4b71Sopenharmony_ci } 3532e41f4b71Sopenharmony_ci } 3533e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3534e41f4b71Sopenharmony_ci console.error(`getCurrentAudioRendererInfoArray :ERROR: ${err}`); 3535e41f4b71Sopenharmony_ci }); 3536e41f4b71Sopenharmony_ci} 3537e41f4b71Sopenharmony_ci``` 3538e41f4b71Sopenharmony_ci### getCurrentAudioRendererInfoArraySync<sup>10+</sup> 3539e41f4b71Sopenharmony_ci 3540e41f4b71Sopenharmony_cigetCurrentAudioRendererInfoArraySync(): AudioRendererChangeInfoArray 3541e41f4b71Sopenharmony_ci 3542e41f4b71Sopenharmony_ci获取当前音频渲染器的信息,同步返回结果。 3543e41f4b71Sopenharmony_ci 3544e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3545e41f4b71Sopenharmony_ci 3546e41f4b71Sopenharmony_ci**返回值:** 3547e41f4b71Sopenharmony_ci 3548e41f4b71Sopenharmony_ci| 类型 | 说明 | 3549e41f4b71Sopenharmony_ci| ---------------------------------------------------------------------------------| --------------------------------------- | 3550e41f4b71Sopenharmony_ci| [AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9) | 返回当前音频渲染器信息。 | 3551e41f4b71Sopenharmony_ci 3552e41f4b71Sopenharmony_ci**示例:** 3553e41f4b71Sopenharmony_ci 3554e41f4b71Sopenharmony_ci```ts 3555e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3556e41f4b71Sopenharmony_ci 3557e41f4b71Sopenharmony_citry { 3558e41f4b71Sopenharmony_ci let audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray = audioStreamManager.getCurrentAudioRendererInfoArraySync(); 3559e41f4b71Sopenharmony_ci console.info(`getCurrentAudioRendererInfoArraySync success.`); 3560e41f4b71Sopenharmony_ci if (audioRendererChangeInfoArray != null) { 3561e41f4b71Sopenharmony_ci for (let i = 0; i < audioRendererChangeInfoArray.length; i++) { 3562e41f4b71Sopenharmony_ci let AudioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i]; 3563e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioRendererChangeInfo.streamId}`); 3564e41f4b71Sopenharmony_ci console.info(`Content ${i} is: ${AudioRendererChangeInfo.rendererInfo.content}`); 3565e41f4b71Sopenharmony_ci console.info(`Stream ${i} is: ${AudioRendererChangeInfo.rendererInfo.usage}`); 3566e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioRendererChangeInfo.rendererInfo.rendererFlags}`); 3567e41f4b71Sopenharmony_ci for (let j = 0;j < AudioRendererChangeInfo.deviceDescriptors.length; j++) { 3568e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].id}`); 3569e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3570e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3571e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].name}`); 3572e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].address}`); 3573e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3574e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3575e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3576e41f4b71Sopenharmony_ci } 3577e41f4b71Sopenharmony_ci } 3578e41f4b71Sopenharmony_ci } 3579e41f4b71Sopenharmony_ci} catch (err) { 3580e41f4b71Sopenharmony_ci let error = err as BusinessError; 3581e41f4b71Sopenharmony_ci console.error(`getCurrentAudioRendererInfoArraySync :ERROR: ${error}`); 3582e41f4b71Sopenharmony_ci} 3583e41f4b71Sopenharmony_ci``` 3584e41f4b71Sopenharmony_ci 3585e41f4b71Sopenharmony_ci### getCurrentAudioCapturerInfoArray<sup>9+</sup> 3586e41f4b71Sopenharmony_ci 3587e41f4b71Sopenharmony_cigetCurrentAudioCapturerInfoArray(callback: AsyncCallback<AudioCapturerChangeInfoArray>): void 3588e41f4b71Sopenharmony_ci 3589e41f4b71Sopenharmony_ci获取当前音频采集器的信息。使用callback异步回调。 3590e41f4b71Sopenharmony_ci 3591e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3592e41f4b71Sopenharmony_ci 3593e41f4b71Sopenharmony_ci**参数:** 3594e41f4b71Sopenharmony_ci 3595e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3596e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | --------- | -------------------------------------------------------- | 3597e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数。当获取当前音频采集器的信息成功,err为undefined,data为获取到的当前音频采集器的信息;否则为错误对象。 | 3598e41f4b71Sopenharmony_ci 3599e41f4b71Sopenharmony_ci**示例:** 3600e41f4b71Sopenharmony_ci 3601e41f4b71Sopenharmony_ci```ts 3602e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3603e41f4b71Sopenharmony_ci 3604e41f4b71Sopenharmony_ciaudioStreamManager.getCurrentAudioCapturerInfoArray(async (err: BusinessError, AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 3605e41f4b71Sopenharmony_ci console.info('getCurrentAudioCapturerInfoArray **** Get Callback Called ****'); 3606e41f4b71Sopenharmony_ci if (err) { 3607e41f4b71Sopenharmony_ci console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`); 3608e41f4b71Sopenharmony_ci } else { 3609e41f4b71Sopenharmony_ci if (AudioCapturerChangeInfoArray != null) { 3610e41f4b71Sopenharmony_ci for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 3611e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 3612e41f4b71Sopenharmony_ci console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 3613e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3614e41f4b71Sopenharmony_ci for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3615e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3616e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3617e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3618e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3619e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3620e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3621e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3622e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3623e41f4b71Sopenharmony_ci } 3624e41f4b71Sopenharmony_ci } 3625e41f4b71Sopenharmony_ci } 3626e41f4b71Sopenharmony_ci } 3627e41f4b71Sopenharmony_ci}); 3628e41f4b71Sopenharmony_ci``` 3629e41f4b71Sopenharmony_ci 3630e41f4b71Sopenharmony_ci### getCurrentAudioCapturerInfoArray<sup>9+</sup> 3631e41f4b71Sopenharmony_ci 3632e41f4b71Sopenharmony_cigetCurrentAudioCapturerInfoArray(): Promise<AudioCapturerChangeInfoArray> 3633e41f4b71Sopenharmony_ci 3634e41f4b71Sopenharmony_ci获取当前音频采集器的信息。使用Promise异步回调。 3635e41f4b71Sopenharmony_ci 3636e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3637e41f4b71Sopenharmony_ci 3638e41f4b71Sopenharmony_ci**返回值:** 3639e41f4b71Sopenharmony_ci 3640e41f4b71Sopenharmony_ci| 类型 | 说明 | 3641e41f4b71Sopenharmony_ci| -----------------------------------------------------------------------------| ----------------------------------- | 3642e41f4b71Sopenharmony_ci| Promise<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | Promise对象,返回当前音频采集器信息。 | 3643e41f4b71Sopenharmony_ci 3644e41f4b71Sopenharmony_ci**示例:** 3645e41f4b71Sopenharmony_ci 3646e41f4b71Sopenharmony_ci```ts 3647e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3648e41f4b71Sopenharmony_ci 3649e41f4b71Sopenharmony_ciasync function getCurrentAudioCapturerInfoArray(){ 3650e41f4b71Sopenharmony_ci await audioStreamManager.getCurrentAudioCapturerInfoArray().then((AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 3651e41f4b71Sopenharmony_ci console.info('getCurrentAudioCapturerInfoArray **** Get Promise Called ****'); 3652e41f4b71Sopenharmony_ci if (AudioCapturerChangeInfoArray != null) { 3653e41f4b71Sopenharmony_ci for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 3654e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 3655e41f4b71Sopenharmony_ci console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 3656e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3657e41f4b71Sopenharmony_ci for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3658e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3659e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3660e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3661e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3662e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3663e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3664e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3665e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3666e41f4b71Sopenharmony_ci } 3667e41f4b71Sopenharmony_ci } 3668e41f4b71Sopenharmony_ci } 3669e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 3670e41f4b71Sopenharmony_ci console.error(`getCurrentAudioCapturerInfoArray :ERROR: ${err}`); 3671e41f4b71Sopenharmony_ci }); 3672e41f4b71Sopenharmony_ci} 3673e41f4b71Sopenharmony_ci``` 3674e41f4b71Sopenharmony_ci### getCurrentAudioCapturerInfoArraySync<sup>10+</sup> 3675e41f4b71Sopenharmony_ci 3676e41f4b71Sopenharmony_cigetCurrentAudioCapturerInfoArraySync(): AudioCapturerChangeInfoArray 3677e41f4b71Sopenharmony_ci 3678e41f4b71Sopenharmony_ci获取当前音频采集器的信息,同步返回结果。 3679e41f4b71Sopenharmony_ci 3680e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 3681e41f4b71Sopenharmony_ci 3682e41f4b71Sopenharmony_ci**返回值:** 3683e41f4b71Sopenharmony_ci 3684e41f4b71Sopenharmony_ci| 类型 | 说明 | 3685e41f4b71Sopenharmony_ci| -----------------------------------------------------------------------------| ----------------------------------- | 3686e41f4b71Sopenharmony_ci| [AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9) | 返回当前音频采集器信息。 | 3687e41f4b71Sopenharmony_ci 3688e41f4b71Sopenharmony_ci**示例:** 3689e41f4b71Sopenharmony_ci 3690e41f4b71Sopenharmony_ci```ts 3691e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3692e41f4b71Sopenharmony_ci 3693e41f4b71Sopenharmony_citry { 3694e41f4b71Sopenharmony_ci let audioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray = audioStreamManager.getCurrentAudioCapturerInfoArraySync(); 3695e41f4b71Sopenharmony_ci console.info('getCurrentAudioCapturerInfoArraySync success.'); 3696e41f4b71Sopenharmony_ci if (audioCapturerChangeInfoArray != null) { 3697e41f4b71Sopenharmony_ci for (let i = 0; i < audioCapturerChangeInfoArray.length; i++) { 3698e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${audioCapturerChangeInfoArray[i].streamId}`); 3699e41f4b71Sopenharmony_ci console.info(`Source for ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.source}`); 3700e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${audioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3701e41f4b71Sopenharmony_ci for (let j = 0; j < audioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3702e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3703e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3704e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3705e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3706e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3707e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3708e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3709e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${audioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3710e41f4b71Sopenharmony_ci } 3711e41f4b71Sopenharmony_ci } 3712e41f4b71Sopenharmony_ci } 3713e41f4b71Sopenharmony_ci} catch (err) { 3714e41f4b71Sopenharmony_ci let error = err as BusinessError; 3715e41f4b71Sopenharmony_ci console.error(`getCurrentAudioCapturerInfoArraySync ERROR: ${error}`); 3716e41f4b71Sopenharmony_ci} 3717e41f4b71Sopenharmony_ci``` 3718e41f4b71Sopenharmony_ci 3719e41f4b71Sopenharmony_ci### on('audioRendererChange')<sup>9+</sup> 3720e41f4b71Sopenharmony_ci 3721e41f4b71Sopenharmony_cion(type: 'audioRendererChange', callback: Callback<AudioRendererChangeInfoArray>): void 3722e41f4b71Sopenharmony_ci 3723e41f4b71Sopenharmony_ci监听音频渲染器更改事件(当音频播放流状态变化、设备变化时触发),使用callback方式返回结果。 3724e41f4b71Sopenharmony_ci 3725e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3726e41f4b71Sopenharmony_ci 3727e41f4b71Sopenharmony_ci**参数:** 3728e41f4b71Sopenharmony_ci 3729e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3730e41f4b71Sopenharmony_ci| -------- | ---------- | --------- | ------------------------------------------------------------------------ | 3731e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioRendererChange'。 | 3732e41f4b71Sopenharmony_ci| callback | Callback<[AudioRendererChangeInfoArray](#audiorendererchangeinfoarray9)> | 是 | 回调函数,返回当前音频渲染器信息。 | 3733e41f4b71Sopenharmony_ci 3734e41f4b71Sopenharmony_ci**错误码:** 3735e41f4b71Sopenharmony_ci 3736e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3737e41f4b71Sopenharmony_ci 3738e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3739e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3740e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3741e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3742e41f4b71Sopenharmony_ci 3743e41f4b71Sopenharmony_ci**示例:** 3744e41f4b71Sopenharmony_ci 3745e41f4b71Sopenharmony_ci```ts 3746e41f4b71Sopenharmony_ciaudioStreamManager.on('audioRendererChange', (audioRendererChangeInfoArray: audio.AudioRendererChangeInfoArray) => { 3747e41f4b71Sopenharmony_ci for (let i = 0; i < audioRendererChangeInfoArray.length; i++) { 3748e41f4b71Sopenharmony_ci let audioRendererChangeInfo: audio.AudioRendererChangeInfo = audioRendererChangeInfoArray[i]; 3749e41f4b71Sopenharmony_ci console.info(`## RendererChange on is called for ${i} ##`); 3750e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${audioRendererChangeInfo.streamId}`); 3751e41f4b71Sopenharmony_ci console.info(`Content ${i} is: ${audioRendererChangeInfo.rendererInfo.content}`); 3752e41f4b71Sopenharmony_ci console.info(`Stream ${i} is: ${audioRendererChangeInfo.rendererInfo.usage}`); 3753e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${audioRendererChangeInfo.rendererInfo.rendererFlags}`); 3754e41f4b71Sopenharmony_ci for (let j = 0;j < audioRendererChangeInfo.deviceDescriptors.length; j++) { 3755e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].id}`); 3756e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceType}`); 3757e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].deviceRole}`); 3758e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].name}`); 3759e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].address}`); 3760e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].sampleRates[0]}`); 3761e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelCounts[0]}`); 3762e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${audioRendererChangeInfo.deviceDescriptors[j].channelMasks[0]}`); 3763e41f4b71Sopenharmony_ci } 3764e41f4b71Sopenharmony_ci } 3765e41f4b71Sopenharmony_ci}); 3766e41f4b71Sopenharmony_ci``` 3767e41f4b71Sopenharmony_ci 3768e41f4b71Sopenharmony_ci### off('audioRendererChange')<sup>9+</sup> 3769e41f4b71Sopenharmony_ci 3770e41f4b71Sopenharmony_cioff(type: 'audioRendererChange'): void 3771e41f4b71Sopenharmony_ci 3772e41f4b71Sopenharmony_ci取消监听音频渲染器更改事件。 3773e41f4b71Sopenharmony_ci 3774e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3775e41f4b71Sopenharmony_ci 3776e41f4b71Sopenharmony_ci**参数:** 3777e41f4b71Sopenharmony_ci 3778e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3779e41f4b71Sopenharmony_ci| -------- | ------- | ---- | ---------------- | 3780e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioRendererChange'。 | 3781e41f4b71Sopenharmony_ci 3782e41f4b71Sopenharmony_ci**错误码:** 3783e41f4b71Sopenharmony_ci 3784e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3785e41f4b71Sopenharmony_ci 3786e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3787e41f4b71Sopenharmony_ci| ------- |--------------------------| 3788e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3789e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3790e41f4b71Sopenharmony_ci 3791e41f4b71Sopenharmony_ci**示例:** 3792e41f4b71Sopenharmony_ci 3793e41f4b71Sopenharmony_ci```ts 3794e41f4b71Sopenharmony_ciaudioStreamManager.off('audioRendererChange'); 3795e41f4b71Sopenharmony_ci``` 3796e41f4b71Sopenharmony_ci 3797e41f4b71Sopenharmony_ci### on('audioCapturerChange')<sup>9+</sup> 3798e41f4b71Sopenharmony_ci 3799e41f4b71Sopenharmony_cion(type: 'audioCapturerChange', callback: Callback<AudioCapturerChangeInfoArray>): void 3800e41f4b71Sopenharmony_ci 3801e41f4b71Sopenharmony_ci监听音频采集器更改事件(当音频录制流状态变化、设备变化时触发),使用callback方式返回结果。 3802e41f4b71Sopenharmony_ci 3803e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 3804e41f4b71Sopenharmony_ci 3805e41f4b71Sopenharmony_ci**参数:** 3806e41f4b71Sopenharmony_ci 3807e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3808e41f4b71Sopenharmony_ci| -------- | ------- | --------- | ---------------------------------------------------------------------- | 3809e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioCapturerChange'。 | 3810e41f4b71Sopenharmony_ci| callback | Callback<[AudioCapturerChangeInfoArray](#audiocapturerchangeinfoarray9)> | 是 | 回调函数,返回当前音频采集器信息。 | 3811e41f4b71Sopenharmony_ci 3812e41f4b71Sopenharmony_ci**错误码:** 3813e41f4b71Sopenharmony_ci 3814e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3815e41f4b71Sopenharmony_ci 3816e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3817e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3818e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3819e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3820e41f4b71Sopenharmony_ci 3821e41f4b71Sopenharmony_ci**示例:** 3822e41f4b71Sopenharmony_ci 3823e41f4b71Sopenharmony_ci```ts 3824e41f4b71Sopenharmony_ciaudioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray: audio.AudioCapturerChangeInfoArray) => { 3825e41f4b71Sopenharmony_ci for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 3826e41f4b71Sopenharmony_ci console.info(`## CapChange on is called for element ${i} ##`); 3827e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 3828e41f4b71Sopenharmony_ci console.info(`Source for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 3829e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 3830e41f4b71Sopenharmony_ci for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 3831e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 3832e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 3833e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 3834e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 3835e41f4b71Sopenharmony_ci console.info(`Address: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 3836e41f4b71Sopenharmony_ci console.info(`SampleRate: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 3837e41f4b71Sopenharmony_ci console.info(`ChannelCount: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 3838e41f4b71Sopenharmony_ci console.info(`ChannelMask: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 3839e41f4b71Sopenharmony_ci } 3840e41f4b71Sopenharmony_ci } 3841e41f4b71Sopenharmony_ci}); 3842e41f4b71Sopenharmony_ci``` 3843e41f4b71Sopenharmony_ci 3844e41f4b71Sopenharmony_ci### off('audioCapturerChange')<sup>9+</sup> 3845e41f4b71Sopenharmony_ci 3846e41f4b71Sopenharmony_cioff(type: 'audioCapturerChange'): void 3847e41f4b71Sopenharmony_ci 3848e41f4b71Sopenharmony_ci取消监听音频采集器更改事件。 3849e41f4b71Sopenharmony_ci 3850e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 3851e41f4b71Sopenharmony_ci 3852e41f4b71Sopenharmony_ci**参数:** 3853e41f4b71Sopenharmony_ci 3854e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3855e41f4b71Sopenharmony_ci| -------- | -------- | --- | ------------------------------------------------------------- | 3856e41f4b71Sopenharmony_ci| type | string |是 | 监听事件,固定为:'audioCapturerChange'。 | 3857e41f4b71Sopenharmony_ci 3858e41f4b71Sopenharmony_ci**错误码:** 3859e41f4b71Sopenharmony_ci 3860e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3861e41f4b71Sopenharmony_ci 3862e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3863e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3864e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3865e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3866e41f4b71Sopenharmony_ci 3867e41f4b71Sopenharmony_ci**示例:** 3868e41f4b71Sopenharmony_ci 3869e41f4b71Sopenharmony_ci```ts 3870e41f4b71Sopenharmony_ciaudioStreamManager.off('audioCapturerChange'); 3871e41f4b71Sopenharmony_ci``` 3872e41f4b71Sopenharmony_ci 3873e41f4b71Sopenharmony_ci### isActive<sup>9+</sup> 3874e41f4b71Sopenharmony_ci 3875e41f4b71Sopenharmony_ciisActive(volumeType: AudioVolumeType, callback: AsyncCallback<boolean>): void 3876e41f4b71Sopenharmony_ci 3877e41f4b71Sopenharmony_ci获取指定音频流是否为活跃状态,使用callback方式异步返回结果。 3878e41f4b71Sopenharmony_ci 3879e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3880e41f4b71Sopenharmony_ci 3881e41f4b71Sopenharmony_ci**参数:** 3882e41f4b71Sopenharmony_ci 3883e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3884e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------------------------------------------- | 3885e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 3886e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定音频流是否为活跃状态成功,err为undefined,data为true为活跃,false为不活跃;否则为错误对象。 | 3887e41f4b71Sopenharmony_ci 3888e41f4b71Sopenharmony_ci**示例:** 3889e41f4b71Sopenharmony_ci 3890e41f4b71Sopenharmony_ci```ts 3891e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3892e41f4b71Sopenharmony_ci 3893e41f4b71Sopenharmony_ciaudioStreamManager.isActive(audio.AudioVolumeType.MEDIA, (err: BusinessError, value: boolean) => { 3894e41f4b71Sopenharmony_ciif (err) { 3895e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the stream. ${err}`); 3896e41f4b71Sopenharmony_ci return; 3897e41f4b71Sopenharmony_ci} 3898e41f4b71Sopenharmony_ci console.info(`Callback invoked to indicate that the active status of the stream is obtained ${value}.`); 3899e41f4b71Sopenharmony_ci}); 3900e41f4b71Sopenharmony_ci``` 3901e41f4b71Sopenharmony_ci 3902e41f4b71Sopenharmony_ci### isActive<sup>9+</sup> 3903e41f4b71Sopenharmony_ci 3904e41f4b71Sopenharmony_ciisActive(volumeType: AudioVolumeType): Promise<boolean> 3905e41f4b71Sopenharmony_ci 3906e41f4b71Sopenharmony_ci获取指定音频流是否为活跃状态,使用Promise方式异步返回结果。 3907e41f4b71Sopenharmony_ci 3908e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3909e41f4b71Sopenharmony_ci 3910e41f4b71Sopenharmony_ci**参数:** 3911e41f4b71Sopenharmony_ci 3912e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3913e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 3914e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 3915e41f4b71Sopenharmony_ci 3916e41f4b71Sopenharmony_ci**返回值:** 3917e41f4b71Sopenharmony_ci 3918e41f4b71Sopenharmony_ci| 类型 | 说明 | 3919e41f4b71Sopenharmony_ci| ---------------------- | -------------------------------------------------------- | 3920e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回流的活跃状态,true为活跃,false为不活跃。 | 3921e41f4b71Sopenharmony_ci 3922e41f4b71Sopenharmony_ci**示例:** 3923e41f4b71Sopenharmony_ci 3924e41f4b71Sopenharmony_ci```ts 3925e41f4b71Sopenharmony_ciaudioStreamManager.isActive(audio.AudioVolumeType.MEDIA).then((value: boolean) => { 3926e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the active status of the stream is obtained ${value}.`); 3927e41f4b71Sopenharmony_ci}); 3928e41f4b71Sopenharmony_ci``` 3929e41f4b71Sopenharmony_ci 3930e41f4b71Sopenharmony_ci### isActiveSync<sup>10+</sup> 3931e41f4b71Sopenharmony_ci 3932e41f4b71Sopenharmony_ciisActiveSync(volumeType: AudioVolumeType): boolean 3933e41f4b71Sopenharmony_ci 3934e41f4b71Sopenharmony_ci获取指定音频流是否为活跃状态,同步返回结果。 3935e41f4b71Sopenharmony_ci 3936e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 3937e41f4b71Sopenharmony_ci 3938e41f4b71Sopenharmony_ci**参数:** 3939e41f4b71Sopenharmony_ci 3940e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3941e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | ------------ | 3942e41f4b71Sopenharmony_ci| volumeType | [AudioVolumeType](#audiovolumetype) | 是 | 音频流类型。 | 3943e41f4b71Sopenharmony_ci 3944e41f4b71Sopenharmony_ci**返回值:** 3945e41f4b71Sopenharmony_ci 3946e41f4b71Sopenharmony_ci| 类型 | 说明 | 3947e41f4b71Sopenharmony_ci| ---------------------- | -------------------------------------------------------- | 3948e41f4b71Sopenharmony_ci| boolean | 返回流的活跃状态,true为活跃,false为不活跃。 | 3949e41f4b71Sopenharmony_ci 3950e41f4b71Sopenharmony_ci**错误码:** 3951e41f4b71Sopenharmony_ci 3952e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3953e41f4b71Sopenharmony_ci 3954e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3955e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3956e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3957e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 3958e41f4b71Sopenharmony_ci 3959e41f4b71Sopenharmony_ci**示例:** 3960e41f4b71Sopenharmony_ci 3961e41f4b71Sopenharmony_ci```ts 3962e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3963e41f4b71Sopenharmony_ci 3964e41f4b71Sopenharmony_citry { 3965e41f4b71Sopenharmony_ci let value: boolean = audioStreamManager.isActiveSync(audio.AudioVolumeType.MEDIA); 3966e41f4b71Sopenharmony_ci console.info(`Indicate that the active status of the stream is obtained ${value}.`); 3967e41f4b71Sopenharmony_ci} catch (err) { 3968e41f4b71Sopenharmony_ci let error = err as BusinessError; 3969e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the stream ${error}.`); 3970e41f4b71Sopenharmony_ci} 3971e41f4b71Sopenharmony_ci``` 3972e41f4b71Sopenharmony_ci 3973e41f4b71Sopenharmony_ci### getAudioEffectInfoArray<sup>10+</sup> 3974e41f4b71Sopenharmony_ci 3975e41f4b71Sopenharmony_cigetAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void 3976e41f4b71Sopenharmony_ci 3977e41f4b71Sopenharmony_ci获取当前音效模式的信息。使用callback异步回调。 3978e41f4b71Sopenharmony_ci 3979e41f4b71Sopenharmony_ci**系统能力**: SystemCapability.Multimedia.Audio.Renderer 3980e41f4b71Sopenharmony_ci 3981e41f4b71Sopenharmony_ci**参数:** 3982e41f4b71Sopenharmony_ci 3983e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3984e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | -------- | --------------------------- | 3985e41f4b71Sopenharmony_ci| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 3986e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioEffectInfoArray](#audioeffectinfoarray10)> | 是 | 回调函数。当获取当前音效模式的信息成功,err为undefined,data为获取到的当前音效模式的信息;否则为错误对象。| 3987e41f4b71Sopenharmony_ci 3988e41f4b71Sopenharmony_ci**错误码:** 3989e41f4b71Sopenharmony_ci 3990e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 3991e41f4b71Sopenharmony_ci 3992e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3993e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 3994e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 3995e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by callback.| 3996e41f4b71Sopenharmony_ci 3997e41f4b71Sopenharmony_ci**示例:** 3998e41f4b71Sopenharmony_ci 3999e41f4b71Sopenharmony_ci```ts 4000e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4001e41f4b71Sopenharmony_ci 4002e41f4b71Sopenharmony_ciaudioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC, async (err: BusinessError, audioEffectInfoArray: audio.AudioEffectInfoArray) => { 4003e41f4b71Sopenharmony_ci console.info('getAudioEffectInfoArray **** Get Callback Called ****'); 4004e41f4b71Sopenharmony_ci if (err) { 4005e41f4b71Sopenharmony_ci console.error(`getAudioEffectInfoArray :ERROR: ${err}`); 4006e41f4b71Sopenharmony_ci return; 4007e41f4b71Sopenharmony_ci } else { 4008e41f4b71Sopenharmony_ci console.info(`The effect modes are: ${audioEffectInfoArray}`); 4009e41f4b71Sopenharmony_ci } 4010e41f4b71Sopenharmony_ci}); 4011e41f4b71Sopenharmony_ci``` 4012e41f4b71Sopenharmony_ci 4013e41f4b71Sopenharmony_ci### getAudioEffectInfoArray<sup>10+</sup> 4014e41f4b71Sopenharmony_ci 4015e41f4b71Sopenharmony_cigetAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray> 4016e41f4b71Sopenharmony_ci 4017e41f4b71Sopenharmony_ci获取当前音效模式的信息。使用Promise异步回调。 4018e41f4b71Sopenharmony_ci 4019e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4020e41f4b71Sopenharmony_ci 4021e41f4b71Sopenharmony_ci**参数:** 4022e41f4b71Sopenharmony_ci 4023e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4024e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | -------- | --------------------------- | 4025e41f4b71Sopenharmony_ci| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 4026e41f4b71Sopenharmony_ci 4027e41f4b71Sopenharmony_ci**返回值:** 4028e41f4b71Sopenharmony_ci 4029e41f4b71Sopenharmony_ci| 类型 | 说明 | 4030e41f4b71Sopenharmony_ci| --------------------------------------------------------------------------| --------------------------------------- | 4031e41f4b71Sopenharmony_ci| Promise<[AudioEffectInfoArray](#audioeffectinfoarray10)> | Promise对象,返回当前音效模式的信息。 | 4032e41f4b71Sopenharmony_ci 4033e41f4b71Sopenharmony_ci**错误码:** 4034e41f4b71Sopenharmony_ci 4035e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4036e41f4b71Sopenharmony_ci 4037e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4038e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4039e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4040e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 4041e41f4b71Sopenharmony_ci 4042e41f4b71Sopenharmony_ci**示例:** 4043e41f4b71Sopenharmony_ci 4044e41f4b71Sopenharmony_ci```ts 4045e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4046e41f4b71Sopenharmony_ci 4047e41f4b71Sopenharmony_ciaudioStreamManager.getAudioEffectInfoArray(audio.StreamUsage.STREAM_USAGE_MUSIC).then((audioEffectInfoArray: audio.AudioEffectInfoArray) => { 4048e41f4b71Sopenharmony_ci console.info('getAudioEffectInfoArray ######### Get Promise is called ##########'); 4049e41f4b71Sopenharmony_ci console.info(`The effect modes are: ${audioEffectInfoArray}`); 4050e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4051e41f4b71Sopenharmony_ci console.error(`getAudioEffectInfoArray :ERROR: ${err}`); 4052e41f4b71Sopenharmony_ci}); 4053e41f4b71Sopenharmony_ci``` 4054e41f4b71Sopenharmony_ci 4055e41f4b71Sopenharmony_ci### getAudioEffectInfoArraySync<sup>10+</sup> 4056e41f4b71Sopenharmony_ci 4057e41f4b71Sopenharmony_cigetAudioEffectInfoArraySync(usage: StreamUsage): AudioEffectInfoArray 4058e41f4b71Sopenharmony_ci 4059e41f4b71Sopenharmony_ci获取当前音效模式的信息,同步返回结果。 4060e41f4b71Sopenharmony_ci 4061e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 4062e41f4b71Sopenharmony_ci 4063e41f4b71Sopenharmony_ci**参数:** 4064e41f4b71Sopenharmony_ci 4065e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4066e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | -------- | --------------------------- | 4067e41f4b71Sopenharmony_ci| usage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 4068e41f4b71Sopenharmony_ci 4069e41f4b71Sopenharmony_ci**返回值:** 4070e41f4b71Sopenharmony_ci 4071e41f4b71Sopenharmony_ci| 类型 | 说明 | 4072e41f4b71Sopenharmony_ci| --------------------------------------------------------------------------| --------------------------------------- | 4073e41f4b71Sopenharmony_ci| [AudioEffectInfoArray](#audioeffectinfoarray10) | 返回当前音效模式的信息。 | 4074e41f4b71Sopenharmony_ci 4075e41f4b71Sopenharmony_ci**错误码:** 4076e41f4b71Sopenharmony_ci 4077e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4078e41f4b71Sopenharmony_ci 4079e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4080e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4081e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4082e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4083e41f4b71Sopenharmony_ci 4084e41f4b71Sopenharmony_ci**示例:** 4085e41f4b71Sopenharmony_ci 4086e41f4b71Sopenharmony_ci```ts 4087e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4088e41f4b71Sopenharmony_ci 4089e41f4b71Sopenharmony_citry { 4090e41f4b71Sopenharmony_ci let audioEffectInfoArray: audio.AudioEffectInfoArray = audioStreamManager.getAudioEffectInfoArraySync(audio.StreamUsage.STREAM_USAGE_MUSIC); 4091e41f4b71Sopenharmony_ci console.info(`The effect modes are: ${audioEffectInfoArray}`); 4092e41f4b71Sopenharmony_ci} catch (err) { 4093e41f4b71Sopenharmony_ci let error = err as BusinessError; 4094e41f4b71Sopenharmony_ci console.error(`getAudioEffectInfoArraySync ERROR: ${error}`); 4095e41f4b71Sopenharmony_ci} 4096e41f4b71Sopenharmony_ci``` 4097e41f4b71Sopenharmony_ci 4098e41f4b71Sopenharmony_ci## AudioRoutingManager<sup>9+</sup> 4099e41f4b71Sopenharmony_ci 4100e41f4b71Sopenharmony_ci音频路由管理。在使用AudioRoutingManager的接口前,需要使用[getRoutingManager](#getroutingmanager9)获取AudioRoutingManager实例。 4101e41f4b71Sopenharmony_ci 4102e41f4b71Sopenharmony_ci### getDevices<sup>9+</sup> 4103e41f4b71Sopenharmony_ci 4104e41f4b71Sopenharmony_cigetDevices(deviceFlag: DeviceFlag, callback: AsyncCallback<AudioDeviceDescriptors>): void 4105e41f4b71Sopenharmony_ci 4106e41f4b71Sopenharmony_ci获取音频设备列表,使用callback方式异步返回结果。 4107e41f4b71Sopenharmony_ci 4108e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4109e41f4b71Sopenharmony_ci 4110e41f4b71Sopenharmony_ci**参数:** 4111e41f4b71Sopenharmony_ci 4112e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4113e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------------------------ | ---- | -------------------- | 4114e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4115e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数。当获取音频设备列表成功,err为undefined,data为获取到的音频设备列表;否则为错误对象。 | 4116e41f4b71Sopenharmony_ci 4117e41f4b71Sopenharmony_ci**示例:** 4118e41f4b71Sopenharmony_ci 4119e41f4b71Sopenharmony_ci```ts 4120e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4121e41f4b71Sopenharmony_ci 4122e41f4b71Sopenharmony_ciaudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err: BusinessError, value: audio.AudioDeviceDescriptors) => { 4123e41f4b71Sopenharmony_ci if (err) { 4124e41f4b71Sopenharmony_ci console.error(`Failed to obtain the device list. ${err}`); 4125e41f4b71Sopenharmony_ci return; 4126e41f4b71Sopenharmony_ci } 4127e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the device list is obtained.'); 4128e41f4b71Sopenharmony_ci}); 4129e41f4b71Sopenharmony_ci``` 4130e41f4b71Sopenharmony_ci 4131e41f4b71Sopenharmony_ci### getDevices<sup>9+</sup> 4132e41f4b71Sopenharmony_ci 4133e41f4b71Sopenharmony_cigetDevices(deviceFlag: DeviceFlag): Promise<AudioDeviceDescriptors> 4134e41f4b71Sopenharmony_ci 4135e41f4b71Sopenharmony_ci获取音频设备列表,使用Promise方式异步返回结果。 4136e41f4b71Sopenharmony_ci 4137e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4138e41f4b71Sopenharmony_ci 4139e41f4b71Sopenharmony_ci**参数:** 4140e41f4b71Sopenharmony_ci 4141e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4142e41f4b71Sopenharmony_ci| ---------- | ------------------------- | ---- | ---------------- | 4143e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4144e41f4b71Sopenharmony_ci 4145e41f4b71Sopenharmony_ci**返回值:** 4146e41f4b71Sopenharmony_ci 4147e41f4b71Sopenharmony_ci| 类型 | 说明 | 4148e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------- | 4149e41f4b71Sopenharmony_ci| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise对象,返回设备列表。 | 4150e41f4b71Sopenharmony_ci 4151e41f4b71Sopenharmony_ci**示例:** 4152e41f4b71Sopenharmony_ci 4153e41f4b71Sopenharmony_ci```ts 4154e41f4b71Sopenharmony_ciaudioRoutingManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG).then((data: audio.AudioDeviceDescriptors) => { 4155e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the device list is obtained.'); 4156e41f4b71Sopenharmony_ci}); 4157e41f4b71Sopenharmony_ci``` 4158e41f4b71Sopenharmony_ci 4159e41f4b71Sopenharmony_ci### getDevicesSync<sup>10+</sup> 4160e41f4b71Sopenharmony_ci 4161e41f4b71Sopenharmony_cigetDevicesSync(deviceFlag: DeviceFlag): AudioDeviceDescriptors 4162e41f4b71Sopenharmony_ci 4163e41f4b71Sopenharmony_ci获取音频设备列表,同步返回结果。 4164e41f4b71Sopenharmony_ci 4165e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4166e41f4b71Sopenharmony_ci 4167e41f4b71Sopenharmony_ci**参数:** 4168e41f4b71Sopenharmony_ci 4169e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4170e41f4b71Sopenharmony_ci| ---------- | ------------------------- | ---- | ---------------- | 4171e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4172e41f4b71Sopenharmony_ci 4173e41f4b71Sopenharmony_ci**返回值:** 4174e41f4b71Sopenharmony_ci 4175e41f4b71Sopenharmony_ci| 类型 | 说明 | 4176e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------- | 4177e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回设备列表。 | 4178e41f4b71Sopenharmony_ci 4179e41f4b71Sopenharmony_ci**错误码:** 4180e41f4b71Sopenharmony_ci 4181e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4182e41f4b71Sopenharmony_ci 4183e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4184e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4185e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4186e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4187e41f4b71Sopenharmony_ci 4188e41f4b71Sopenharmony_ci**示例:** 4189e41f4b71Sopenharmony_ci 4190e41f4b71Sopenharmony_ci```ts 4191e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4192e41f4b71Sopenharmony_ci 4193e41f4b71Sopenharmony_citry { 4194e41f4b71Sopenharmony_ci let data: audio.AudioDeviceDescriptors = audioRoutingManager.getDevicesSync(audio.DeviceFlag.OUTPUT_DEVICES_FLAG); 4195e41f4b71Sopenharmony_ci console.info(`Indicate that the device list is obtained ${data}`); 4196e41f4b71Sopenharmony_ci} catch (err) { 4197e41f4b71Sopenharmony_ci let error = err as BusinessError; 4198e41f4b71Sopenharmony_ci console.error(`Failed to obtain the device list. ${error}`); 4199e41f4b71Sopenharmony_ci} 4200e41f4b71Sopenharmony_ci``` 4201e41f4b71Sopenharmony_ci 4202e41f4b71Sopenharmony_ci### on('deviceChange')<sup>9+</sup> 4203e41f4b71Sopenharmony_ci 4204e41f4b71Sopenharmony_cion(type: 'deviceChange', deviceFlag: DeviceFlag, callback: Callback<DeviceChangeAction\>): void 4205e41f4b71Sopenharmony_ci 4206e41f4b71Sopenharmony_ci监听音频设备连接变化事件(当音频设备连接状态发生变化时触发),使用callback方式返回结果。 4207e41f4b71Sopenharmony_ci 4208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4209e41f4b71Sopenharmony_ci 4210e41f4b71Sopenharmony_ci**参数:** 4211e41f4b71Sopenharmony_ci 4212e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4213e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- |:------------------------| 4214e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'deviceChange'。 | 4215e41f4b71Sopenharmony_ci| deviceFlag | [DeviceFlag](#deviceflag) | 是 | 设备类型的flag。 | 4216e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](#devicechangeaction)\> | 是 | 回调函数,返回设备更新详情。 | 4217e41f4b71Sopenharmony_ci 4218e41f4b71Sopenharmony_ci**错误码:** 4219e41f4b71Sopenharmony_ci 4220e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4221e41f4b71Sopenharmony_ci 4222e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4223e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4224e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4225e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4226e41f4b71Sopenharmony_ci 4227e41f4b71Sopenharmony_ci**示例:** 4228e41f4b71Sopenharmony_ci 4229e41f4b71Sopenharmony_ci```ts 4230e41f4b71Sopenharmony_ciaudioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => { 4231e41f4b71Sopenharmony_ci console.info('device change type : ' + deviceChanged.type); 4232e41f4b71Sopenharmony_ci console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length); 4233e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); 4234e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); 4235e41f4b71Sopenharmony_ci}); 4236e41f4b71Sopenharmony_ci``` 4237e41f4b71Sopenharmony_ci 4238e41f4b71Sopenharmony_ci### off('deviceChange')<sup>9+</sup> 4239e41f4b71Sopenharmony_ci 4240e41f4b71Sopenharmony_cioff(type: 'deviceChange', callback?: Callback<DeviceChangeAction\>): void 4241e41f4b71Sopenharmony_ci 4242e41f4b71Sopenharmony_ci取消监听音频设备连接变化事件,使用callback方式返回结果。 4243e41f4b71Sopenharmony_ci 4244e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4245e41f4b71Sopenharmony_ci 4246e41f4b71Sopenharmony_ci**参数:** 4247e41f4b71Sopenharmony_ci 4248e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4249e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 4250e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'deviceChange'。 | 4251e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](#devicechangeaction)> | 否 | 回调函数,返回设备更新详情。 | 4252e41f4b71Sopenharmony_ci 4253e41f4b71Sopenharmony_ci**错误码:** 4254e41f4b71Sopenharmony_ci 4255e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4256e41f4b71Sopenharmony_ci 4257e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4258e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4259e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4260e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4261e41f4b71Sopenharmony_ci 4262e41f4b71Sopenharmony_ci**示例:** 4263e41f4b71Sopenharmony_ci 4264e41f4b71Sopenharmony_ci```ts 4265e41f4b71Sopenharmony_ci// 取消该事件的所有监听 4266e41f4b71Sopenharmony_ciaudioRoutingManager.off('deviceChange'); 4267e41f4b71Sopenharmony_ci 4268e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 4269e41f4b71Sopenharmony_cilet deviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => { 4270e41f4b71Sopenharmony_ci console.info('device change type : ' + deviceChanged.type); 4271e41f4b71Sopenharmony_ci console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length); 4272e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); 4273e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); 4274e41f4b71Sopenharmony_ci}; 4275e41f4b71Sopenharmony_ci 4276e41f4b71Sopenharmony_ciaudioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, deviceChangeCallback); 4277e41f4b71Sopenharmony_ci 4278e41f4b71Sopenharmony_ciaudioRoutingManager.off('deviceChange', deviceChangeCallback); 4279e41f4b71Sopenharmony_ci``` 4280e41f4b71Sopenharmony_ci 4281e41f4b71Sopenharmony_ci### setCommunicationDevice<sup>9+</sup> 4282e41f4b71Sopenharmony_ci 4283e41f4b71Sopenharmony_cisetCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean, callback: AsyncCallback<void>): void 4284e41f4b71Sopenharmony_ci 4285e41f4b71Sopenharmony_ci设置通信设备激活状态,使用callback方式异步返回结果。 4286e41f4b71Sopenharmony_ci 4287e41f4b71Sopenharmony_ci该接口由于功能设计变化,将在后续版本废弃,不建议开发者使用。 4288e41f4b71Sopenharmony_ci 4289e41f4b71Sopenharmony_ci推荐开发者使用AVSession提供的[设备切换组件](../../media/avsession/using-switch-call-devices.md),实现通话设备切换。 4290e41f4b71Sopenharmony_ci 4291e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 4292e41f4b71Sopenharmony_ci 4293e41f4b71Sopenharmony_ci**参数:** 4294e41f4b71Sopenharmony_ci 4295e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4296e41f4b71Sopenharmony_ci| ---------- | ------------------------------------- | ---- |-------------------------| 4297e41f4b71Sopenharmony_ci| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 音频设备类型。 | 4298e41f4b71Sopenharmony_ci| active | boolean | 是 | 设备激活状态,true激活,false未激活。 | 4299e41f4b71Sopenharmony_ci| callback | AsyncCallback<void> | 是 | 回调函数。当设置通信设备激活状态成功,err为undefined,否则为错误对象。 | 4300e41f4b71Sopenharmony_ci 4301e41f4b71Sopenharmony_ci**示例:** 4302e41f4b71Sopenharmony_ci 4303e41f4b71Sopenharmony_ci```ts 4304e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4305e41f4b71Sopenharmony_ci 4306e41f4b71Sopenharmony_ciaudioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true, (err: BusinessError) => { 4307e41f4b71Sopenharmony_ci if (err) { 4308e41f4b71Sopenharmony_ci console.error(`Failed to set the active status of the device. ${err}`); 4309e41f4b71Sopenharmony_ci return; 4310e41f4b71Sopenharmony_ci } 4311e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the device is set to the active status.'); 4312e41f4b71Sopenharmony_ci}); 4313e41f4b71Sopenharmony_ci``` 4314e41f4b71Sopenharmony_ci 4315e41f4b71Sopenharmony_ci### getAvailableDevices<sup>12+</sup> 4316e41f4b71Sopenharmony_ci 4317e41f4b71Sopenharmony_cigetAvailableDevices(deviceUsage: DeviceUsage): AudioDeviceDescriptors 4318e41f4b71Sopenharmony_ci 4319e41f4b71Sopenharmony_ci获取音频可选设备列表,同步返回结果。 4320e41f4b71Sopenharmony_ci 4321e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4322e41f4b71Sopenharmony_ci 4323e41f4b71Sopenharmony_ci**参数:** 4324e41f4b71Sopenharmony_ci 4325e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4326e41f4b71Sopenharmony_ci| ---------- | ------------------------- | ---- | ---------------- | 4327e41f4b71Sopenharmony_ci| deviceUsage| [DeviceUsage](#deviceusage12) | 是 | 设备的usage。 | 4328e41f4b71Sopenharmony_ci 4329e41f4b71Sopenharmony_ci**返回值:** 4330e41f4b71Sopenharmony_ci 4331e41f4b71Sopenharmony_ci| 类型 | 说明 | 4332e41f4b71Sopenharmony_ci| ------------------------------------------------------------ | ------------------------- | 4333e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](js-apis-audio.md#audiodevicedescriptors) | 返回设备列表。 | 4334e41f4b71Sopenharmony_ci 4335e41f4b71Sopenharmony_ci**错误码:** 4336e41f4b71Sopenharmony_ci 4337e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4338e41f4b71Sopenharmony_ci 4339e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4340e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4341e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4342e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4343e41f4b71Sopenharmony_ci 4344e41f4b71Sopenharmony_ci**示例:** 4345e41f4b71Sopenharmony_ci 4346e41f4b71Sopenharmony_ci```ts 4347e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4348e41f4b71Sopenharmony_ci 4349e41f4b71Sopenharmony_citry { 4350e41f4b71Sopenharmony_ci let data: audio.AudioDeviceDescriptors = audioRoutingManager.getAvailableDevices(audio.DeviceUsage.MEDIA_OUTPUT_DEVICES); 4351e41f4b71Sopenharmony_ci console.info(`Indicate that the device list is obtained ${data}`); 4352e41f4b71Sopenharmony_ci} catch (err) { 4353e41f4b71Sopenharmony_ci let error = err as BusinessError; 4354e41f4b71Sopenharmony_ci console.error(`Failed to obtain the device list. ${error}`); 4355e41f4b71Sopenharmony_ci} 4356e41f4b71Sopenharmony_ci``` 4357e41f4b71Sopenharmony_ci 4358e41f4b71Sopenharmony_ci### on('availableDeviceChange')<sup>12+</sup> 4359e41f4b71Sopenharmony_ci 4360e41f4b71Sopenharmony_cion(type: 'availableDeviceChange', deviceUsage: DeviceUsage, callback: Callback<DeviceChangeAction\>): void 4361e41f4b71Sopenharmony_ci 4362e41f4b71Sopenharmony_ci监听音频可选设备连接变化事件(当音频可选设备连接状态发生变化时触发),使用callback方式返回结果。 4363e41f4b71Sopenharmony_ci 4364e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4365e41f4b71Sopenharmony_ci 4366e41f4b71Sopenharmony_ci**参数:** 4367e41f4b71Sopenharmony_ci 4368e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4369e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 4370e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'availableDeviceChange'。 | 4371e41f4b71Sopenharmony_ci| deviceUsage | [DeviceUsage](#deviceusage12) | 是 | 设备的usage。 | 4372e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](js-apis-audio.md#devicechangeaction)\> | 是 | 回调函数,返回设备更新详情。 | 4373e41f4b71Sopenharmony_ci 4374e41f4b71Sopenharmony_ci**错误码:** 4375e41f4b71Sopenharmony_ci 4376e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4377e41f4b71Sopenharmony_ci 4378e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4379e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4380e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4381e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4382e41f4b71Sopenharmony_ci 4383e41f4b71Sopenharmony_ci**示例:** 4384e41f4b71Sopenharmony_ci 4385e41f4b71Sopenharmony_ci```ts 4386e41f4b71Sopenharmony_ciaudioRoutingManager.on('availableDeviceChange', audio.DeviceUsage.MEDIA_OUTPUT_DEVICES, (deviceChanged: audio.DeviceChangeAction) => { 4387e41f4b71Sopenharmony_ci console.info('device change type : ' + deviceChanged.type); 4388e41f4b71Sopenharmony_ci console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length); 4389e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); 4390e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); 4391e41f4b71Sopenharmony_ci}); 4392e41f4b71Sopenharmony_ci``` 4393e41f4b71Sopenharmony_ci 4394e41f4b71Sopenharmony_ci### off('availableDeviceChange')<sup>12+</sup> 4395e41f4b71Sopenharmony_ci 4396e41f4b71Sopenharmony_cioff(type: 'availableDeviceChange', callback?: Callback<DeviceChangeAction\>): void 4397e41f4b71Sopenharmony_ci 4398e41f4b71Sopenharmony_ci取消监听音频可选设备连接变化事件,使用callback方式返回结果。 4399e41f4b71Sopenharmony_ci 4400e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4401e41f4b71Sopenharmony_ci 4402e41f4b71Sopenharmony_ci**参数:** 4403e41f4b71Sopenharmony_ci 4404e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4405e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 4406e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'availableDeviceChange'。 | 4407e41f4b71Sopenharmony_ci| callback | Callback<[DeviceChangeAction](js-apis-audio.md#devicechangeaction)> | 否 | 回调函数,返回可选设备更新详情。 | 4408e41f4b71Sopenharmony_ci 4409e41f4b71Sopenharmony_ci**错误码:** 4410e41f4b71Sopenharmony_ci 4411e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4412e41f4b71Sopenharmony_ci 4413e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4414e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4415e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4416e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4417e41f4b71Sopenharmony_ci 4418e41f4b71Sopenharmony_ci**示例:** 4419e41f4b71Sopenharmony_ci 4420e41f4b71Sopenharmony_ci```ts 4421e41f4b71Sopenharmony_ci// 取消该事件的所有监听 4422e41f4b71Sopenharmony_ciaudioRoutingManager.off('availableDeviceChange'); 4423e41f4b71Sopenharmony_ci 4424e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 4425e41f4b71Sopenharmony_cilet availableDeviceChangeCallback = (deviceChanged: audio.DeviceChangeAction) => { 4426e41f4b71Sopenharmony_ci console.info('device change type : ' + deviceChanged.type); 4427e41f4b71Sopenharmony_ci console.info('device descriptor size : ' + deviceChanged.deviceDescriptors.length); 4428e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceRole); 4429e41f4b71Sopenharmony_ci console.info('device change descriptor : ' + deviceChanged.deviceDescriptors[0].deviceType); 4430e41f4b71Sopenharmony_ci}; 4431e41f4b71Sopenharmony_ci 4432e41f4b71Sopenharmony_ciaudioRoutingManager.on('availableDeviceChange', audio.DeviceUsage.MEDIA_OUTPUT_DEVICES, availableDeviceChangeCallback); 4433e41f4b71Sopenharmony_ci 4434e41f4b71Sopenharmony_ciaudioRoutingManager.off('availableDeviceChange', availableDeviceChangeCallback); 4435e41f4b71Sopenharmony_ci``` 4436e41f4b71Sopenharmony_ci 4437e41f4b71Sopenharmony_ci### setCommunicationDevice<sup>9+</sup> 4438e41f4b71Sopenharmony_ci 4439e41f4b71Sopenharmony_cisetCommunicationDevice(deviceType: CommunicationDeviceType, active: boolean): Promise<void> 4440e41f4b71Sopenharmony_ci 4441e41f4b71Sopenharmony_ci设置通信设备激活状态,使用Promise方式异步返回结果。 4442e41f4b71Sopenharmony_ci 4443e41f4b71Sopenharmony_ci该接口由于功能设计变化,将在后续版本废弃,不建议开发者使用。 4444e41f4b71Sopenharmony_ci 4445e41f4b71Sopenharmony_ci推荐开发者使用AVSession提供的[设备切换组件](../../media/avsession/using-switch-call-devices.md),实现通话设备切换。 4446e41f4b71Sopenharmony_ci 4447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 4448e41f4b71Sopenharmony_ci 4449e41f4b71Sopenharmony_ci**参数:** 4450e41f4b71Sopenharmony_ci 4451e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4452e41f4b71Sopenharmony_ci| ---------- | ----------------------------------------------------- | ---- | ------------------ | 4453e41f4b71Sopenharmony_ci| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4454e41f4b71Sopenharmony_ci| active | boolean | 是 | 设备激活状态,true激活,false未激活。 | 4455e41f4b71Sopenharmony_ci 4456e41f4b71Sopenharmony_ci**返回值:** 4457e41f4b71Sopenharmony_ci 4458e41f4b71Sopenharmony_ci| 类型 | 说明 | 4459e41f4b71Sopenharmony_ci| ------------------- | ------------------------------- | 4460e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 4461e41f4b71Sopenharmony_ci 4462e41f4b71Sopenharmony_ci**示例:** 4463e41f4b71Sopenharmony_ci 4464e41f4b71Sopenharmony_ci```ts 4465e41f4b71Sopenharmony_ciaudioRoutingManager.setCommunicationDevice(audio.CommunicationDeviceType.SPEAKER, true).then(() => { 4466e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the device is set to the active status.'); 4467e41f4b71Sopenharmony_ci}); 4468e41f4b71Sopenharmony_ci``` 4469e41f4b71Sopenharmony_ci 4470e41f4b71Sopenharmony_ci### isCommunicationDeviceActive<sup>9+</sup> 4471e41f4b71Sopenharmony_ci 4472e41f4b71Sopenharmony_ciisCommunicationDeviceActive(deviceType: CommunicationDeviceType, callback: AsyncCallback<boolean>): void 4473e41f4b71Sopenharmony_ci 4474e41f4b71Sopenharmony_ci获取指定通信设备的激活状态,使用callback方式异步返回结果。 4475e41f4b71Sopenharmony_ci 4476e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 4477e41f4b71Sopenharmony_ci 4478e41f4b71Sopenharmony_ci**参数:** 4479e41f4b71Sopenharmony_ci 4480e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4481e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------------------- | ---- | ------------------------ | 4482e41f4b71Sopenharmony_ci| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4483e41f4b71Sopenharmony_ci| callback | AsyncCallback<boolean> | 是 | 回调函数。当获取指定通信设备的激活状态成功,err为undefined,data为true为激活,false为未激活;否则为错误对象。 | 4484e41f4b71Sopenharmony_ci 4485e41f4b71Sopenharmony_ci**示例:** 4486e41f4b71Sopenharmony_ci 4487e41f4b71Sopenharmony_ci```ts 4488e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4489e41f4b71Sopenharmony_ci 4490e41f4b71Sopenharmony_ciaudioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER, (err: BusinessError, value: boolean) => { 4491e41f4b71Sopenharmony_ci if (err) { 4492e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the device. ${err}`); 4493e41f4b71Sopenharmony_ci return; 4494e41f4b71Sopenharmony_ci } 4495e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the active status of the device is obtained.'); 4496e41f4b71Sopenharmony_ci}); 4497e41f4b71Sopenharmony_ci``` 4498e41f4b71Sopenharmony_ci 4499e41f4b71Sopenharmony_ci### isCommunicationDeviceActive<sup>9+</sup> 4500e41f4b71Sopenharmony_ci 4501e41f4b71Sopenharmony_ciisCommunicationDeviceActive(deviceType: CommunicationDeviceType): Promise<boolean> 4502e41f4b71Sopenharmony_ci 4503e41f4b71Sopenharmony_ci获取指定通信设备的激活状态,使用Promise方式异步返回结果。 4504e41f4b71Sopenharmony_ci 4505e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 4506e41f4b71Sopenharmony_ci 4507e41f4b71Sopenharmony_ci**参数:** 4508e41f4b71Sopenharmony_ci 4509e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4510e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------------------- | ---- | ------------------ | 4511e41f4b71Sopenharmony_ci| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4512e41f4b71Sopenharmony_ci 4513e41f4b71Sopenharmony_ci**返回值:** 4514e41f4b71Sopenharmony_ci 4515e41f4b71Sopenharmony_ci| Type | Description | 4516e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------- | 4517e41f4b71Sopenharmony_ci| Promise<boolean> | Promise对象,返回设备的激活状态,true激活,false未激活。 | 4518e41f4b71Sopenharmony_ci 4519e41f4b71Sopenharmony_ci**示例:** 4520e41f4b71Sopenharmony_ci 4521e41f4b71Sopenharmony_ci```ts 4522e41f4b71Sopenharmony_ciaudioRoutingManager.isCommunicationDeviceActive(audio.CommunicationDeviceType.SPEAKER).then((value: boolean) => { 4523e41f4b71Sopenharmony_ci console.info(`Promise returned to indicate that the active status of the device is obtained ${value}.`); 4524e41f4b71Sopenharmony_ci}); 4525e41f4b71Sopenharmony_ci``` 4526e41f4b71Sopenharmony_ci 4527e41f4b71Sopenharmony_ci### isCommunicationDeviceActiveSync<sup>10+</sup> 4528e41f4b71Sopenharmony_ci 4529e41f4b71Sopenharmony_ciisCommunicationDeviceActiveSync(deviceType: CommunicationDeviceType): boolean 4530e41f4b71Sopenharmony_ci 4531e41f4b71Sopenharmony_ci获取指定通信设备的激活状态,同步返回结果。 4532e41f4b71Sopenharmony_ci 4533e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Communication 4534e41f4b71Sopenharmony_ci 4535e41f4b71Sopenharmony_ci**参数:** 4536e41f4b71Sopenharmony_ci 4537e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4538e41f4b71Sopenharmony_ci| ---------- | ---------------------------------------------------- | ---- | ------------------ | 4539e41f4b71Sopenharmony_ci| deviceType | [CommunicationDeviceType](#communicationdevicetype9) | 是 | 活跃音频设备类型。 | 4540e41f4b71Sopenharmony_ci 4541e41f4b71Sopenharmony_ci**返回值:** 4542e41f4b71Sopenharmony_ci 4543e41f4b71Sopenharmony_ci| Type | Description | 4544e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------- | 4545e41f4b71Sopenharmony_ci| boolean | 返回设备的激活状态,true激活,false未激活。 | 4546e41f4b71Sopenharmony_ci 4547e41f4b71Sopenharmony_ci**错误码:** 4548e41f4b71Sopenharmony_ci 4549e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4550e41f4b71Sopenharmony_ci 4551e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4552e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4553e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4554e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4555e41f4b71Sopenharmony_ci 4556e41f4b71Sopenharmony_ci**示例:** 4557e41f4b71Sopenharmony_ci 4558e41f4b71Sopenharmony_ci```ts 4559e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4560e41f4b71Sopenharmony_ci 4561e41f4b71Sopenharmony_citry { 4562e41f4b71Sopenharmony_ci let value: boolean = audioRoutingManager.isCommunicationDeviceActiveSync(audio.CommunicationDeviceType.SPEAKER); 4563e41f4b71Sopenharmony_ci console.info(`Indicate that the active status of the device is obtained ${value}.`); 4564e41f4b71Sopenharmony_ci} catch (err) { 4565e41f4b71Sopenharmony_ci let error = err as BusinessError; 4566e41f4b71Sopenharmony_ci console.error(`Failed to obtain the active status of the device ${error}.`); 4567e41f4b71Sopenharmony_ci} 4568e41f4b71Sopenharmony_ci``` 4569e41f4b71Sopenharmony_ci 4570e41f4b71Sopenharmony_ci### getPreferOutputDeviceForRendererInfo<sup>10+</sup> 4571e41f4b71Sopenharmony_ci 4572e41f4b71Sopenharmony_cigetPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void 4573e41f4b71Sopenharmony_ci 4574e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输出设备,使用callback方式异步返回结果。 4575e41f4b71Sopenharmony_ci 4576e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4577e41f4b71Sopenharmony_ci 4578e41f4b71Sopenharmony_ci**参数:** 4579e41f4b71Sopenharmony_ci 4580e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4581e41f4b71Sopenharmony_ci| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4582e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 4583e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数。当获取优先级最高的输出设备成功,err为undefined,data为获取到的优先级最高的输出设备信息;否则为错误对象。 | 4584e41f4b71Sopenharmony_ci 4585e41f4b71Sopenharmony_ci**错误码:** 4586e41f4b71Sopenharmony_ci 4587e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4588e41f4b71Sopenharmony_ci 4589e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4590e41f4b71Sopenharmony_ci| ------- |--------------------------------------------------| 4591e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4592e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by callback. | 4593e41f4b71Sopenharmony_ci| 6800301 | System error. Return by callback. | 4594e41f4b71Sopenharmony_ci 4595e41f4b71Sopenharmony_ci**示例:** 4596e41f4b71Sopenharmony_ci```ts 4597e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4598e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4599e41f4b71Sopenharmony_ci 4600e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 4601e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 4602e41f4b71Sopenharmony_ci rendererFlags : 0 4603e41f4b71Sopenharmony_ci}; 4604e41f4b71Sopenharmony_ci 4605e41f4b71Sopenharmony_ciasync function getPreferOutputDevice() { 4606e41f4b71Sopenharmony_ci audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => { 4607e41f4b71Sopenharmony_ci if (err) { 4608e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${err}`); 4609e41f4b71Sopenharmony_ci } else { 4610e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4611e41f4b71Sopenharmony_ci } 4612e41f4b71Sopenharmony_ci }); 4613e41f4b71Sopenharmony_ci} 4614e41f4b71Sopenharmony_ci``` 4615e41f4b71Sopenharmony_ci 4616e41f4b71Sopenharmony_ci### getPreferOutputDeviceForRendererInfo<sup>10+</sup> 4617e41f4b71Sopenharmony_cigetPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors> 4618e41f4b71Sopenharmony_ci 4619e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输出设备,使用Promise方式异步返回结果。 4620e41f4b71Sopenharmony_ci 4621e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4622e41f4b71Sopenharmony_ci 4623e41f4b71Sopenharmony_ci**参数:** 4624e41f4b71Sopenharmony_ci 4625e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4626e41f4b71Sopenharmony_ci| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 4627e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 4628e41f4b71Sopenharmony_ci 4629e41f4b71Sopenharmony_ci**返回值:** 4630e41f4b71Sopenharmony_ci 4631e41f4b71Sopenharmony_ci| 类型 | 说明 | 4632e41f4b71Sopenharmony_ci| --------------------- | --------------------------- | 4633e41f4b71Sopenharmony_ci| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise对象,返回优先级最高的输出设备信息。 | 4634e41f4b71Sopenharmony_ci 4635e41f4b71Sopenharmony_ci**错误码:** 4636e41f4b71Sopenharmony_ci 4637e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4638e41f4b71Sopenharmony_ci 4639e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4640e41f4b71Sopenharmony_ci| ------- |-------------------------------------------------| 4641e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4642e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 4643e41f4b71Sopenharmony_ci| 6800301 | System error. Return by promise. | 4644e41f4b71Sopenharmony_ci 4645e41f4b71Sopenharmony_ci**示例:** 4646e41f4b71Sopenharmony_ci 4647e41f4b71Sopenharmony_ci```ts 4648e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4649e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4650e41f4b71Sopenharmony_ci 4651e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 4652e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 4653e41f4b71Sopenharmony_ci rendererFlags : 0 4654e41f4b71Sopenharmony_ci}; 4655e41f4b71Sopenharmony_ci 4656e41f4b71Sopenharmony_ciasync function getPreferOutputDevice() { 4657e41f4b71Sopenharmony_ci audioRoutingManager.getPreferOutputDeviceForRendererInfo(rendererInfo).then((desc: audio.AudioDeviceDescriptors) => { 4658e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4659e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 4660e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${err}`); 4661e41f4b71Sopenharmony_ci }) 4662e41f4b71Sopenharmony_ci} 4663e41f4b71Sopenharmony_ci``` 4664e41f4b71Sopenharmony_ci 4665e41f4b71Sopenharmony_ci### getPreferredOutputDeviceForRendererInfoSync<sup>10+</sup> 4666e41f4b71Sopenharmony_cigetPreferredOutputDeviceForRendererInfoSync(rendererInfo: AudioRendererInfo): AudioDeviceDescriptors 4667e41f4b71Sopenharmony_ci 4668e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输出设备,同步返回结果。 4669e41f4b71Sopenharmony_ci 4670e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4671e41f4b71Sopenharmony_ci 4672e41f4b71Sopenharmony_ci**参数:** 4673e41f4b71Sopenharmony_ci 4674e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4675e41f4b71Sopenharmony_ci| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 4676e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 4677e41f4b71Sopenharmony_ci 4678e41f4b71Sopenharmony_ci**返回值:** 4679e41f4b71Sopenharmony_ci 4680e41f4b71Sopenharmony_ci| 类型 | 说明 | 4681e41f4b71Sopenharmony_ci| --------------------- | --------------------------- | 4682e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回优先级最高的输出设备信息。 | 4683e41f4b71Sopenharmony_ci 4684e41f4b71Sopenharmony_ci**错误码:** 4685e41f4b71Sopenharmony_ci 4686e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4687e41f4b71Sopenharmony_ci 4688e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4689e41f4b71Sopenharmony_ci| ------- |--------------------------| 4690e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4691e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4692e41f4b71Sopenharmony_ci 4693e41f4b71Sopenharmony_ci**示例:** 4694e41f4b71Sopenharmony_ci 4695e41f4b71Sopenharmony_ci```ts 4696e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4697e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4698e41f4b71Sopenharmony_ci 4699e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 4700e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 4701e41f4b71Sopenharmony_ci rendererFlags : 0 4702e41f4b71Sopenharmony_ci}; 4703e41f4b71Sopenharmony_ci 4704e41f4b71Sopenharmony_citry { 4705e41f4b71Sopenharmony_ci let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredOutputDeviceForRendererInfoSync(rendererInfo); 4706e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4707e41f4b71Sopenharmony_ci} catch (err) { 4708e41f4b71Sopenharmony_ci let error = err as BusinessError; 4709e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${error}`); 4710e41f4b71Sopenharmony_ci} 4711e41f4b71Sopenharmony_ci``` 4712e41f4b71Sopenharmony_ci 4713e41f4b71Sopenharmony_ci### on('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup> 4714e41f4b71Sopenharmony_ci 4715e41f4b71Sopenharmony_cion(type: 'preferOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors\>): void 4716e41f4b71Sopenharmony_ci 4717e41f4b71Sopenharmony_ci监听最高优先级输出设备变化事件(当最高优先级输出设备发生变化时触发),使用callback方式返回结果。 4718e41f4b71Sopenharmony_ci 4719e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4720e41f4b71Sopenharmony_ci 4721e41f4b71Sopenharmony_ci**参数:** 4722e41f4b71Sopenharmony_ci 4723e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4724e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- |:--------------------------------------------------------| 4725e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'preferOutputDeviceChangeForRendererInfo' | 4726e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 表示渲染器信息。 | 4727e41f4b71Sopenharmony_ci| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是 | 回调函数,返回优先级最高的输出设备信息。 | 4728e41f4b71Sopenharmony_ci 4729e41f4b71Sopenharmony_ci**错误码:** 4730e41f4b71Sopenharmony_ci 4731e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4732e41f4b71Sopenharmony_ci 4733e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4734e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4735e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4736e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4737e41f4b71Sopenharmony_ci 4738e41f4b71Sopenharmony_ci**示例:** 4739e41f4b71Sopenharmony_ci 4740e41f4b71Sopenharmony_ci```ts 4741e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4742e41f4b71Sopenharmony_ci 4743e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 4744e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 4745e41f4b71Sopenharmony_ci rendererFlags : 0 4746e41f4b71Sopenharmony_ci}; 4747e41f4b71Sopenharmony_ci 4748e41f4b71Sopenharmony_ciaudioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, (desc: audio.AudioDeviceDescriptors) => { 4749e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4750e41f4b71Sopenharmony_ci}); 4751e41f4b71Sopenharmony_ci``` 4752e41f4b71Sopenharmony_ci 4753e41f4b71Sopenharmony_ci### off('preferOutputDeviceChangeForRendererInfo')<sup>10+</sup> 4754e41f4b71Sopenharmony_ci 4755e41f4b71Sopenharmony_cioff(type: 'preferOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors\>): void 4756e41f4b71Sopenharmony_ci 4757e41f4b71Sopenharmony_ci取消监听最高优先级输出音频设备变化事件,使用callback方式返回结果。 4758e41f4b71Sopenharmony_ci 4759e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4760e41f4b71Sopenharmony_ci 4761e41f4b71Sopenharmony_ci**参数:** 4762e41f4b71Sopenharmony_ci 4763e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4764e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 4765e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'preferOutputDeviceChangeForRendererInfo'。 | 4766e41f4b71Sopenharmony_ci| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 回调函数,返回优先级最高的输出设备信息。 | 4767e41f4b71Sopenharmony_ci 4768e41f4b71Sopenharmony_ci**错误码:** 4769e41f4b71Sopenharmony_ci 4770e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4771e41f4b71Sopenharmony_ci 4772e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4773e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4774e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4775e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4776e41f4b71Sopenharmony_ci 4777e41f4b71Sopenharmony_ci**示例:** 4778e41f4b71Sopenharmony_ci 4779e41f4b71Sopenharmony_ci```ts 4780e41f4b71Sopenharmony_ci// 取消该事件的所有监听 4781e41f4b71Sopenharmony_ciaudioRoutingManager.off('preferOutputDeviceChangeForRendererInfo'); 4782e41f4b71Sopenharmony_ci 4783e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 4784e41f4b71Sopenharmony_cilet preferOutputDeviceChangeForRendererInfoCallback = (desc: audio.AudioDeviceDescriptors) => { 4785e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4786e41f4b71Sopenharmony_ci}; 4787e41f4b71Sopenharmony_cilet rendererInfo: audio.AudioRendererInfo = { 4788e41f4b71Sopenharmony_ci usage : audio.StreamUsage.STREAM_USAGE_MUSIC, 4789e41f4b71Sopenharmony_ci rendererFlags : 0 4790e41f4b71Sopenharmony_ci}; 4791e41f4b71Sopenharmony_ci 4792e41f4b71Sopenharmony_ciaudioRoutingManager.on('preferOutputDeviceChangeForRendererInfo', rendererInfo, preferOutputDeviceChangeForRendererInfoCallback); 4793e41f4b71Sopenharmony_ci 4794e41f4b71Sopenharmony_ciaudioRoutingManager.off('preferOutputDeviceChangeForRendererInfo', preferOutputDeviceChangeForRendererInfoCallback); 4795e41f4b71Sopenharmony_ci``` 4796e41f4b71Sopenharmony_ci 4797e41f4b71Sopenharmony_ci### getPreferredInputDeviceForCapturerInfo<sup>10+</sup> 4798e41f4b71Sopenharmony_ci 4799e41f4b71Sopenharmony_cigetPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void 4800e41f4b71Sopenharmony_ci 4801e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输入设备,使用callback方式异步返回结果。 4802e41f4b71Sopenharmony_ci 4803e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4804e41f4b71Sopenharmony_ci 4805e41f4b71Sopenharmony_ci**参数:** 4806e41f4b71Sopenharmony_ci 4807e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4808e41f4b71Sopenharmony_ci| --------------------------- | ------------------------------------------------------------ | ---- | ------------------------- | 4809e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 4810e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数。当获取优先级最高的输入设备成功,err为undefined,data为获取到的优先级最高的输入设备信息;否则为错误对象。 | 4811e41f4b71Sopenharmony_ci 4812e41f4b71Sopenharmony_ci**错误码:** 4813e41f4b71Sopenharmony_ci 4814e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4815e41f4b71Sopenharmony_ci 4816e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4817e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4818e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4819e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by callback.| 4820e41f4b71Sopenharmony_ci| 6800301 | System error. Return by callback. | 4821e41f4b71Sopenharmony_ci 4822e41f4b71Sopenharmony_ci**示例:** 4823e41f4b71Sopenharmony_ci```ts 4824e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4825e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4826e41f4b71Sopenharmony_ci 4827e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 4828e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 4829e41f4b71Sopenharmony_ci capturerFlags: 0 4830e41f4b71Sopenharmony_ci}; 4831e41f4b71Sopenharmony_ci 4832e41f4b71Sopenharmony_ciaudioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo, (err: BusinessError, desc: audio.AudioDeviceDescriptors) => { 4833e41f4b71Sopenharmony_ci if (err) { 4834e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${err}`); 4835e41f4b71Sopenharmony_ci } else { 4836e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4837e41f4b71Sopenharmony_ci } 4838e41f4b71Sopenharmony_ci}); 4839e41f4b71Sopenharmony_ci``` 4840e41f4b71Sopenharmony_ci 4841e41f4b71Sopenharmony_ci### getPreferredInputDeviceForCapturerInfo<sup>10+</sup> 4842e41f4b71Sopenharmony_ci 4843e41f4b71Sopenharmony_cigetPreferredInputDeviceForCapturerInfo(capturerInfo: AudioCapturerInfo): Promise<AudioDeviceDescriptors> 4844e41f4b71Sopenharmony_ci 4845e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输入设备,使用Promise方式异步返回结果。 4846e41f4b71Sopenharmony_ci 4847e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4848e41f4b71Sopenharmony_ci 4849e41f4b71Sopenharmony_ci**参数:** 4850e41f4b71Sopenharmony_ci 4851e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4852e41f4b71Sopenharmony_ci| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 4853e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 4854e41f4b71Sopenharmony_ci 4855e41f4b71Sopenharmony_ci**返回值:** 4856e41f4b71Sopenharmony_ci 4857e41f4b71Sopenharmony_ci| 类型 | 说明 | 4858e41f4b71Sopenharmony_ci| --------------------- | --------------------------- | 4859e41f4b71Sopenharmony_ci| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)> | Promise对象,返回优先级最高的输入设备信息。 | 4860e41f4b71Sopenharmony_ci 4861e41f4b71Sopenharmony_ci**错误码:** 4862e41f4b71Sopenharmony_ci 4863e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4864e41f4b71Sopenharmony_ci 4865e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4866e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4867e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4868e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 4869e41f4b71Sopenharmony_ci| 6800301 | System error. Return by promise. | 4870e41f4b71Sopenharmony_ci 4871e41f4b71Sopenharmony_ci**示例:** 4872e41f4b71Sopenharmony_ci 4873e41f4b71Sopenharmony_ci```ts 4874e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4875e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4876e41f4b71Sopenharmony_ci 4877e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 4878e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 4879e41f4b71Sopenharmony_ci capturerFlags: 0 4880e41f4b71Sopenharmony_ci}; 4881e41f4b71Sopenharmony_ci 4882e41f4b71Sopenharmony_ciaudioRoutingManager.getPreferredInputDeviceForCapturerInfo(capturerInfo).then((desc: audio.AudioDeviceDescriptors) => { 4883e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4884e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 4885e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${err}`); 4886e41f4b71Sopenharmony_ci}); 4887e41f4b71Sopenharmony_ci``` 4888e41f4b71Sopenharmony_ci 4889e41f4b71Sopenharmony_ci### getPreferredInputDeviceForCapturerInfoSync<sup>10+</sup> 4890e41f4b71Sopenharmony_ci 4891e41f4b71Sopenharmony_cigetPreferredInputDeviceForCapturerInfoSync(capturerInfo: AudioCapturerInfo): AudioDeviceDescriptors 4892e41f4b71Sopenharmony_ci 4893e41f4b71Sopenharmony_ci根据音频信息,返回优先级最高的输入设备,同步返回结果。 4894e41f4b71Sopenharmony_ci 4895e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4896e41f4b71Sopenharmony_ci 4897e41f4b71Sopenharmony_ci**参数:** 4898e41f4b71Sopenharmony_ci 4899e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4900e41f4b71Sopenharmony_ci| ----------------------| ------------------------------------------------------------ | ---- | ------------------------- | 4901e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 4902e41f4b71Sopenharmony_ci 4903e41f4b71Sopenharmony_ci**返回值:** 4904e41f4b71Sopenharmony_ci 4905e41f4b71Sopenharmony_ci| 类型 | 说明 | 4906e41f4b71Sopenharmony_ci| --------------------- | --------------------------- | 4907e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回优先级最高的输入设备信息。 | 4908e41f4b71Sopenharmony_ci 4909e41f4b71Sopenharmony_ci**错误码:** 4910e41f4b71Sopenharmony_ci 4911e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4912e41f4b71Sopenharmony_ci 4913e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4914e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4915e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4916e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4917e41f4b71Sopenharmony_ci 4918e41f4b71Sopenharmony_ci**示例:** 4919e41f4b71Sopenharmony_ci 4920e41f4b71Sopenharmony_ci```ts 4921e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4922e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4923e41f4b71Sopenharmony_ci 4924e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 4925e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 4926e41f4b71Sopenharmony_ci capturerFlags: 0 4927e41f4b71Sopenharmony_ci}; 4928e41f4b71Sopenharmony_ci 4929e41f4b71Sopenharmony_citry { 4930e41f4b71Sopenharmony_ci let desc: audio.AudioDeviceDescriptors = audioRoutingManager.getPreferredInputDeviceForCapturerInfoSync(capturerInfo); 4931e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4932e41f4b71Sopenharmony_ci} catch (err) { 4933e41f4b71Sopenharmony_ci let error = err as BusinessError; 4934e41f4b71Sopenharmony_ci console.error(`Result ERROR: ${error}`); 4935e41f4b71Sopenharmony_ci} 4936e41f4b71Sopenharmony_ci``` 4937e41f4b71Sopenharmony_ci 4938e41f4b71Sopenharmony_ci### on('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup> 4939e41f4b71Sopenharmony_ci 4940e41f4b71Sopenharmony_cion(type: 'preferredInputDeviceChangeForCapturerInfo', capturerInfo: AudioCapturerInfo, callback: Callback<AudioDeviceDescriptors\>): void 4941e41f4b71Sopenharmony_ci 4942e41f4b71Sopenharmony_ci监听最高优先级输入设备变化事件(当最高优先级输入设备发生变化时触发),使用callback方式返回结果。 4943e41f4b71Sopenharmony_ci 4944e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4945e41f4b71Sopenharmony_ci 4946e41f4b71Sopenharmony_ci**参数:** 4947e41f4b71Sopenharmony_ci 4948e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4949e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :----------------------------------------- | 4950e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'preferredInputDeviceChangeForCapturerInfo' | 4951e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 表示采集器信息。 | 4952e41f4b71Sopenharmony_ci| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)\> | 是 | 回调函数,返回优先级最高的输入设备信息。 | 4953e41f4b71Sopenharmony_ci 4954e41f4b71Sopenharmony_ci**错误码:** 4955e41f4b71Sopenharmony_ci 4956e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4957e41f4b71Sopenharmony_ci 4958e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4959e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4960e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 4961e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 4962e41f4b71Sopenharmony_ci 4963e41f4b71Sopenharmony_ci**示例:** 4964e41f4b71Sopenharmony_ci 4965e41f4b71Sopenharmony_ci```ts 4966e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 4967e41f4b71Sopenharmony_ci 4968e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 4969e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 4970e41f4b71Sopenharmony_ci capturerFlags: 0 4971e41f4b71Sopenharmony_ci}; 4972e41f4b71Sopenharmony_ci 4973e41f4b71Sopenharmony_ciaudioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, (desc: audio.AudioDeviceDescriptors) => { 4974e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 4975e41f4b71Sopenharmony_ci}); 4976e41f4b71Sopenharmony_ci``` 4977e41f4b71Sopenharmony_ci 4978e41f4b71Sopenharmony_ci### off('preferredInputDeviceChangeForCapturerInfo')<sup>10+</sup> 4979e41f4b71Sopenharmony_ci 4980e41f4b71Sopenharmony_cioff(type: 'preferredInputDeviceChangeForCapturerInfo', callback?: Callback<AudioDeviceDescriptors\>): void 4981e41f4b71Sopenharmony_ci 4982e41f4b71Sopenharmony_ci取消监听最高优先级输入音频设备变化事件,使用callback方式返回结果。 4983e41f4b71Sopenharmony_ci 4984e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 4985e41f4b71Sopenharmony_ci 4986e41f4b71Sopenharmony_ci**参数:** 4987e41f4b71Sopenharmony_ci 4988e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4989e41f4b71Sopenharmony_ci| -------- | --------------------------------------------------- | ---- | ------------------------------------------ | 4990e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'preferredInputDeviceChangeForCapturerInfo' | 4991e41f4b71Sopenharmony_ci| callback | Callback<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 回调函数,返回优先级最高的输入设备信息。 | 4992e41f4b71Sopenharmony_ci 4993e41f4b71Sopenharmony_ci**错误码:** 4994e41f4b71Sopenharmony_ci 4995e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 4996e41f4b71Sopenharmony_ci 4997e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4998e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 4999e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 5000e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 5001e41f4b71Sopenharmony_ci 5002e41f4b71Sopenharmony_ci**示例:** 5003e41f4b71Sopenharmony_ci 5004e41f4b71Sopenharmony_ci```ts 5005e41f4b71Sopenharmony_ci// 取消该事件的所有监听 5006e41f4b71Sopenharmony_ciaudioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo'); 5007e41f4b71Sopenharmony_ci 5008e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 5009e41f4b71Sopenharmony_cilet preferredInputDeviceChangeForCapturerInfoCallback = (desc: audio.AudioDeviceDescriptors) => { 5010e41f4b71Sopenharmony_ci console.info(`device descriptor: ${desc}`); 5011e41f4b71Sopenharmony_ci}; 5012e41f4b71Sopenharmony_cilet capturerInfo: audio.AudioCapturerInfo = { 5013e41f4b71Sopenharmony_ci source: audio.SourceType.SOURCE_TYPE_MIC, 5014e41f4b71Sopenharmony_ci capturerFlags: 0 5015e41f4b71Sopenharmony_ci}; 5016e41f4b71Sopenharmony_ci 5017e41f4b71Sopenharmony_ciaudioRoutingManager.on('preferredInputDeviceChangeForCapturerInfo', capturerInfo, preferredInputDeviceChangeForCapturerInfoCallback); 5018e41f4b71Sopenharmony_ci 5019e41f4b71Sopenharmony_ciaudioRoutingManager.off('preferredInputDeviceChangeForCapturerInfo', preferredInputDeviceChangeForCapturerInfoCallback); 5020e41f4b71Sopenharmony_ci``` 5021e41f4b71Sopenharmony_ci 5022e41f4b71Sopenharmony_ci## AudioSessionManager<sup>12+</sup> 5023e41f4b71Sopenharmony_ci 5024e41f4b71Sopenharmony_ci音频会话管理。在使用AudioSessionManager的接口前,需要使用[getSessionManager](#getsessionmanager12)获取AudioSessionManager实例。 5025e41f4b71Sopenharmony_ci 5026e41f4b71Sopenharmony_ci### activateAudioSession<sup>12+</sup> 5027e41f4b71Sopenharmony_ci 5028e41f4b71Sopenharmony_ciactivateAudioSession(strategy: AudioSessionStrategy): Promise\<void> 5029e41f4b71Sopenharmony_ci 5030e41f4b71Sopenharmony_ci激活音频会话。使用Promise方式异步返回结果。 5031e41f4b71Sopenharmony_ci 5032e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5033e41f4b71Sopenharmony_ci 5034e41f4b71Sopenharmony_ci**参数:** 5035e41f4b71Sopenharmony_ci 5036e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5037e41f4b71Sopenharmony_ci| ------ |-------------------------------------------------| ---- | ------------ | 5038e41f4b71Sopenharmony_ci| strategy | [AudioSessionStrategy](#audiosessionstrategy12) | 是 | 音频会话策略。 | 5039e41f4b71Sopenharmony_ci 5040e41f4b71Sopenharmony_ci**返回值:** 5041e41f4b71Sopenharmony_ci 5042e41f4b71Sopenharmony_ci| 类型 | 说明 | 5043e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5044e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5045e41f4b71Sopenharmony_ci 5046e41f4b71Sopenharmony_ci**错误码:** 5047e41f4b71Sopenharmony_ci 5048e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5049e41f4b71Sopenharmony_ci 5050e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5051e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------| 5052e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types. | 5053e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed.| 5054e41f4b71Sopenharmony_ci| 6800301 | System error. Returned by promise. | 5055e41f4b71Sopenharmony_ci 5056e41f4b71Sopenharmony_ci**示例:** 5057e41f4b71Sopenharmony_ci 5058e41f4b71Sopenharmony_ci```ts 5059e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5060e41f4b71Sopenharmony_ci 5061e41f4b71Sopenharmony_cilet strategy: audio.AudioSessionStrategy = { 5062e41f4b71Sopenharmony_ci concurrencyMode: audio.AudioConcurrencyMode.CONCURRENCY_MIX_WITH_OTHERS 5063e41f4b71Sopenharmony_ci}; 5064e41f4b71Sopenharmony_ci 5065e41f4b71Sopenharmony_ciaudioSessionManager.activateAudioSession(strategy).then(() => { 5066e41f4b71Sopenharmony_ci console.info('activateAudioSession SUCCESS'); 5067e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5068e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5069e41f4b71Sopenharmony_ci}); 5070e41f4b71Sopenharmony_ci``` 5071e41f4b71Sopenharmony_ci 5072e41f4b71Sopenharmony_ci### deactivateAudioSession<sup>12+</sup> 5073e41f4b71Sopenharmony_ci 5074e41f4b71Sopenharmony_cideactivateAudioSession(): Promise\<void> 5075e41f4b71Sopenharmony_ci 5076e41f4b71Sopenharmony_ci停用音频会话。使用Promise方式异步返回结果。 5077e41f4b71Sopenharmony_ci 5078e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5079e41f4b71Sopenharmony_ci 5080e41f4b71Sopenharmony_ci**返回值:** 5081e41f4b71Sopenharmony_ci 5082e41f4b71Sopenharmony_ci| 类型 | 说明 | 5083e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5084e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5085e41f4b71Sopenharmony_ci 5086e41f4b71Sopenharmony_ci**错误码:** 5087e41f4b71Sopenharmony_ci 5088e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5089e41f4b71Sopenharmony_ci 5090e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5091e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------| 5092e41f4b71Sopenharmony_ci| 6800301 | System error. Returned by promise. | 5093e41f4b71Sopenharmony_ci 5094e41f4b71Sopenharmony_ci**示例:** 5095e41f4b71Sopenharmony_ci 5096e41f4b71Sopenharmony_ci```ts 5097e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5098e41f4b71Sopenharmony_ci 5099e41f4b71Sopenharmony_ciaudioSessionManager.deactivateAudioSession().then(() => { 5100e41f4b71Sopenharmony_ci console.info('deactivateAudioSession SUCCESS'); 5101e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5102e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5103e41f4b71Sopenharmony_ci}); 5104e41f4b71Sopenharmony_ci``` 5105e41f4b71Sopenharmony_ci 5106e41f4b71Sopenharmony_ci### isAudioSessionActivated<sup>12+</sup> 5107e41f4b71Sopenharmony_ci 5108e41f4b71Sopenharmony_ciisAudioSessionActivated(): boolean 5109e41f4b71Sopenharmony_ci 5110e41f4b71Sopenharmony_ci检查音频会话是否已激活。 5111e41f4b71Sopenharmony_ci 5112e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5113e41f4b71Sopenharmony_ci 5114e41f4b71Sopenharmony_ci**返回值:** 5115e41f4b71Sopenharmony_ci 5116e41f4b71Sopenharmony_ci| 类型 | 说明 | 5117e41f4b71Sopenharmony_ci| ------------------------------------------------- |---------------------------------------| 5118e41f4b71Sopenharmony_ci| boolean | 返回当前pid应用程序的音频会话是否已激活,true表示已激活,false表示已停用。 | 5119e41f4b71Sopenharmony_ci 5120e41f4b71Sopenharmony_ci**示例:** 5121e41f4b71Sopenharmony_ci 5122e41f4b71Sopenharmony_ci```ts 5123e41f4b71Sopenharmony_cilet isActivated = audioSessionManager.isAudioSessionActivated(); 5124e41f4b71Sopenharmony_ci``` 5125e41f4b71Sopenharmony_ci 5126e41f4b71Sopenharmony_ci### on('audioSessionDeactivated')<sup>12+</sup> 5127e41f4b71Sopenharmony_ci 5128e41f4b71Sopenharmony_cion(type: 'audioSessionDeactivated', callback: Callback\<AudioSessionDeactivatedEvent>): void 5129e41f4b71Sopenharmony_ci 5130e41f4b71Sopenharmony_ci监听音频会话停用事件(当音频会话停用时触发),使用callback方式返回结果。 5131e41f4b71Sopenharmony_ci 5132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5133e41f4b71Sopenharmony_ci 5134e41f4b71Sopenharmony_ci**参数:** 5135e41f4b71Sopenharmony_ci 5136e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5137e41f4b71Sopenharmony_ci| -------- |---------------------------------------------------------------------------| ---- | ------------------------------------------------------------ | 5138e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioSessionDeactivated'。 | 5139e41f4b71Sopenharmony_ci| callback | Callback<[AudioSessionDeactivatedEvent](#audiosessiondeactivatedevent12)> | 是 | 回调函数,返回音频会话停用原因。 | 5140e41f4b71Sopenharmony_ci 5141e41f4b71Sopenharmony_ci**错误码:** 5142e41f4b71Sopenharmony_ci 5143e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5144e41f4b71Sopenharmony_ci 5145e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5146e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5147e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters unspecified. 2.Incorrect parameter types. | 5148e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 5149e41f4b71Sopenharmony_ci 5150e41f4b71Sopenharmony_ci**示例:** 5151e41f4b71Sopenharmony_ci 5152e41f4b71Sopenharmony_ci```ts 5153e41f4b71Sopenharmony_ciaudioSessionManager.on('audioSessionDeactivated', (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => { 5154e41f4b71Sopenharmony_ci console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `); 5155e41f4b71Sopenharmony_ci}); 5156e41f4b71Sopenharmony_ci``` 5157e41f4b71Sopenharmony_ci 5158e41f4b71Sopenharmony_ci### off('audioSessionDeactivated')<sup>12+</sup> 5159e41f4b71Sopenharmony_ci 5160e41f4b71Sopenharmony_cioff(type: 'audioSessionDeactivated', callback?: Callback\<AudioSessionDeactivatedEvent>): void 5161e41f4b71Sopenharmony_ci 5162e41f4b71Sopenharmony_ci取消监听音频会话停用事件,使用callback方式返回结果。 5163e41f4b71Sopenharmony_ci 5164e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5165e41f4b71Sopenharmony_ci 5166e41f4b71Sopenharmony_ci**参数:** 5167e41f4b71Sopenharmony_ci 5168e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5169e41f4b71Sopenharmony_ci| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | 5170e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioSessionDeactivated'。 | 5171e41f4b71Sopenharmony_ci| callback |Callback<[AudioSessionDeactivatedEvent](#audiosessiondeactivatedevent12)> | 否 | 回调函数,返回音频会话停用原因。 | 5172e41f4b71Sopenharmony_ci 5173e41f4b71Sopenharmony_ci**错误码:** 5174e41f4b71Sopenharmony_ci 5175e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5176e41f4b71Sopenharmony_ci 5177e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5178e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5179e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 5180e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 5181e41f4b71Sopenharmony_ci 5182e41f4b71Sopenharmony_ci**示例:** 5183e41f4b71Sopenharmony_ci 5184e41f4b71Sopenharmony_ci```ts 5185e41f4b71Sopenharmony_ci// 取消该事件的所有监听 5186e41f4b71Sopenharmony_ciaudioSessionManager.off('audioSessionDeactivated'); 5187e41f4b71Sopenharmony_ci 5188e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 5189e41f4b71Sopenharmony_cilet audioSessionDeactivatedCallback = (audioSessionDeactivatedEvent: audio.AudioSessionDeactivatedEvent) => { 5190e41f4b71Sopenharmony_ci console.info(`reason of audioSessionDeactivated: ${audioSessionDeactivatedEvent.reason} `); 5191e41f4b71Sopenharmony_ci}; 5192e41f4b71Sopenharmony_ci 5193e41f4b71Sopenharmony_ciaudioSessionManager.on('audioSessionDeactivated', audioSessionDeactivatedCallback); 5194e41f4b71Sopenharmony_ci 5195e41f4b71Sopenharmony_ciaudioSessionManager.off('audioSessionDeactivated', audioSessionDeactivatedCallback); 5196e41f4b71Sopenharmony_ci``` 5197e41f4b71Sopenharmony_ci 5198e41f4b71Sopenharmony_ci## AudioRendererChangeInfoArray<sup>9+</sup> 5199e41f4b71Sopenharmony_ci 5200e41f4b71Sopenharmony_ci数组类型,AudioRenderChangeInfo数组,只读。 5201e41f4b71Sopenharmony_ci 5202e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5203e41f4b71Sopenharmony_ci 5204e41f4b71Sopenharmony_ci## AudioRendererChangeInfo<sup>9+</sup> 5205e41f4b71Sopenharmony_ci 5206e41f4b71Sopenharmony_ci描述音频渲染器更改信息。 5207e41f4b71Sopenharmony_ci 5208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5209e41f4b71Sopenharmony_ci 5210e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5211e41f4b71Sopenharmony_ci| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | 5212e41f4b71Sopenharmony_ci| streamId | number | 是 | 否 | 音频流唯一id。 | 5213e41f4b71Sopenharmony_ci| rendererInfo | [AudioRendererInfo](#audiorendererinfo8) | 是 | 否 | 音频渲染器信息。 | 5214e41f4b71Sopenharmony_ci| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 否 | 音频设备描述。| 5215e41f4b71Sopenharmony_ci 5216e41f4b71Sopenharmony_ci**示例:** 5217e41f4b71Sopenharmony_ci 5218e41f4b71Sopenharmony_ci```ts 5219e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 5220e41f4b71Sopenharmony_ci 5221e41f4b71Sopenharmony_ciconst audioManager = audio.getAudioManager(); 5222e41f4b71Sopenharmony_cilet audioStreamManager = audioManager.getStreamManager(); 5223e41f4b71Sopenharmony_ci 5224e41f4b71Sopenharmony_ciaudioStreamManager.on('audioRendererChange', (AudioRendererChangeInfoArray) => { 5225e41f4b71Sopenharmony_ci for (let i = 0; i < AudioRendererChangeInfoArray.length; i++) { 5226e41f4b71Sopenharmony_ci console.info(`## RendererChange on is called for ${i} ##`); 5227e41f4b71Sopenharmony_ci console.info(`StreamId for ${i} is: ${AudioRendererChangeInfoArray[i].streamId}`); 5228e41f4b71Sopenharmony_ci console.info(`Content for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.content}`); 5229e41f4b71Sopenharmony_ci console.info(`Stream for ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.usage}`); 5230e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioRendererChangeInfoArray[i].rendererInfo.rendererFlags}`); 5231e41f4b71Sopenharmony_ci let devDescriptor = AudioRendererChangeInfoArray[i].deviceDescriptors; 5232e41f4b71Sopenharmony_ci for (let j = 0; j < AudioRendererChangeInfoArray[i].deviceDescriptors.length; j++) { 5233e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].id}`); 5234e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 5235e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 5236e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].name}`); 5237e41f4b71Sopenharmony_ci console.info(`Addr: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].address}`); 5238e41f4b71Sopenharmony_ci console.info(`SR: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 5239e41f4b71Sopenharmony_ci console.info(`C ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 5240e41f4b71Sopenharmony_ci console.info(`CM: ${i} : ${AudioRendererChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 5241e41f4b71Sopenharmony_ci } 5242e41f4b71Sopenharmony_ci } 5243e41f4b71Sopenharmony_ci}); 5244e41f4b71Sopenharmony_ci``` 5245e41f4b71Sopenharmony_ci 5246e41f4b71Sopenharmony_ci 5247e41f4b71Sopenharmony_ci## AudioCapturerChangeInfoArray<sup>9+</sup> 5248e41f4b71Sopenharmony_ci 5249e41f4b71Sopenharmony_ci数组类型,AudioCapturerChangeInfo数组,只读。 5250e41f4b71Sopenharmony_ci 5251e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 5252e41f4b71Sopenharmony_ci 5253e41f4b71Sopenharmony_ci## AudioCapturerChangeInfo<sup>9+</sup> 5254e41f4b71Sopenharmony_ci 5255e41f4b71Sopenharmony_ci描述音频采集器更改信息。 5256e41f4b71Sopenharmony_ci 5257e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 5258e41f4b71Sopenharmony_ci 5259e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5260e41f4b71Sopenharmony_ci| -------------------| ----------------------------------------- | ---- | ---- | ---------------------------- | 5261e41f4b71Sopenharmony_ci| streamId | number | 是 | 否 | 音频流唯一id。 | 5262e41f4b71Sopenharmony_ci| capturerInfo | [AudioCapturerInfo](#audiocapturerinfo8) | 是 | 否 | 音频采集器信息。 | 5263e41f4b71Sopenharmony_ci| deviceDescriptors | [AudioDeviceDescriptors](#audiodevicedescriptors) | 是 | 否 | 音频设备描述。| 5264e41f4b71Sopenharmony_ci| muted<sup>11+</sup> | boolean | 是 | 否 | 音频采集器静音状态。true表示音频采集器为静音状态,false表示音频采集器为非静音状态。| 5265e41f4b71Sopenharmony_ci 5266e41f4b71Sopenharmony_ci**示例:** 5267e41f4b71Sopenharmony_ci 5268e41f4b71Sopenharmony_ci```ts 5269e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 5270e41f4b71Sopenharmony_ci 5271e41f4b71Sopenharmony_ciconst audioManager = audio.getAudioManager(); 5272e41f4b71Sopenharmony_cilet audioStreamManager = audioManager.getStreamManager(); 5273e41f4b71Sopenharmony_ci 5274e41f4b71Sopenharmony_ciaudioStreamManager.on('audioCapturerChange', (AudioCapturerChangeInfoArray) => { 5275e41f4b71Sopenharmony_ci for (let i = 0; i < AudioCapturerChangeInfoArray.length; i++) { 5276e41f4b71Sopenharmony_ci console.info(`## CapChange on is called for element ${i} ##`); 5277e41f4b71Sopenharmony_ci console.info(`StrId for ${i} is: ${AudioCapturerChangeInfoArray[i].streamId}`); 5278e41f4b71Sopenharmony_ci console.info(`Src for ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.source}`); 5279e41f4b71Sopenharmony_ci console.info(`Flag ${i} is: ${AudioCapturerChangeInfoArray[i].capturerInfo.capturerFlags}`); 5280e41f4b71Sopenharmony_ci let devDescriptor = AudioCapturerChangeInfoArray[i].deviceDescriptors; 5281e41f4b71Sopenharmony_ci for (let j = 0; j < AudioCapturerChangeInfoArray[i].deviceDescriptors.length; j++) { 5282e41f4b71Sopenharmony_ci console.info(`Id: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].id}`); 5283e41f4b71Sopenharmony_ci console.info(`Type: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceType}`); 5284e41f4b71Sopenharmony_ci console.info(`Role: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].deviceRole}`); 5285e41f4b71Sopenharmony_ci console.info(`Name: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].name}`); 5286e41f4b71Sopenharmony_ci console.info(`Addr: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].address}`); 5287e41f4b71Sopenharmony_ci console.info(`SR: ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].sampleRates[0]}`); 5288e41f4b71Sopenharmony_ci console.info(`C ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelCounts[0]}`); 5289e41f4b71Sopenharmony_ci console.info(`CM ${i} : ${AudioCapturerChangeInfoArray[i].deviceDescriptors[j].channelMasks[0]}`); 5290e41f4b71Sopenharmony_ci } 5291e41f4b71Sopenharmony_ci } 5292e41f4b71Sopenharmony_ci}); 5293e41f4b71Sopenharmony_ci``` 5294e41f4b71Sopenharmony_ci 5295e41f4b71Sopenharmony_ci## AudioEffectInfoArray<sup>10+</sup> 5296e41f4b71Sopenharmony_ci 5297e41f4b71Sopenharmony_ci待查询ContentType和StreamUsage组合场景下的音效模式数组类型,[AudioEffectMode](#audioeffectmode10)数组,只读。 5298e41f4b71Sopenharmony_ci 5299e41f4b71Sopenharmony_ci## AudioDeviceDescriptors 5300e41f4b71Sopenharmony_ci 5301e41f4b71Sopenharmony_ci设备属性数组类型,为[AudioDeviceDescriptor](#audiodevicedescriptor)的数组,只读。 5302e41f4b71Sopenharmony_ci 5303e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5304e41f4b71Sopenharmony_ci 5305e41f4b71Sopenharmony_ci## AudioDeviceDescriptor 5306e41f4b71Sopenharmony_ci 5307e41f4b71Sopenharmony_ci描述音频设备。 5308e41f4b71Sopenharmony_ci 5309e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 5310e41f4b71Sopenharmony_ci 5311e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5312e41f4b71Sopenharmony_ci| ----------------------------- | -------------------------- | ---- | ---- | ---------- | 5313e41f4b71Sopenharmony_ci| deviceRole | [DeviceRole](#devicerole) | 是 | 否 | 设备角色。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5314e41f4b71Sopenharmony_ci| deviceType | [DeviceType](#devicetype) | 是 | 否 | 设备类型。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5315e41f4b71Sopenharmony_ci| id<sup>9+</sup> | number | 是 | 否 | 设备id,唯一。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5316e41f4b71Sopenharmony_ci| name<sup>9+</sup> | string | 是 | 否 | 设备名称。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5317e41f4b71Sopenharmony_ci| address<sup>9+</sup> | string | 是 | 否 | 设备地址。<br>如果是蓝牙设备,需要申请权限ohos.permission.USE_BLUETOOTH。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5318e41f4b71Sopenharmony_ci| sampleRates<sup>9+</sup> | Array<number> | 是 | 否 | 支持的采样率。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5319e41f4b71Sopenharmony_ci| channelCounts<sup>9+</sup> | Array<number> | 是 | 否 | 支持的通道数。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5320e41f4b71Sopenharmony_ci| channelMasks<sup>9+</sup> | Array<number> | 是 | 否 | 支持的通道掩码。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5321e41f4b71Sopenharmony_ci| displayName<sup>10+</sup> | string | 是 | 否 | 设备显示名。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device| 5322e41f4b71Sopenharmony_ci| encodingTypes<sup>11+</sup> | Array<[AudioEncodingType](#audioencodingtype8)> | 是 | 否 | 支持的编码类型。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Core| 5323e41f4b71Sopenharmony_ci 5324e41f4b71Sopenharmony_ci**示例:** 5325e41f4b71Sopenharmony_ci 5326e41f4b71Sopenharmony_ci```ts 5327e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 5328e41f4b71Sopenharmony_ci 5329e41f4b71Sopenharmony_cifunction displayDeviceProp(value: audio.AudioDeviceDescriptor) { 5330e41f4b71Sopenharmony_ci deviceRoleValue = value.deviceRole; 5331e41f4b71Sopenharmony_ci deviceTypeValue = value.deviceType; 5332e41f4b71Sopenharmony_ci} 5333e41f4b71Sopenharmony_ci 5334e41f4b71Sopenharmony_cilet deviceRoleValue: audio.DeviceRole | undefined = undefined; 5335e41f4b71Sopenharmony_cilet deviceTypeValue: audio.DeviceType | undefined = undefined; 5336e41f4b71Sopenharmony_ciaudio.getAudioManager().getDevices(1).then((value: audio.AudioDeviceDescriptors) => { 5337e41f4b71Sopenharmony_ci console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG'); 5338e41f4b71Sopenharmony_ci value.forEach(displayDeviceProp); 5339e41f4b71Sopenharmony_ci if (deviceTypeValue != undefined && deviceRoleValue != undefined){ 5340e41f4b71Sopenharmony_ci console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); 5341e41f4b71Sopenharmony_ci } else { 5342e41f4b71Sopenharmony_ci console.error('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); 5343e41f4b71Sopenharmony_ci } 5344e41f4b71Sopenharmony_ci}); 5345e41f4b71Sopenharmony_ci``` 5346e41f4b71Sopenharmony_ci## AudioDataCallbackResult<sup>12+</sup> 5347e41f4b71Sopenharmony_ci 5348e41f4b71Sopenharmony_ci枚举,表示音频数据回调的结果。 5349e41f4b71Sopenharmony_ci 5350e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Core 5351e41f4b71Sopenharmony_ci 5352e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 5353e41f4b71Sopenharmony_ci| ---------------------| --------| ----------------- | 5354e41f4b71Sopenharmony_ci| INVALID | -1 | 表示该回调数据无效。 | 5355e41f4b71Sopenharmony_ci| VALID | 0 | 表示该回调数据有效。 | 5356e41f4b71Sopenharmony_ci 5357e41f4b71Sopenharmony_ci## AudioRendererWriteDataCallback<sup>12+</sup> 5358e41f4b71Sopenharmony_ci 5359e41f4b71Sopenharmony_citype AudioRendererWriteDataCallback = (data: ArrayBuffer) => AudioDataCallbackResult | void 5360e41f4b71Sopenharmony_ci 5361e41f4b71Sopenharmony_ci回调函数类型,用于音频渲染器的数据写入。 5362e41f4b71Sopenharmony_ci 5363e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5364e41f4b71Sopenharmony_ci 5365e41f4b71Sopenharmony_ci**参数:** 5366e41f4b71Sopenharmony_ci 5367e41f4b71Sopenharmony_ci| 参数名 | 类型 |必填 | 说明 | 5368e41f4b71Sopenharmony_ci| :--------------| :--------| :----- | :------------ | 5369e41f4b71Sopenharmony_ci| data | ArrayBuffer | 是 | 待写入缓冲区的数据。 | 5370e41f4b71Sopenharmony_ci 5371e41f4b71Sopenharmony_ci**返回值:** 5372e41f4b71Sopenharmony_ci 5373e41f4b71Sopenharmony_ci| 类型 | 说明 | 5374e41f4b71Sopenharmony_ci|--------------------------------------------------------------| ------- | 5375e41f4b71Sopenharmony_ci| [AudioDataCallbackResult](#audiodatacallbackresult12) \| void | 如果返回 void 或 AudioDataCallbackResult.VALID ,表示数据有效并将被播放;如果返回 AudioDataCallbackResult.INVALID ,表示数据无效并将不会被播放。| 5376e41f4b71Sopenharmony_ci 5377e41f4b71Sopenharmony_ci## AudioRenderer<sup>8+</sup> 5378e41f4b71Sopenharmony_ci 5379e41f4b71Sopenharmony_ci提供音频渲染的相关接口。在调用AudioRenderer的接口前,需要先通过[createAudioRenderer](#audiocreateaudiorenderer8)创建实例。 5380e41f4b71Sopenharmony_ci 5381e41f4b71Sopenharmony_ci### 属性 5382e41f4b71Sopenharmony_ci 5383e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5384e41f4b71Sopenharmony_ci 5385e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 5386e41f4b71Sopenharmony_ci| ----- | -------------------------- | ---- | ---- | ------------------ | 5387e41f4b71Sopenharmony_ci| state<sup>8+</sup> | [AudioState](#audiostate8) | 是 | 否 | 音频渲染器的状态。 | 5388e41f4b71Sopenharmony_ci 5389e41f4b71Sopenharmony_ci**示例:** 5390e41f4b71Sopenharmony_ci 5391e41f4b71Sopenharmony_ci```ts 5392e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 5393e41f4b71Sopenharmony_ci 5394e41f4b71Sopenharmony_cilet state: audio.AudioState = audioRenderer.state; 5395e41f4b71Sopenharmony_ci``` 5396e41f4b71Sopenharmony_ci 5397e41f4b71Sopenharmony_ci### getRendererInfo<sup>8+</sup> 5398e41f4b71Sopenharmony_ci 5399e41f4b71Sopenharmony_cigetRendererInfo(callback: AsyncCallback<AudioRendererInfo\>): void 5400e41f4b71Sopenharmony_ci 5401e41f4b71Sopenharmony_ci获取当前被创建的音频渲染器的信息,使用callback方式异步返回结果。 5402e41f4b71Sopenharmony_ci 5403e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5404e41f4b71Sopenharmony_ci 5405e41f4b71Sopenharmony_ci**参数:** 5406e41f4b71Sopenharmony_ci 5407e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5408e41f4b71Sopenharmony_ci| :------- | :------------------------------------------------------- | :--- | :--------------------- | 5409e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRendererInfo](#audiorendererinfo8)\> | 是 | 回调函数。当获取音频渲染器的信息成功,err为undefined,data为获取到的音频渲染器的信息;否则为错误对象。 | 5410e41f4b71Sopenharmony_ci 5411e41f4b71Sopenharmony_ci**示例:** 5412e41f4b71Sopenharmony_ci 5413e41f4b71Sopenharmony_ci```ts 5414e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5415e41f4b71Sopenharmony_ci 5416e41f4b71Sopenharmony_ciaudioRenderer.getRendererInfo((err: BusinessError, rendererInfo: audio.AudioRendererInfo) => { 5417e41f4b71Sopenharmony_ci console.info('Renderer GetRendererInfo:'); 5418e41f4b71Sopenharmony_ci console.info(`Renderer content: ${rendererInfo.content}`); 5419e41f4b71Sopenharmony_ci console.info(`Renderer usage: ${rendererInfo.usage}`); 5420e41f4b71Sopenharmony_ci console.info(`Renderer flags: ${rendererInfo.rendererFlags}`); 5421e41f4b71Sopenharmony_ci}); 5422e41f4b71Sopenharmony_ci``` 5423e41f4b71Sopenharmony_ci 5424e41f4b71Sopenharmony_ci### getRendererInfo<sup>8+</sup> 5425e41f4b71Sopenharmony_ci 5426e41f4b71Sopenharmony_cigetRendererInfo(): Promise<AudioRendererInfo\> 5427e41f4b71Sopenharmony_ci 5428e41f4b71Sopenharmony_ci获取当前被创建的音频渲染器的信息,使用Promise方式异步返回结果。 5429e41f4b71Sopenharmony_ci 5430e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5431e41f4b71Sopenharmony_ci 5432e41f4b71Sopenharmony_ci**返回值:** 5433e41f4b71Sopenharmony_ci 5434e41f4b71Sopenharmony_ci| 类型 | 说明 | 5435e41f4b71Sopenharmony_ci| -------------------------------------------------- | ------------------------------- | 5436e41f4b71Sopenharmony_ci| Promise<[AudioRendererInfo](#audiorendererinfo8)\> | Promise对象,返回音频渲染器信息。 | 5437e41f4b71Sopenharmony_ci 5438e41f4b71Sopenharmony_ci**示例:** 5439e41f4b71Sopenharmony_ci 5440e41f4b71Sopenharmony_ci```ts 5441e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5442e41f4b71Sopenharmony_ci 5443e41f4b71Sopenharmony_ciaudioRenderer.getRendererInfo().then((rendererInfo: audio.AudioRendererInfo) => { 5444e41f4b71Sopenharmony_ci console.info('Renderer GetRendererInfo:'); 5445e41f4b71Sopenharmony_ci console.info(`Renderer content: ${rendererInfo.content}`); 5446e41f4b71Sopenharmony_ci console.info(`Renderer usage: ${rendererInfo.usage}`); 5447e41f4b71Sopenharmony_ci console.info(`Renderer flags: ${rendererInfo.rendererFlags}`) 5448e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5449e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${err}`); 5450e41f4b71Sopenharmony_ci}); 5451e41f4b71Sopenharmony_ci``` 5452e41f4b71Sopenharmony_ci 5453e41f4b71Sopenharmony_ci### getRendererInfoSync<sup>10+</sup> 5454e41f4b71Sopenharmony_ci 5455e41f4b71Sopenharmony_cigetRendererInfoSync(): AudioRendererInfo 5456e41f4b71Sopenharmony_ci 5457e41f4b71Sopenharmony_ci获取当前被创建的音频渲染器的信息,同步返回结果。 5458e41f4b71Sopenharmony_ci 5459e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5460e41f4b71Sopenharmony_ci 5461e41f4b71Sopenharmony_ci**返回值:** 5462e41f4b71Sopenharmony_ci 5463e41f4b71Sopenharmony_ci| 类型 | 说明 | 5464e41f4b71Sopenharmony_ci| -------------------------------------------------- | ------------------------------- | 5465e41f4b71Sopenharmony_ci| [AudioRendererInfo](#audiorendererinfo8) | 返回音频渲染器信息。 | 5466e41f4b71Sopenharmony_ci 5467e41f4b71Sopenharmony_ci**示例:** 5468e41f4b71Sopenharmony_ci 5469e41f4b71Sopenharmony_ci```ts 5470e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5471e41f4b71Sopenharmony_ci 5472e41f4b71Sopenharmony_citry { 5473e41f4b71Sopenharmony_ci let rendererInfo: audio.AudioRendererInfo = audioRenderer.getRendererInfoSync(); 5474e41f4b71Sopenharmony_ci console.info(`Renderer content: ${rendererInfo.content}`); 5475e41f4b71Sopenharmony_ci console.info(`Renderer usage: ${rendererInfo.usage}`); 5476e41f4b71Sopenharmony_ci console.info(`Renderer flags: ${rendererInfo.rendererFlags}`) 5477e41f4b71Sopenharmony_ci} catch (err) { 5478e41f4b71Sopenharmony_ci let error = err as BusinessError; 5479e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: RendererInfo :ERROR: ${error}`); 5480e41f4b71Sopenharmony_ci} 5481e41f4b71Sopenharmony_ci``` 5482e41f4b71Sopenharmony_ci 5483e41f4b71Sopenharmony_ci### getStreamInfo<sup>8+</sup> 5484e41f4b71Sopenharmony_ci 5485e41f4b71Sopenharmony_cigetStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void 5486e41f4b71Sopenharmony_ci 5487e41f4b71Sopenharmony_ci获取音频流信息,使用callback方式异步返回结果。 5488e41f4b71Sopenharmony_ci 5489e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5490e41f4b71Sopenharmony_ci 5491e41f4b71Sopenharmony_ci**参数:** 5492e41f4b71Sopenharmony_ci 5493e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5494e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :------------------- | 5495e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是 | 回调函数。当获取音频流信息成功,err为undefined,data为获取到的音频流信息;否则为错误对象。 | 5496e41f4b71Sopenharmony_ci 5497e41f4b71Sopenharmony_ci**示例:** 5498e41f4b71Sopenharmony_ci 5499e41f4b71Sopenharmony_ci```ts 5500e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5501e41f4b71Sopenharmony_ci 5502e41f4b71Sopenharmony_ciaudioRenderer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => { 5503e41f4b71Sopenharmony_ci console.info('Renderer GetStreamInfo:'); 5504e41f4b71Sopenharmony_ci console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5505e41f4b71Sopenharmony_ci console.info(`Renderer channel: ${streamInfo.channels}`); 5506e41f4b71Sopenharmony_ci console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5507e41f4b71Sopenharmony_ci console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5508e41f4b71Sopenharmony_ci}); 5509e41f4b71Sopenharmony_ci``` 5510e41f4b71Sopenharmony_ci 5511e41f4b71Sopenharmony_ci### getStreamInfo<sup>8+</sup> 5512e41f4b71Sopenharmony_ci 5513e41f4b71Sopenharmony_cigetStreamInfo(): Promise<AudioStreamInfo\> 5514e41f4b71Sopenharmony_ci 5515e41f4b71Sopenharmony_ci获取音频流信息,使用Promise方式异步返回结果。 5516e41f4b71Sopenharmony_ci 5517e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5518e41f4b71Sopenharmony_ci 5519e41f4b71Sopenharmony_ci**返回值:** 5520e41f4b71Sopenharmony_ci 5521e41f4b71Sopenharmony_ci| 类型 | 说明 | 5522e41f4b71Sopenharmony_ci| :--------------------------------------------- | :--------------------- | 5523e41f4b71Sopenharmony_ci| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise对象,返回音频流信息. | 5524e41f4b71Sopenharmony_ci 5525e41f4b71Sopenharmony_ci**示例:** 5526e41f4b71Sopenharmony_ci 5527e41f4b71Sopenharmony_ci```ts 5528e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5529e41f4b71Sopenharmony_ci 5530e41f4b71Sopenharmony_ciaudioRenderer.getStreamInfo().then((streamInfo: audio.AudioStreamInfo) => { 5531e41f4b71Sopenharmony_ci console.info('Renderer GetStreamInfo:'); 5532e41f4b71Sopenharmony_ci console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5533e41f4b71Sopenharmony_ci console.info(`Renderer channel: ${streamInfo.channels}`); 5534e41f4b71Sopenharmony_ci console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5535e41f4b71Sopenharmony_ci console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5536e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5537e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5538e41f4b71Sopenharmony_ci}); 5539e41f4b71Sopenharmony_ci``` 5540e41f4b71Sopenharmony_ci 5541e41f4b71Sopenharmony_ci### getStreamInfoSync<sup>10+</sup> 5542e41f4b71Sopenharmony_ci 5543e41f4b71Sopenharmony_cigetStreamInfoSync(): AudioStreamInfo 5544e41f4b71Sopenharmony_ci 5545e41f4b71Sopenharmony_ci获取音频流信息,同步返回结果。 5546e41f4b71Sopenharmony_ci 5547e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5548e41f4b71Sopenharmony_ci 5549e41f4b71Sopenharmony_ci**返回值:** 5550e41f4b71Sopenharmony_ci 5551e41f4b71Sopenharmony_ci| 类型 | 说明 | 5552e41f4b71Sopenharmony_ci| :--------------------------------------------- | :--------------------- | 5553e41f4b71Sopenharmony_ci| [AudioStreamInfo](#audiostreaminfo8) | 返回音频流信息. | 5554e41f4b71Sopenharmony_ci 5555e41f4b71Sopenharmony_ci**示例:** 5556e41f4b71Sopenharmony_ci 5557e41f4b71Sopenharmony_ci```ts 5558e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5559e41f4b71Sopenharmony_ci 5560e41f4b71Sopenharmony_citry { 5561e41f4b71Sopenharmony_ci let streamInfo: audio.AudioStreamInfo = audioRenderer.getStreamInfoSync(); 5562e41f4b71Sopenharmony_ci console.info(`Renderer sampling rate: ${streamInfo.samplingRate}`); 5563e41f4b71Sopenharmony_ci console.info(`Renderer channel: ${streamInfo.channels}`); 5564e41f4b71Sopenharmony_ci console.info(`Renderer format: ${streamInfo.sampleFormat}`); 5565e41f4b71Sopenharmony_ci console.info(`Renderer encoding type: ${streamInfo.encodingType}`); 5566e41f4b71Sopenharmony_ci} catch (err) { 5567e41f4b71Sopenharmony_ci let error = err as BusinessError; 5568e41f4b71Sopenharmony_ci console.error(`ERROR: ${error}`); 5569e41f4b71Sopenharmony_ci} 5570e41f4b71Sopenharmony_ci``` 5571e41f4b71Sopenharmony_ci 5572e41f4b71Sopenharmony_ci### getAudioStreamId<sup>9+</sup> 5573e41f4b71Sopenharmony_ci 5574e41f4b71Sopenharmony_cigetAudioStreamId(callback: AsyncCallback<number\>): void 5575e41f4b71Sopenharmony_ci 5576e41f4b71Sopenharmony_ci获取音频流id,使用callback方式异步返回结果。 5577e41f4b71Sopenharmony_ci 5578e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5579e41f4b71Sopenharmony_ci 5580e41f4b71Sopenharmony_ci**参数:** 5581e41f4b71Sopenharmony_ci 5582e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5583e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :------------------- | 5584e41f4b71Sopenharmony_ci| callback | AsyncCallback<number\> | 是 | 回调函数。当获取音频流id成功,err为undefined,data为获取到的音频流id;否则为错误对象。 | 5585e41f4b71Sopenharmony_ci 5586e41f4b71Sopenharmony_ci**示例:** 5587e41f4b71Sopenharmony_ci 5588e41f4b71Sopenharmony_ci```ts 5589e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5590e41f4b71Sopenharmony_ci 5591e41f4b71Sopenharmony_ciaudioRenderer.getAudioStreamId((err: BusinessError, streamId: number) => { 5592e41f4b71Sopenharmony_ci console.info(`Renderer GetStreamId: ${streamId}`); 5593e41f4b71Sopenharmony_ci}); 5594e41f4b71Sopenharmony_ci``` 5595e41f4b71Sopenharmony_ci 5596e41f4b71Sopenharmony_ci### getAudioStreamId<sup>9+</sup> 5597e41f4b71Sopenharmony_ci 5598e41f4b71Sopenharmony_cigetAudioStreamId(): Promise<number\> 5599e41f4b71Sopenharmony_ci 5600e41f4b71Sopenharmony_ci获取音频流id,使用Promise方式异步返回结果。 5601e41f4b71Sopenharmony_ci 5602e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5603e41f4b71Sopenharmony_ci 5604e41f4b71Sopenharmony_ci**返回值:** 5605e41f4b71Sopenharmony_ci 5606e41f4b71Sopenharmony_ci| 类型 | 说明 | 5607e41f4b71Sopenharmony_ci| :--------------------------------------------- | :--------------------- | 5608e41f4b71Sopenharmony_ci| Promise<number\> | Promise对象,返回音频流id。 | 5609e41f4b71Sopenharmony_ci 5610e41f4b71Sopenharmony_ci**示例:** 5611e41f4b71Sopenharmony_ci 5612e41f4b71Sopenharmony_ci```ts 5613e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5614e41f4b71Sopenharmony_ci 5615e41f4b71Sopenharmony_ciaudioRenderer.getAudioStreamId().then((streamId: number) => { 5616e41f4b71Sopenharmony_ci console.info(`Renderer getAudioStreamId: ${streamId}`); 5617e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5618e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5619e41f4b71Sopenharmony_ci}); 5620e41f4b71Sopenharmony_ci``` 5621e41f4b71Sopenharmony_ci 5622e41f4b71Sopenharmony_ci### getAudioStreamIdSync<sup>10+</sup> 5623e41f4b71Sopenharmony_ci 5624e41f4b71Sopenharmony_cigetAudioStreamIdSync(): number 5625e41f4b71Sopenharmony_ci 5626e41f4b71Sopenharmony_ci获取音频流id,同步返回结果。 5627e41f4b71Sopenharmony_ci 5628e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5629e41f4b71Sopenharmony_ci 5630e41f4b71Sopenharmony_ci**返回值:** 5631e41f4b71Sopenharmony_ci 5632e41f4b71Sopenharmony_ci| 类型 | 说明 | 5633e41f4b71Sopenharmony_ci| :--------------------------------------------- | :--------------------- | 5634e41f4b71Sopenharmony_ci| number | 返回音频流id。 | 5635e41f4b71Sopenharmony_ci 5636e41f4b71Sopenharmony_ci**示例:** 5637e41f4b71Sopenharmony_ci 5638e41f4b71Sopenharmony_ci```ts 5639e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5640e41f4b71Sopenharmony_ci 5641e41f4b71Sopenharmony_citry { 5642e41f4b71Sopenharmony_ci let streamId: number = audioRenderer.getAudioStreamIdSync(); 5643e41f4b71Sopenharmony_ci console.info(`Renderer getAudioStreamIdSync: ${streamId}`); 5644e41f4b71Sopenharmony_ci} catch (err) { 5645e41f4b71Sopenharmony_ci let error = err as BusinessError; 5646e41f4b71Sopenharmony_ci console.error(`ERROR: ${error}`); 5647e41f4b71Sopenharmony_ci} 5648e41f4b71Sopenharmony_ci``` 5649e41f4b71Sopenharmony_ci 5650e41f4b71Sopenharmony_ci### setAudioEffectMode<sup>10+</sup> 5651e41f4b71Sopenharmony_ci 5652e41f4b71Sopenharmony_cisetAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback\<void>): void 5653e41f4b71Sopenharmony_ci 5654e41f4b71Sopenharmony_ci设置当前音效模式。使用callback方式异步返回结果。 5655e41f4b71Sopenharmony_ci 5656e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5657e41f4b71Sopenharmony_ci 5658e41f4b71Sopenharmony_ci**参数:** 5659e41f4b71Sopenharmony_ci 5660e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5661e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ------------------------ | 5662e41f4b71Sopenharmony_ci| mode | [AudioEffectMode](#audioeffectmode10) | 是 | 音效模式。 | 5663e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当设置当前音效模式成功,err为undefined,否则为错误对象。 | 5664e41f4b71Sopenharmony_ci 5665e41f4b71Sopenharmony_ci**错误码:** 5666e41f4b71Sopenharmony_ci 5667e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5668e41f4b71Sopenharmony_ci 5669e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5670e41f4b71Sopenharmony_ci| ------- | ----------------------------------------------| 5671e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 5672e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by callback. | 5673e41f4b71Sopenharmony_ci 5674e41f4b71Sopenharmony_ci**示例:** 5675e41f4b71Sopenharmony_ci 5676e41f4b71Sopenharmony_ci```ts 5677e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5678e41f4b71Sopenharmony_ci 5679e41f4b71Sopenharmony_ciaudioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT, (err: BusinessError) => { 5680e41f4b71Sopenharmony_ci if (err) { 5681e41f4b71Sopenharmony_ci console.error('Failed to set params'); 5682e41f4b71Sopenharmony_ci } else { 5683e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate a successful audio effect mode setting.'); 5684e41f4b71Sopenharmony_ci } 5685e41f4b71Sopenharmony_ci}); 5686e41f4b71Sopenharmony_ci``` 5687e41f4b71Sopenharmony_ci 5688e41f4b71Sopenharmony_ci### setAudioEffectMode<sup>10+</sup> 5689e41f4b71Sopenharmony_ci 5690e41f4b71Sopenharmony_cisetAudioEffectMode(mode: AudioEffectMode): Promise\<void> 5691e41f4b71Sopenharmony_ci 5692e41f4b71Sopenharmony_ci设置当前音效模式。使用Promise方式异步返回结果。 5693e41f4b71Sopenharmony_ci 5694e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5695e41f4b71Sopenharmony_ci 5696e41f4b71Sopenharmony_ci**参数:** 5697e41f4b71Sopenharmony_ci 5698e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5699e41f4b71Sopenharmony_ci| ------ | ---------------------------------------- | ---- | ------------ | 5700e41f4b71Sopenharmony_ci| mode | [AudioEffectMode](#audioeffectmode10) | 是 | 音效模式。 | 5701e41f4b71Sopenharmony_ci 5702e41f4b71Sopenharmony_ci**返回值:** 5703e41f4b71Sopenharmony_ci 5704e41f4b71Sopenharmony_ci| 类型 | 说明 | 5705e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5706e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5707e41f4b71Sopenharmony_ci 5708e41f4b71Sopenharmony_ci**错误码:** 5709e41f4b71Sopenharmony_ci 5710e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5711e41f4b71Sopenharmony_ci 5712e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5713e41f4b71Sopenharmony_ci| ------- | ---------------------------------------------| 5714e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 5715e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. Return by promise. | 5716e41f4b71Sopenharmony_ci 5717e41f4b71Sopenharmony_ci**示例:** 5718e41f4b71Sopenharmony_ci 5719e41f4b71Sopenharmony_ci```ts 5720e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5721e41f4b71Sopenharmony_ci 5722e41f4b71Sopenharmony_ciaudioRenderer.setAudioEffectMode(audio.AudioEffectMode.EFFECT_DEFAULT).then(() => { 5723e41f4b71Sopenharmony_ci console.info('setAudioEffectMode SUCCESS'); 5724e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5725e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5726e41f4b71Sopenharmony_ci}); 5727e41f4b71Sopenharmony_ci``` 5728e41f4b71Sopenharmony_ci 5729e41f4b71Sopenharmony_ci### getAudioEffectMode<sup>10+</sup> 5730e41f4b71Sopenharmony_ci 5731e41f4b71Sopenharmony_cigetAudioEffectMode(callback: AsyncCallback\<AudioEffectMode>): void 5732e41f4b71Sopenharmony_ci 5733e41f4b71Sopenharmony_ci获取当前音效模式。使用callback方式异步返回结果。 5734e41f4b71Sopenharmony_ci 5735e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5736e41f4b71Sopenharmony_ci 5737e41f4b71Sopenharmony_ci**参数:** 5738e41f4b71Sopenharmony_ci 5739e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5740e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------- | ---- | ------------------ | 5741e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioEffectMode](#audioeffectmode10)> | 是 | 回调函数。当获取当前音效模式成功,err为undefined,data为获取到的当前音效模式;否则为错误对象。 | 5742e41f4b71Sopenharmony_ci 5743e41f4b71Sopenharmony_ci**示例:** 5744e41f4b71Sopenharmony_ci 5745e41f4b71Sopenharmony_ci```ts 5746e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5747e41f4b71Sopenharmony_ci 5748e41f4b71Sopenharmony_ciaudioRenderer.getAudioEffectMode((err: BusinessError, effectMode: audio.AudioEffectMode) => { 5749e41f4b71Sopenharmony_ci if (err) { 5750e41f4b71Sopenharmony_ci console.error('Failed to get params'); 5751e41f4b71Sopenharmony_ci } else { 5752e41f4b71Sopenharmony_ci console.info(`getAudioEffectMode: ${effectMode}`); 5753e41f4b71Sopenharmony_ci } 5754e41f4b71Sopenharmony_ci}); 5755e41f4b71Sopenharmony_ci``` 5756e41f4b71Sopenharmony_ci 5757e41f4b71Sopenharmony_ci### getAudioEffectMode<sup>10+</sup> 5758e41f4b71Sopenharmony_ci 5759e41f4b71Sopenharmony_cigetAudioEffectMode(): Promise\<AudioEffectMode> 5760e41f4b71Sopenharmony_ci 5761e41f4b71Sopenharmony_ci获取当前音效模式。使用Promise方式异步返回结果。 5762e41f4b71Sopenharmony_ci 5763e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5764e41f4b71Sopenharmony_ci 5765e41f4b71Sopenharmony_ci**返回值:** 5766e41f4b71Sopenharmony_ci 5767e41f4b71Sopenharmony_ci| 类型 | 说明 | 5768e41f4b71Sopenharmony_ci| ------------------------------------------------- | ------------------------- | 5769e41f4b71Sopenharmony_ci| Promise<[AudioEffectMode](#audioeffectmode10)> | Promise对象,返回当前音效模式。 | 5770e41f4b71Sopenharmony_ci 5771e41f4b71Sopenharmony_ci**示例:** 5772e41f4b71Sopenharmony_ci 5773e41f4b71Sopenharmony_ci```ts 5774e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5775e41f4b71Sopenharmony_ci 5776e41f4b71Sopenharmony_ciaudioRenderer.getAudioEffectMode().then((effectMode: audio.AudioEffectMode) => { 5777e41f4b71Sopenharmony_ci console.info(`getAudioEffectMode: ${effectMode}`); 5778e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5779e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5780e41f4b71Sopenharmony_ci}); 5781e41f4b71Sopenharmony_ci``` 5782e41f4b71Sopenharmony_ci 5783e41f4b71Sopenharmony_ci### start<sup>8+</sup> 5784e41f4b71Sopenharmony_ci 5785e41f4b71Sopenharmony_cistart(callback: AsyncCallback<void\>): void 5786e41f4b71Sopenharmony_ci 5787e41f4b71Sopenharmony_ci启动音频渲染器。使用callback方式异步返回结果。 5788e41f4b71Sopenharmony_ci 5789e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5790e41f4b71Sopenharmony_ci 5791e41f4b71Sopenharmony_ci**参数:** 5792e41f4b71Sopenharmony_ci 5793e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5794e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------- | 5795e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | Callback对象,成功表示启动音频采集器成功,异常将返回error对象:<br>错误码6800301,表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。 | 5796e41f4b71Sopenharmony_ci 5797e41f4b71Sopenharmony_ci**示例:** 5798e41f4b71Sopenharmony_ci 5799e41f4b71Sopenharmony_ci```ts 5800e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5801e41f4b71Sopenharmony_ci 5802e41f4b71Sopenharmony_ciaudioRenderer.start((err: BusinessError) => { 5803e41f4b71Sopenharmony_ci if (err) { 5804e41f4b71Sopenharmony_ci console.error('Renderer start failed.'); 5805e41f4b71Sopenharmony_ci } else { 5806e41f4b71Sopenharmony_ci console.info('Renderer start success.'); 5807e41f4b71Sopenharmony_ci } 5808e41f4b71Sopenharmony_ci}); 5809e41f4b71Sopenharmony_ci``` 5810e41f4b71Sopenharmony_ci 5811e41f4b71Sopenharmony_ci### start<sup>8+</sup> 5812e41f4b71Sopenharmony_ci 5813e41f4b71Sopenharmony_cistart(): Promise<void\> 5814e41f4b71Sopenharmony_ci 5815e41f4b71Sopenharmony_ci启动音频渲染器。使用Promise方式异步返回结果。 5816e41f4b71Sopenharmony_ci 5817e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5818e41f4b71Sopenharmony_ci 5819e41f4b71Sopenharmony_ci**返回值:** 5820e41f4b71Sopenharmony_ci 5821e41f4b71Sopenharmony_ci| 类型 | 说明 | 5822e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5823e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,成功表示启动音频采集器成功,异常将返回error对象:<br>错误码6800301,表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。 | 5824e41f4b71Sopenharmony_ci 5825e41f4b71Sopenharmony_ci**示例:** 5826e41f4b71Sopenharmony_ci 5827e41f4b71Sopenharmony_ci```ts 5828e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5829e41f4b71Sopenharmony_ci 5830e41f4b71Sopenharmony_ciaudioRenderer.start().then(() => { 5831e41f4b71Sopenharmony_ci console.info('Renderer started'); 5832e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5833e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5834e41f4b71Sopenharmony_ci}); 5835e41f4b71Sopenharmony_ci``` 5836e41f4b71Sopenharmony_ci 5837e41f4b71Sopenharmony_ci### pause<sup>8+</sup> 5838e41f4b71Sopenharmony_ci 5839e41f4b71Sopenharmony_cipause(callback: AsyncCallback\<void>): void 5840e41f4b71Sopenharmony_ci 5841e41f4b71Sopenharmony_ci暂停渲染。使用callback方式异步返回结果。 5842e41f4b71Sopenharmony_ci 5843e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5844e41f4b71Sopenharmony_ci 5845e41f4b71Sopenharmony_ci**参数:** 5846e41f4b71Sopenharmony_ci 5847e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5848e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------- | 5849e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当暂停渲染成功,err为undefined,否则为错误对象。 | 5850e41f4b71Sopenharmony_ci 5851e41f4b71Sopenharmony_ci**示例:** 5852e41f4b71Sopenharmony_ci 5853e41f4b71Sopenharmony_ci```ts 5854e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5855e41f4b71Sopenharmony_ci 5856e41f4b71Sopenharmony_ciaudioRenderer.pause((err: BusinessError) => { 5857e41f4b71Sopenharmony_ci if (err) { 5858e41f4b71Sopenharmony_ci console.error('Renderer pause failed'); 5859e41f4b71Sopenharmony_ci } else { 5860e41f4b71Sopenharmony_ci console.info('Renderer paused.'); 5861e41f4b71Sopenharmony_ci } 5862e41f4b71Sopenharmony_ci}); 5863e41f4b71Sopenharmony_ci``` 5864e41f4b71Sopenharmony_ci 5865e41f4b71Sopenharmony_ci### pause<sup>8+</sup> 5866e41f4b71Sopenharmony_ci 5867e41f4b71Sopenharmony_cipause(): Promise\<void> 5868e41f4b71Sopenharmony_ci 5869e41f4b71Sopenharmony_ci暂停渲染。使用Promise方式异步返回结果。 5870e41f4b71Sopenharmony_ci 5871e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5872e41f4b71Sopenharmony_ci 5873e41f4b71Sopenharmony_ci**返回值:** 5874e41f4b71Sopenharmony_ci 5875e41f4b71Sopenharmony_ci| 类型 | 说明 | 5876e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5877e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5878e41f4b71Sopenharmony_ci 5879e41f4b71Sopenharmony_ci**示例:** 5880e41f4b71Sopenharmony_ci 5881e41f4b71Sopenharmony_ci```ts 5882e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5883e41f4b71Sopenharmony_ci 5884e41f4b71Sopenharmony_ciaudioRenderer.pause().then(() => { 5885e41f4b71Sopenharmony_ci console.info('Renderer paused'); 5886e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5887e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5888e41f4b71Sopenharmony_ci}); 5889e41f4b71Sopenharmony_ci``` 5890e41f4b71Sopenharmony_ci 5891e41f4b71Sopenharmony_ci### drain<sup>8+</sup> 5892e41f4b71Sopenharmony_ci 5893e41f4b71Sopenharmony_cidrain(callback: AsyncCallback\<void>): void 5894e41f4b71Sopenharmony_ci 5895e41f4b71Sopenharmony_ci检查缓冲区是否已被耗尽。使用callback方式异步返回结果。 5896e41f4b71Sopenharmony_ci 5897e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5898e41f4b71Sopenharmony_ci 5899e41f4b71Sopenharmony_ci**参数:** 5900e41f4b71Sopenharmony_ci 5901e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5902e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------- | 5903e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当检查缓冲区是否已被耗尽成功,err为undefined,否则为错误对象。 | 5904e41f4b71Sopenharmony_ci 5905e41f4b71Sopenharmony_ci**示例:** 5906e41f4b71Sopenharmony_ci 5907e41f4b71Sopenharmony_ci```ts 5908e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5909e41f4b71Sopenharmony_ci 5910e41f4b71Sopenharmony_ciaudioRenderer.drain((err: BusinessError) => { 5911e41f4b71Sopenharmony_ci if (err) { 5912e41f4b71Sopenharmony_ci console.error('Renderer drain failed'); 5913e41f4b71Sopenharmony_ci } else { 5914e41f4b71Sopenharmony_ci console.info('Renderer drained.'); 5915e41f4b71Sopenharmony_ci } 5916e41f4b71Sopenharmony_ci}); 5917e41f4b71Sopenharmony_ci``` 5918e41f4b71Sopenharmony_ci 5919e41f4b71Sopenharmony_ci### drain<sup>8+</sup> 5920e41f4b71Sopenharmony_ci 5921e41f4b71Sopenharmony_cidrain(): Promise\<void> 5922e41f4b71Sopenharmony_ci 5923e41f4b71Sopenharmony_ci检查缓冲区是否已被耗尽。使用Promise方式异步返回结果。 5924e41f4b71Sopenharmony_ci 5925e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5926e41f4b71Sopenharmony_ci 5927e41f4b71Sopenharmony_ci**返回值:** 5928e41f4b71Sopenharmony_ci 5929e41f4b71Sopenharmony_ci| 类型 | 说明 | 5930e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5931e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5932e41f4b71Sopenharmony_ci 5933e41f4b71Sopenharmony_ci**示例:** 5934e41f4b71Sopenharmony_ci 5935e41f4b71Sopenharmony_ci```ts 5936e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5937e41f4b71Sopenharmony_ci 5938e41f4b71Sopenharmony_ciaudioRenderer.drain().then(() => { 5939e41f4b71Sopenharmony_ci console.info('Renderer drained successfully'); 5940e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5941e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5942e41f4b71Sopenharmony_ci}); 5943e41f4b71Sopenharmony_ci``` 5944e41f4b71Sopenharmony_ci 5945e41f4b71Sopenharmony_ci### flush<sup>11+</sup> 5946e41f4b71Sopenharmony_ci 5947e41f4b71Sopenharmony_ciflush(): Promise\<void> 5948e41f4b71Sopenharmony_ci 5949e41f4b71Sopenharmony_ci清空缓冲区([AudioState](#audiostate8)为STATE_RUNNING、STATE_PAUSED、STATE_STOPPED状态下可用)。使用Promise方式异步返回结果。 5950e41f4b71Sopenharmony_ci 5951e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5952e41f4b71Sopenharmony_ci 5953e41f4b71Sopenharmony_ci**返回值:** 5954e41f4b71Sopenharmony_ci 5955e41f4b71Sopenharmony_ci| 类型 | 说明 | 5956e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 5957e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 5958e41f4b71Sopenharmony_ci 5959e41f4b71Sopenharmony_ci**错误码:** 5960e41f4b71Sopenharmony_ci 5961e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 5962e41f4b71Sopenharmony_ci 5963e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5964e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 5965e41f4b71Sopenharmony_ci| 6800103 | Operation not permit at current state. Return by promise. | 5966e41f4b71Sopenharmony_ci 5967e41f4b71Sopenharmony_ci**示例:** 5968e41f4b71Sopenharmony_ci 5969e41f4b71Sopenharmony_ci```ts 5970e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5971e41f4b71Sopenharmony_ci 5972e41f4b71Sopenharmony_ciaudioRenderer.flush().then(() => { 5973e41f4b71Sopenharmony_ci console.info('Renderer flushed successfully'); 5974e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 5975e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 5976e41f4b71Sopenharmony_ci}); 5977e41f4b71Sopenharmony_ci``` 5978e41f4b71Sopenharmony_ci 5979e41f4b71Sopenharmony_ci### stop<sup>8+</sup> 5980e41f4b71Sopenharmony_ci 5981e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void>): void 5982e41f4b71Sopenharmony_ci 5983e41f4b71Sopenharmony_ci停止渲染。使用callback方式异步返回结果。 5984e41f4b71Sopenharmony_ci 5985e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 5986e41f4b71Sopenharmony_ci 5987e41f4b71Sopenharmony_ci**参数:** 5988e41f4b71Sopenharmony_ci 5989e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5990e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------- | 5991e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当停止渲染成功,err为undefined,否则为错误对象。 | 5992e41f4b71Sopenharmony_ci 5993e41f4b71Sopenharmony_ci**示例:** 5994e41f4b71Sopenharmony_ci 5995e41f4b71Sopenharmony_ci```ts 5996e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5997e41f4b71Sopenharmony_ci 5998e41f4b71Sopenharmony_ciaudioRenderer.stop((err: BusinessError) => { 5999e41f4b71Sopenharmony_ci if (err) { 6000e41f4b71Sopenharmony_ci console.error('Renderer stop failed'); 6001e41f4b71Sopenharmony_ci } else { 6002e41f4b71Sopenharmony_ci console.info('Renderer stopped.'); 6003e41f4b71Sopenharmony_ci } 6004e41f4b71Sopenharmony_ci}); 6005e41f4b71Sopenharmony_ci``` 6006e41f4b71Sopenharmony_ci 6007e41f4b71Sopenharmony_ci### stop<sup>8+</sup> 6008e41f4b71Sopenharmony_ci 6009e41f4b71Sopenharmony_cistop(): Promise\<void> 6010e41f4b71Sopenharmony_ci 6011e41f4b71Sopenharmony_ci停止渲染。使用Promise方式异步返回结果。 6012e41f4b71Sopenharmony_ci 6013e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6014e41f4b71Sopenharmony_ci 6015e41f4b71Sopenharmony_ci**返回值:** 6016e41f4b71Sopenharmony_ci 6017e41f4b71Sopenharmony_ci| 类型 | 说明 | 6018e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 6019e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 6020e41f4b71Sopenharmony_ci 6021e41f4b71Sopenharmony_ci**示例:** 6022e41f4b71Sopenharmony_ci 6023e41f4b71Sopenharmony_ci```ts 6024e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6025e41f4b71Sopenharmony_ci 6026e41f4b71Sopenharmony_ciaudioRenderer.stop().then(() => { 6027e41f4b71Sopenharmony_ci console.info('Renderer stopped successfully'); 6028e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6029e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 6030e41f4b71Sopenharmony_ci}); 6031e41f4b71Sopenharmony_ci``` 6032e41f4b71Sopenharmony_ci 6033e41f4b71Sopenharmony_ci### release<sup>8+</sup> 6034e41f4b71Sopenharmony_ci 6035e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void>): void 6036e41f4b71Sopenharmony_ci 6037e41f4b71Sopenharmony_ci释放音频渲染器。使用callback方式异步返回结果。 6038e41f4b71Sopenharmony_ci 6039e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6040e41f4b71Sopenharmony_ci 6041e41f4b71Sopenharmony_ci**参数:** 6042e41f4b71Sopenharmony_ci 6043e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6044e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------- | 6045e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当释放音频渲染器成功,err为undefined,否则为错误对象。 | 6046e41f4b71Sopenharmony_ci 6047e41f4b71Sopenharmony_ci**示例:** 6048e41f4b71Sopenharmony_ci 6049e41f4b71Sopenharmony_ci```ts 6050e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6051e41f4b71Sopenharmony_ci 6052e41f4b71Sopenharmony_ciaudioRenderer.release((err: BusinessError) => { 6053e41f4b71Sopenharmony_ci if (err) { 6054e41f4b71Sopenharmony_ci console.error('Renderer release failed'); 6055e41f4b71Sopenharmony_ci } else { 6056e41f4b71Sopenharmony_ci console.info('Renderer released.'); 6057e41f4b71Sopenharmony_ci } 6058e41f4b71Sopenharmony_ci}); 6059e41f4b71Sopenharmony_ci``` 6060e41f4b71Sopenharmony_ci 6061e41f4b71Sopenharmony_ci### release<sup>8+</sup> 6062e41f4b71Sopenharmony_ci 6063e41f4b71Sopenharmony_cirelease(): Promise\<void> 6064e41f4b71Sopenharmony_ci 6065e41f4b71Sopenharmony_ci释放渲染器。使用Promise方式异步返回结果。 6066e41f4b71Sopenharmony_ci 6067e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6068e41f4b71Sopenharmony_ci 6069e41f4b71Sopenharmony_ci**返回值:** 6070e41f4b71Sopenharmony_ci 6071e41f4b71Sopenharmony_ci| 类型 | 说明 | 6072e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 6073e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 6074e41f4b71Sopenharmony_ci 6075e41f4b71Sopenharmony_ci**示例:** 6076e41f4b71Sopenharmony_ci 6077e41f4b71Sopenharmony_ci```ts 6078e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6079e41f4b71Sopenharmony_ci 6080e41f4b71Sopenharmony_ciaudioRenderer.release().then(() => { 6081e41f4b71Sopenharmony_ci console.info('Renderer released successfully'); 6082e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6083e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 6084e41f4b71Sopenharmony_ci}); 6085e41f4b71Sopenharmony_ci``` 6086e41f4b71Sopenharmony_ci 6087e41f4b71Sopenharmony_ci### write<sup>8+(deprecated)</sup> 6088e41f4b71Sopenharmony_ci 6089e41f4b71Sopenharmony_ciwrite(buffer: ArrayBuffer, callback: AsyncCallback\<number>): void 6090e41f4b71Sopenharmony_ci 6091e41f4b71Sopenharmony_ci写入缓冲区。使用callback方式异步返回结果。 6092e41f4b71Sopenharmony_ci 6093e41f4b71Sopenharmony_ci> **说明:** 6094e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃,建议使用AudioRenderer中的[on('writeData')](#onwritedata11)替代。 6095e41f4b71Sopenharmony_ci 6096e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6097e41f4b71Sopenharmony_ci 6098e41f4b71Sopenharmony_ci**参数:** 6099e41f4b71Sopenharmony_ci 6100e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6101e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | --------------------------------------------------- | 6102e41f4b71Sopenharmony_ci| buffer | ArrayBuffer | 是 | 要写入缓冲区的数据。 | 6103e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数。当写入缓冲区成功,err为undefined,data为获取到的写入的字节数;否则为错误对象。 | 6104e41f4b71Sopenharmony_ci 6105e41f4b71Sopenharmony_ci**示例:** 6106e41f4b71Sopenharmony_ci 6107e41f4b71Sopenharmony_ci```ts 6108e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6109e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 6110e41f4b71Sopenharmony_ci 6111e41f4b71Sopenharmony_cilet bufferSize: number; 6112e41f4b71Sopenharmony_ciclass Options { 6113e41f4b71Sopenharmony_ci offset?: number; 6114e41f4b71Sopenharmony_ci length?: number; 6115e41f4b71Sopenharmony_ci} 6116e41f4b71Sopenharmony_ciaudioRenderer.getBufferSize().then((data: number)=> { 6117e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6118e41f4b71Sopenharmony_ci bufferSize = data; 6119e41f4b71Sopenharmony_ci console.info(`Buffer size: ${bufferSize}`); 6120e41f4b71Sopenharmony_ci let path = getContext().cacheDir; 6121e41f4b71Sopenharmony_ci let filePath = path + '/StarWars10s-2C-48000-4SW.wav'; 6122e41f4b71Sopenharmony_ci let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); 6123e41f4b71Sopenharmony_ci fs.stat(filePath).then(async (stat: fs.Stat) => { 6124e41f4b71Sopenharmony_ci let buf = new ArrayBuffer(bufferSize); 6125e41f4b71Sopenharmony_ci let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1); 6126e41f4b71Sopenharmony_ci for (let i = 0;i < len; i++) { 6127e41f4b71Sopenharmony_ci let options: Options = { 6128e41f4b71Sopenharmony_ci offset: i * bufferSize, 6129e41f4b71Sopenharmony_ci length: bufferSize 6130e41f4b71Sopenharmony_ci }; 6131e41f4b71Sopenharmony_ci let readSize: number = await fs.read(file.fd, buf, options); 6132e41f4b71Sopenharmony_ci let writeSize: number = await new Promise((resolve,reject)=>{ 6133e41f4b71Sopenharmony_ci audioRenderer.write(buf,(err: BusinessError, writeSize: number)=>{ 6134e41f4b71Sopenharmony_ci if(err){ 6135e41f4b71Sopenharmony_ci reject(err) 6136e41f4b71Sopenharmony_ci }else{ 6137e41f4b71Sopenharmony_ci resolve(writeSize) 6138e41f4b71Sopenharmony_ci } 6139e41f4b71Sopenharmony_ci }) 6140e41f4b71Sopenharmony_ci }) 6141e41f4b71Sopenharmony_ci } 6142e41f4b71Sopenharmony_ci }); 6143e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6144e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6145e41f4b71Sopenharmony_ci}); 6146e41f4b71Sopenharmony_ci``` 6147e41f4b71Sopenharmony_ci 6148e41f4b71Sopenharmony_ci### write<sup>8+(deprecated)</sup> 6149e41f4b71Sopenharmony_ci 6150e41f4b71Sopenharmony_ciwrite(buffer: ArrayBuffer): Promise\<number> 6151e41f4b71Sopenharmony_ci 6152e41f4b71Sopenharmony_ci写入缓冲区。使用Promise方式异步返回结果。 6153e41f4b71Sopenharmony_ci 6154e41f4b71Sopenharmony_ci> **说明:** 6155e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃,建议使用AudioRenderer中的[on('writeData')](#onwritedata11)替代。 6156e41f4b71Sopenharmony_ci 6157e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6158e41f4b71Sopenharmony_ci 6159e41f4b71Sopenharmony_ci**参数:** 6160e41f4b71Sopenharmony_ci 6161e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6162e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | --------------------------------------------------- | 6163e41f4b71Sopenharmony_ci| buffer | ArrayBuffer | 是 | 要写入缓冲区的数据。 | 6164e41f4b71Sopenharmony_ci 6165e41f4b71Sopenharmony_ci**返回值:** 6166e41f4b71Sopenharmony_ci 6167e41f4b71Sopenharmony_ci| 类型 | 说明 | 6168e41f4b71Sopenharmony_ci| ---------------- | ------------------------------------------------------------ | 6169e41f4b71Sopenharmony_ci| Promise\<number> | Promise对象,返回写入的字节数。 | 6170e41f4b71Sopenharmony_ci 6171e41f4b71Sopenharmony_ci**示例:** 6172e41f4b71Sopenharmony_ci 6173e41f4b71Sopenharmony_ci```ts 6174e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6175e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 6176e41f4b71Sopenharmony_ci 6177e41f4b71Sopenharmony_cilet bufferSize: number; 6178e41f4b71Sopenharmony_ciclass Options { 6179e41f4b71Sopenharmony_ci offset?: number; 6180e41f4b71Sopenharmony_ci length?: number; 6181e41f4b71Sopenharmony_ci} 6182e41f4b71Sopenharmony_ciaudioRenderer.getBufferSize().then((data: number) => { 6183e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6184e41f4b71Sopenharmony_ci bufferSize = data; 6185e41f4b71Sopenharmony_ci console.info(`BufferSize: ${bufferSize}`); 6186e41f4b71Sopenharmony_ci let path = getContext().cacheDir; 6187e41f4b71Sopenharmony_ci let filePath = path + '/StarWars10s-2C-48000-4SW.wav'; 6188e41f4b71Sopenharmony_ci let file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); 6189e41f4b71Sopenharmony_ci fs.stat(filePath).then(async (stat: fs.Stat) => { 6190e41f4b71Sopenharmony_ci let buf = new ArrayBuffer(bufferSize); 6191e41f4b71Sopenharmony_ci let len = stat.size % bufferSize == 0 ? Math.floor(stat.size / bufferSize) : Math.floor(stat.size / bufferSize + 1); 6192e41f4b71Sopenharmony_ci for (let i = 0;i < len; i++) { 6193e41f4b71Sopenharmony_ci let options: Options = { 6194e41f4b71Sopenharmony_ci offset: i * bufferSize, 6195e41f4b71Sopenharmony_ci length: bufferSize 6196e41f4b71Sopenharmony_ci }; 6197e41f4b71Sopenharmony_ci let readSize: number = await fs.read(file.fd, buf, options); 6198e41f4b71Sopenharmony_ci try{ 6199e41f4b71Sopenharmony_ci let writeSize: number = await audioRenderer.write(buf); 6200e41f4b71Sopenharmony_ci } catch(err) { 6201e41f4b71Sopenharmony_ci let error = err as BusinessError; 6202e41f4b71Sopenharmony_ci console.error(`audioRenderer.write err: ${error}`); 6203e41f4b71Sopenharmony_ci } 6204e41f4b71Sopenharmony_ci } 6205e41f4b71Sopenharmony_ci }); 6206e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6207e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6208e41f4b71Sopenharmony_ci}); 6209e41f4b71Sopenharmony_ci``` 6210e41f4b71Sopenharmony_ci 6211e41f4b71Sopenharmony_ci### getAudioTime<sup>8+</sup> 6212e41f4b71Sopenharmony_ci 6213e41f4b71Sopenharmony_cigetAudioTime(callback: AsyncCallback\<number>): void 6214e41f4b71Sopenharmony_ci 6215e41f4b71Sopenharmony_ci获取播放到当前位置时的时间戳(从 1970 年 1 月 1 日开始),单位为纳秒。使用callback方式异步返回结果。 6216e41f4b71Sopenharmony_ci 6217e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6218e41f4b71Sopenharmony_ci 6219e41f4b71Sopenharmony_ci**参数:** 6220e41f4b71Sopenharmony_ci 6221e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6222e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ---------------- | 6223e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数。当获取时间戳成功,err为undefined,data为获取到的时间戳;否则为错误对象。 | 6224e41f4b71Sopenharmony_ci 6225e41f4b71Sopenharmony_ci**示例:** 6226e41f4b71Sopenharmony_ci 6227e41f4b71Sopenharmony_ci```ts 6228e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6229e41f4b71Sopenharmony_ci 6230e41f4b71Sopenharmony_ciaudioRenderer.getAudioTime((err: BusinessError, timestamp: number) => { 6231e41f4b71Sopenharmony_ci console.info(`Current timestamp: ${timestamp}`); 6232e41f4b71Sopenharmony_ci}); 6233e41f4b71Sopenharmony_ci``` 6234e41f4b71Sopenharmony_ci 6235e41f4b71Sopenharmony_ci### getAudioTime<sup>8+</sup> 6236e41f4b71Sopenharmony_ci 6237e41f4b71Sopenharmony_cigetAudioTime(): Promise\<number> 6238e41f4b71Sopenharmony_ci 6239e41f4b71Sopenharmony_ci获取播放到当前位置时的时间戳(从 1970 年 1 月 1 日开始),单位为纳秒。使用Promise方式异步返回结果。 6240e41f4b71Sopenharmony_ci 6241e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6242e41f4b71Sopenharmony_ci 6243e41f4b71Sopenharmony_ci**返回值:** 6244e41f4b71Sopenharmony_ci 6245e41f4b71Sopenharmony_ci| 类型 | 描述 | 6246e41f4b71Sopenharmony_ci| ---------------- | ----------------------- | 6247e41f4b71Sopenharmony_ci| Promise\<number> | Promise对象,返回时间戳。 | 6248e41f4b71Sopenharmony_ci 6249e41f4b71Sopenharmony_ci**示例:** 6250e41f4b71Sopenharmony_ci 6251e41f4b71Sopenharmony_ci```ts 6252e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6253e41f4b71Sopenharmony_ci 6254e41f4b71Sopenharmony_ciaudioRenderer.getAudioTime().then((timestamp: number) => { 6255e41f4b71Sopenharmony_ci console.info(`Current timestamp: ${timestamp}`); 6256e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6257e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 6258e41f4b71Sopenharmony_ci}); 6259e41f4b71Sopenharmony_ci``` 6260e41f4b71Sopenharmony_ci 6261e41f4b71Sopenharmony_ci### getAudioTimeSync<sup>10+</sup> 6262e41f4b71Sopenharmony_ci 6263e41f4b71Sopenharmony_cigetAudioTimeSync(): number 6264e41f4b71Sopenharmony_ci 6265e41f4b71Sopenharmony_ci获取播放到当前位置时的时间戳(从 1970 年 1 月 1 日开始),单位为纳秒。同步返回结果。 6266e41f4b71Sopenharmony_ci 6267e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6268e41f4b71Sopenharmony_ci 6269e41f4b71Sopenharmony_ci**返回值:** 6270e41f4b71Sopenharmony_ci 6271e41f4b71Sopenharmony_ci| 类型 | 描述 | 6272e41f4b71Sopenharmony_ci| ---------------- | ----------------------- | 6273e41f4b71Sopenharmony_ci| number | 返回时间戳。 | 6274e41f4b71Sopenharmony_ci 6275e41f4b71Sopenharmony_ci**示例:** 6276e41f4b71Sopenharmony_ci 6277e41f4b71Sopenharmony_ci```ts 6278e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6279e41f4b71Sopenharmony_ci 6280e41f4b71Sopenharmony_citry { 6281e41f4b71Sopenharmony_ci let timestamp: number = audioRenderer.getAudioTimeSync(); 6282e41f4b71Sopenharmony_ci console.info(`Current timestamp: ${timestamp}`); 6283e41f4b71Sopenharmony_ci} catch (err) { 6284e41f4b71Sopenharmony_ci let error = err as BusinessError; 6285e41f4b71Sopenharmony_ci console.error(`ERROR: ${error}`); 6286e41f4b71Sopenharmony_ci} 6287e41f4b71Sopenharmony_ci``` 6288e41f4b71Sopenharmony_ci 6289e41f4b71Sopenharmony_ci### getBufferSize<sup>8+</sup> 6290e41f4b71Sopenharmony_ci 6291e41f4b71Sopenharmony_cigetBufferSize(callback: AsyncCallback\<number>): void 6292e41f4b71Sopenharmony_ci 6293e41f4b71Sopenharmony_ci获取音频渲染器的最小缓冲区大小。使用callback方式异步返回结果。 6294e41f4b71Sopenharmony_ci 6295e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6296e41f4b71Sopenharmony_ci 6297e41f4b71Sopenharmony_ci**参数:** 6298e41f4b71Sopenharmony_ci 6299e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6300e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | -------------------- | 6301e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数。当获取音频渲染器的最小缓冲区大小成功,err为undefined,data为获取到的最小缓冲区大小;否则为错误对象。 | 6302e41f4b71Sopenharmony_ci 6303e41f4b71Sopenharmony_ci**示例:** 6304e41f4b71Sopenharmony_ci 6305e41f4b71Sopenharmony_ci```ts 6306e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6307e41f4b71Sopenharmony_ci 6308e41f4b71Sopenharmony_cilet bufferSize: number; 6309e41f4b71Sopenharmony_ci 6310e41f4b71Sopenharmony_ciaudioRenderer.getBufferSize((err: BusinessError, data: number) => { 6311e41f4b71Sopenharmony_ci if (err) { 6312e41f4b71Sopenharmony_ci console.error('getBufferSize error'); 6313e41f4b71Sopenharmony_ci } else { 6314e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6315e41f4b71Sopenharmony_ci bufferSize = data; 6316e41f4b71Sopenharmony_ci } 6317e41f4b71Sopenharmony_ci}); 6318e41f4b71Sopenharmony_ci``` 6319e41f4b71Sopenharmony_ci 6320e41f4b71Sopenharmony_ci### getBufferSize<sup>8+</sup> 6321e41f4b71Sopenharmony_ci 6322e41f4b71Sopenharmony_cigetBufferSize(): Promise\<number> 6323e41f4b71Sopenharmony_ci 6324e41f4b71Sopenharmony_ci获取音频渲染器的最小缓冲区大小。使用Promise方式异步返回结果。 6325e41f4b71Sopenharmony_ci 6326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6327e41f4b71Sopenharmony_ci 6328e41f4b71Sopenharmony_ci**返回值:** 6329e41f4b71Sopenharmony_ci 6330e41f4b71Sopenharmony_ci| 类型 | 说明 | 6331e41f4b71Sopenharmony_ci| ---------------- | --------------------------- | 6332e41f4b71Sopenharmony_ci| Promise\<number> | Promise对象,返回缓冲区大小。 | 6333e41f4b71Sopenharmony_ci 6334e41f4b71Sopenharmony_ci**示例:** 6335e41f4b71Sopenharmony_ci 6336e41f4b71Sopenharmony_ci```ts 6337e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6338e41f4b71Sopenharmony_ci 6339e41f4b71Sopenharmony_cilet bufferSize: number; 6340e41f4b71Sopenharmony_ci 6341e41f4b71Sopenharmony_ciaudioRenderer.getBufferSize().then((data: number) => { 6342e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${data}`); 6343e41f4b71Sopenharmony_ci bufferSize = data; 6344e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6345e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${err}`); 6346e41f4b71Sopenharmony_ci}); 6347e41f4b71Sopenharmony_ci``` 6348e41f4b71Sopenharmony_ci 6349e41f4b71Sopenharmony_ci### getBufferSizeSync<sup>10+</sup> 6350e41f4b71Sopenharmony_ci 6351e41f4b71Sopenharmony_cigetBufferSizeSync(): number 6352e41f4b71Sopenharmony_ci 6353e41f4b71Sopenharmony_ci获取音频渲染器的最小缓冲区大小,同步返回结果。 6354e41f4b71Sopenharmony_ci 6355e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6356e41f4b71Sopenharmony_ci 6357e41f4b71Sopenharmony_ci**返回值:** 6358e41f4b71Sopenharmony_ci 6359e41f4b71Sopenharmony_ci| 类型 | 说明 | 6360e41f4b71Sopenharmony_ci| ---------------- | --------------------------- | 6361e41f4b71Sopenharmony_ci| number | 返回缓冲区大小。 | 6362e41f4b71Sopenharmony_ci 6363e41f4b71Sopenharmony_ci**示例:** 6364e41f4b71Sopenharmony_ci 6365e41f4b71Sopenharmony_ci```ts 6366e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6367e41f4b71Sopenharmony_ci 6368e41f4b71Sopenharmony_cilet bufferSize: number = 0; 6369e41f4b71Sopenharmony_ci 6370e41f4b71Sopenharmony_citry { 6371e41f4b71Sopenharmony_ci bufferSize = audioRenderer.getBufferSizeSync(); 6372e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRenderLog: getBufferSize: SUCCESS ${bufferSize}`); 6373e41f4b71Sopenharmony_ci} catch (err) { 6374e41f4b71Sopenharmony_ci let error = err as BusinessError; 6375e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRenderLog: getBufferSize: ERROR: ${error}`); 6376e41f4b71Sopenharmony_ci} 6377e41f4b71Sopenharmony_ci``` 6378e41f4b71Sopenharmony_ci 6379e41f4b71Sopenharmony_ci### setRenderRate<sup>8+(deprecated)</sup> 6380e41f4b71Sopenharmony_ci 6381e41f4b71Sopenharmony_cisetRenderRate(rate: AudioRendererRate, callback: AsyncCallback\<void>): void 6382e41f4b71Sopenharmony_ci 6383e41f4b71Sopenharmony_ci设置音频渲染速率。使用callback方式异步返回结果。 6384e41f4b71Sopenharmony_ci 6385e41f4b71Sopenharmony_ci> **说明:** 6386e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。建议使用AudioRenderer中的[setSpeed](#setspeed11)替代。 6387e41f4b71Sopenharmony_ci 6388e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6389e41f4b71Sopenharmony_ci 6390e41f4b71Sopenharmony_ci**参数:** 6391e41f4b71Sopenharmony_ci 6392e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6393e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ------------------------ | 6394e41f4b71Sopenharmony_ci| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 | 6395e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。当设置音频渲染速率成功,err为undefined,否则为错误对象。 | 6396e41f4b71Sopenharmony_ci 6397e41f4b71Sopenharmony_ci**示例:** 6398e41f4b71Sopenharmony_ci 6399e41f4b71Sopenharmony_ci```ts 6400e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6401e41f4b71Sopenharmony_ci 6402e41f4b71Sopenharmony_ciaudioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL, (err: BusinessError) => { 6403e41f4b71Sopenharmony_ci if (err) { 6404e41f4b71Sopenharmony_ci console.error('Failed to set params'); 6405e41f4b71Sopenharmony_ci } else { 6406e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate a successful render rate setting.'); 6407e41f4b71Sopenharmony_ci } 6408e41f4b71Sopenharmony_ci}); 6409e41f4b71Sopenharmony_ci``` 6410e41f4b71Sopenharmony_ci 6411e41f4b71Sopenharmony_ci### setRenderRate<sup>8+(deprecated)</sup> 6412e41f4b71Sopenharmony_ci 6413e41f4b71Sopenharmony_cisetRenderRate(rate: AudioRendererRate): Promise\<void> 6414e41f4b71Sopenharmony_ci 6415e41f4b71Sopenharmony_ci设置音频渲染速率。使用Promise方式异步返回结果。 6416e41f4b71Sopenharmony_ci 6417e41f4b71Sopenharmony_ci> **说明:** 6418e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。建议使用AudioRenderer中的[setSpeed](#setspeed11)替代。 6419e41f4b71Sopenharmony_ci 6420e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6421e41f4b71Sopenharmony_ci 6422e41f4b71Sopenharmony_ci**参数:** 6423e41f4b71Sopenharmony_ci 6424e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6425e41f4b71Sopenharmony_ci| ------ | ---------------------------------------- | ---- | ------------ | 6426e41f4b71Sopenharmony_ci| rate | [AudioRendererRate](#audiorendererrate8) | 是 | 渲染的速率。 | 6427e41f4b71Sopenharmony_ci 6428e41f4b71Sopenharmony_ci**返回值:** 6429e41f4b71Sopenharmony_ci 6430e41f4b71Sopenharmony_ci| 类型 | 说明 | 6431e41f4b71Sopenharmony_ci| -------------- | ------------------------- | 6432e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象,无返回结果。 | 6433e41f4b71Sopenharmony_ci 6434e41f4b71Sopenharmony_ci**示例:** 6435e41f4b71Sopenharmony_ci 6436e41f4b71Sopenharmony_ci```ts 6437e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6438e41f4b71Sopenharmony_ci 6439e41f4b71Sopenharmony_ciaudioRenderer.setRenderRate(audio.AudioRendererRate.RENDER_RATE_NORMAL).then(() => { 6440e41f4b71Sopenharmony_ci console.info('setRenderRate SUCCESS'); 6441e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6442e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 6443e41f4b71Sopenharmony_ci}); 6444e41f4b71Sopenharmony_ci``` 6445e41f4b71Sopenharmony_ci 6446e41f4b71Sopenharmony_ci### setSpeed<sup>11+</sup> 6447e41f4b71Sopenharmony_ci 6448e41f4b71Sopenharmony_cisetSpeed(speed: number): void 6449e41f4b71Sopenharmony_ci 6450e41f4b71Sopenharmony_ci设置播放倍速。 6451e41f4b71Sopenharmony_ci 6452e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6453e41f4b71Sopenharmony_ci 6454e41f4b71Sopenharmony_ci**参数:** 6455e41f4b71Sopenharmony_ci 6456e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6457e41f4b71Sopenharmony_ci| ------ | ---------------------------------------- | ---- |----------------------| 6458e41f4b71Sopenharmony_ci| speed | number | 是 | 设置播放的倍速值(倍速范围:0.125-4.0)。 | 6459e41f4b71Sopenharmony_ci 6460e41f4b71Sopenharmony_ci**错误码:** 6461e41f4b71Sopenharmony_ci 6462e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 6463e41f4b71Sopenharmony_ci 6464e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6465e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 6466e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 6467e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 6468e41f4b71Sopenharmony_ci 6469e41f4b71Sopenharmony_ci**示例:** 6470e41f4b71Sopenharmony_ci 6471e41f4b71Sopenharmony_ci```ts 6472e41f4b71Sopenharmony_ciaudioRenderer.setSpeed(1.5); 6473e41f4b71Sopenharmony_ci``` 6474e41f4b71Sopenharmony_ci 6475e41f4b71Sopenharmony_ci### getRenderRate<sup>8+(deprecated)</sup> 6476e41f4b71Sopenharmony_ci 6477e41f4b71Sopenharmony_cigetRenderRate(callback: AsyncCallback\<AudioRendererRate>): void 6478e41f4b71Sopenharmony_ci 6479e41f4b71Sopenharmony_ci获取当前渲染速率。使用callback方式异步返回结果。 6480e41f4b71Sopenharmony_ci 6481e41f4b71Sopenharmony_ci> **说明:** 6482e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。建议使用AudioRenderer中的[getSpeed](#getspeed11)替代。 6483e41f4b71Sopenharmony_ci 6484e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6485e41f4b71Sopenharmony_ci 6486e41f4b71Sopenharmony_ci**参数:** 6487e41f4b71Sopenharmony_ci 6488e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6489e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------- | ---- | ------------------ | 6490e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioRendererRate](#audiorendererrate8)> | 是 | 回调函数。当获取当前渲染速率成功,err为undefined,data为获取到的当前渲染速率;否则为错误对象。 | 6491e41f4b71Sopenharmony_ci 6492e41f4b71Sopenharmony_ci**示例:** 6493e41f4b71Sopenharmony_ci 6494e41f4b71Sopenharmony_ci```ts 6495e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6496e41f4b71Sopenharmony_ci 6497e41f4b71Sopenharmony_ciaudioRenderer.getRenderRate((err: BusinessError, renderRate: audio.AudioRendererRate) => { 6498e41f4b71Sopenharmony_ci console.info(`getRenderRate: ${renderRate}`); 6499e41f4b71Sopenharmony_ci}); 6500e41f4b71Sopenharmony_ci``` 6501e41f4b71Sopenharmony_ci 6502e41f4b71Sopenharmony_ci### getRenderRate<sup>8+(deprecated)</sup> 6503e41f4b71Sopenharmony_ci 6504e41f4b71Sopenharmony_cigetRenderRate(): Promise\<AudioRendererRate> 6505e41f4b71Sopenharmony_ci 6506e41f4b71Sopenharmony_ci获取当前渲染速率。使用Promise方式异步返回结果。 6507e41f4b71Sopenharmony_ci 6508e41f4b71Sopenharmony_ci> **说明:** 6509e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃。建议使用AudioRenderer中的[getSpeed](#getspeed11)替代。 6510e41f4b71Sopenharmony_ci 6511e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6512e41f4b71Sopenharmony_ci 6513e41f4b71Sopenharmony_ci**返回值:** 6514e41f4b71Sopenharmony_ci 6515e41f4b71Sopenharmony_ci| 类型 | 说明 | 6516e41f4b71Sopenharmony_ci| ------------------------------------------------- | ------------------------- | 6517e41f4b71Sopenharmony_ci| Promise<[AudioRendererRate](#audiorendererrate8)> | Promise对象,返回渲染速率。 | 6518e41f4b71Sopenharmony_ci 6519e41f4b71Sopenharmony_ci**示例:** 6520e41f4b71Sopenharmony_ci 6521e41f4b71Sopenharmony_ci```ts 6522e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6523e41f4b71Sopenharmony_ci 6524e41f4b71Sopenharmony_ciaudioRenderer.getRenderRate().then((renderRate: audio.AudioRendererRate) => { 6525e41f4b71Sopenharmony_ci console.info(`getRenderRate: ${renderRate}`); 6526e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6527e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 6528e41f4b71Sopenharmony_ci}); 6529e41f4b71Sopenharmony_ci``` 6530e41f4b71Sopenharmony_ci 6531e41f4b71Sopenharmony_ci### getRenderRateSync<sup>10+(deprecated)</sup> 6532e41f4b71Sopenharmony_ci 6533e41f4b71Sopenharmony_cigetRenderRateSync(): AudioRendererRate 6534e41f4b71Sopenharmony_ci 6535e41f4b71Sopenharmony_ci获取当前渲染速率,同步返回结果。 6536e41f4b71Sopenharmony_ci 6537e41f4b71Sopenharmony_ci> **说明:** 6538e41f4b71Sopenharmony_ci> 从 API version 10 开始支持,从 API version 11 开始废弃。建议使用AudioRenderer中的[getSpeed](#getspeed11)替代。 6539e41f4b71Sopenharmony_ci 6540e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6541e41f4b71Sopenharmony_ci 6542e41f4b71Sopenharmony_ci**返回值:** 6543e41f4b71Sopenharmony_ci 6544e41f4b71Sopenharmony_ci| 类型 | 说明 | 6545e41f4b71Sopenharmony_ci| ------------------------------------------------- | ------------------------- | 6546e41f4b71Sopenharmony_ci| [AudioRendererRate](#audiorendererrate8) | 返回渲染速率。 | 6547e41f4b71Sopenharmony_ci 6548e41f4b71Sopenharmony_ci**示例:** 6549e41f4b71Sopenharmony_ci 6550e41f4b71Sopenharmony_ci```ts 6551e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6552e41f4b71Sopenharmony_ci 6553e41f4b71Sopenharmony_citry { 6554e41f4b71Sopenharmony_ci let renderRate: audio.AudioRendererRate = audioRenderer.getRenderRateSync(); 6555e41f4b71Sopenharmony_ci console.info(`getRenderRate: ${renderRate}`); 6556e41f4b71Sopenharmony_ci} catch (err) { 6557e41f4b71Sopenharmony_ci let error = err as BusinessError; 6558e41f4b71Sopenharmony_ci console.error(`ERROR: ${error}`); 6559e41f4b71Sopenharmony_ci} 6560e41f4b71Sopenharmony_ci``` 6561e41f4b71Sopenharmony_ci 6562e41f4b71Sopenharmony_ci### getSpeed<sup>11+</sup> 6563e41f4b71Sopenharmony_ci 6564e41f4b71Sopenharmony_cigetSpeed(): number 6565e41f4b71Sopenharmony_ci 6566e41f4b71Sopenharmony_ci获取播放倍速。 6567e41f4b71Sopenharmony_ci 6568e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6569e41f4b71Sopenharmony_ci 6570e41f4b71Sopenharmony_ci**返回值:** 6571e41f4b71Sopenharmony_ci 6572e41f4b71Sopenharmony_ci| 类型 | 说明 | 6573e41f4b71Sopenharmony_ci| ------------------------------------------------- |-----------| 6574e41f4b71Sopenharmony_ci| number | 返回播放的倍速值。 | 6575e41f4b71Sopenharmony_ci 6576e41f4b71Sopenharmony_ci**示例:** 6577e41f4b71Sopenharmony_ci 6578e41f4b71Sopenharmony_ci```ts 6579e41f4b71Sopenharmony_cilet speed = audioRenderer.getSpeed(); 6580e41f4b71Sopenharmony_ci``` 6581e41f4b71Sopenharmony_ci 6582e41f4b71Sopenharmony_ci### setInterruptMode<sup>9+</sup> 6583e41f4b71Sopenharmony_ci 6584e41f4b71Sopenharmony_cisetInterruptMode(mode: InterruptMode): Promise<void> 6585e41f4b71Sopenharmony_ci 6586e41f4b71Sopenharmony_ci设置应用的焦点模型。使用Promise异步回调。 6587e41f4b71Sopenharmony_ci 6588e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6589e41f4b71Sopenharmony_ci 6590e41f4b71Sopenharmony_ci**参数:** 6591e41f4b71Sopenharmony_ci 6592e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6593e41f4b71Sopenharmony_ci| ---------- | ---------------------------------- | ------ | ---------- | 6594e41f4b71Sopenharmony_ci| mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。 | 6595e41f4b71Sopenharmony_ci 6596e41f4b71Sopenharmony_ci**返回值:** 6597e41f4b71Sopenharmony_ci 6598e41f4b71Sopenharmony_ci| 类型 | 说明 | 6599e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6600e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 6601e41f4b71Sopenharmony_ci 6602e41f4b71Sopenharmony_ci**示例:** 6603e41f4b71Sopenharmony_ci 6604e41f4b71Sopenharmony_ci```ts 6605e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6606e41f4b71Sopenharmony_ci 6607e41f4b71Sopenharmony_cilet mode = 0; 6608e41f4b71Sopenharmony_ci 6609e41f4b71Sopenharmony_ciaudioRenderer.setInterruptMode(mode).then(() => { 6610e41f4b71Sopenharmony_ci console.info('setInterruptMode Success!'); 6611e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6612e41f4b71Sopenharmony_ci console.error(`setInterruptMode Fail: ${err}`); 6613e41f4b71Sopenharmony_ci}); 6614e41f4b71Sopenharmony_ci``` 6615e41f4b71Sopenharmony_ci### setInterruptMode<sup>9+</sup> 6616e41f4b71Sopenharmony_ci 6617e41f4b71Sopenharmony_cisetInterruptMode(mode: InterruptMode, callback: AsyncCallback\<void>): void 6618e41f4b71Sopenharmony_ci 6619e41f4b71Sopenharmony_ci设置应用的焦点模型。使用Callback回调返回执行结果。 6620e41f4b71Sopenharmony_ci 6621e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6622e41f4b71Sopenharmony_ci 6623e41f4b71Sopenharmony_ci**参数:** 6624e41f4b71Sopenharmony_ci 6625e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6626e41f4b71Sopenharmony_ci| ------- | ----------------------------------- | ------ | -------------- | 6627e41f4b71Sopenharmony_ci|mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。| 6628e41f4b71Sopenharmony_ci|callback | AsyncCallback\<void> | 是 |回调函数。当设置应用的焦点模型成功,err为undefined,否则为错误对象。| 6629e41f4b71Sopenharmony_ci 6630e41f4b71Sopenharmony_ci**示例:** 6631e41f4b71Sopenharmony_ci 6632e41f4b71Sopenharmony_ci```ts 6633e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6634e41f4b71Sopenharmony_ci 6635e41f4b71Sopenharmony_cilet mode = 1; 6636e41f4b71Sopenharmony_ci 6637e41f4b71Sopenharmony_ciaudioRenderer.setInterruptMode(mode, (err: BusinessError) => { 6638e41f4b71Sopenharmony_ci if(err){ 6639e41f4b71Sopenharmony_ci console.error(`setInterruptMode Fail: ${err}`); 6640e41f4b71Sopenharmony_ci } 6641e41f4b71Sopenharmony_ci console.info('setInterruptMode Success!'); 6642e41f4b71Sopenharmony_ci}); 6643e41f4b71Sopenharmony_ci``` 6644e41f4b71Sopenharmony_ci 6645e41f4b71Sopenharmony_ci### setInterruptModeSync<sup>10+</sup> 6646e41f4b71Sopenharmony_ci 6647e41f4b71Sopenharmony_cisetInterruptModeSync(mode: InterruptMode): void 6648e41f4b71Sopenharmony_ci 6649e41f4b71Sopenharmony_ci设置应用的焦点模型,同步设置。 6650e41f4b71Sopenharmony_ci 6651e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 6652e41f4b71Sopenharmony_ci 6653e41f4b71Sopenharmony_ci**参数:** 6654e41f4b71Sopenharmony_ci 6655e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6656e41f4b71Sopenharmony_ci| ---------- | ---------------------------------- | ------ | ---------- | 6657e41f4b71Sopenharmony_ci| mode | [InterruptMode](#interruptmode9) | 是 | 焦点模型。 | 6658e41f4b71Sopenharmony_ci 6659e41f4b71Sopenharmony_ci**错误码:** 6660e41f4b71Sopenharmony_ci 6661e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 6662e41f4b71Sopenharmony_ci 6663e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6664e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 6665e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 6666e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 6667e41f4b71Sopenharmony_ci 6668e41f4b71Sopenharmony_ci**示例:** 6669e41f4b71Sopenharmony_ci 6670e41f4b71Sopenharmony_ci```ts 6671e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6672e41f4b71Sopenharmony_ci 6673e41f4b71Sopenharmony_citry { 6674e41f4b71Sopenharmony_ci audioRenderer.setInterruptModeSync(0); 6675e41f4b71Sopenharmony_ci console.info('setInterruptMode Success!'); 6676e41f4b71Sopenharmony_ci} catch (err) { 6677e41f4b71Sopenharmony_ci let error = err as BusinessError; 6678e41f4b71Sopenharmony_ci console.error(`setInterruptMode Fail: ${error}`); 6679e41f4b71Sopenharmony_ci} 6680e41f4b71Sopenharmony_ci``` 6681e41f4b71Sopenharmony_ci 6682e41f4b71Sopenharmony_ci### setVolume<sup>9+</sup> 6683e41f4b71Sopenharmony_ci 6684e41f4b71Sopenharmony_cisetVolume(volume: number): Promise<void> 6685e41f4b71Sopenharmony_ci 6686e41f4b71Sopenharmony_ci设置应用的音量。使用Promise异步回调。 6687e41f4b71Sopenharmony_ci 6688e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6689e41f4b71Sopenharmony_ci 6690e41f4b71Sopenharmony_ci**参数:** 6691e41f4b71Sopenharmony_ci 6692e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6693e41f4b71Sopenharmony_ci| ---------- | ------- | ------ | ------------------- | 6694e41f4b71Sopenharmony_ci| volume | number | 是 | 音量值范围为0.0-1.0。 | 6695e41f4b71Sopenharmony_ci 6696e41f4b71Sopenharmony_ci**返回值:** 6697e41f4b71Sopenharmony_ci 6698e41f4b71Sopenharmony_ci| 类型 | 说明 | 6699e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6700e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 6701e41f4b71Sopenharmony_ci 6702e41f4b71Sopenharmony_ci**示例:** 6703e41f4b71Sopenharmony_ci 6704e41f4b71Sopenharmony_ci```ts 6705e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6706e41f4b71Sopenharmony_ci 6707e41f4b71Sopenharmony_ciaudioRenderer.setVolume(0.5).then(() => { 6708e41f4b71Sopenharmony_ci console.info('setVolume Success!'); 6709e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6710e41f4b71Sopenharmony_ci console.error(`setVolume Fail: ${err}`); 6711e41f4b71Sopenharmony_ci}); 6712e41f4b71Sopenharmony_ci``` 6713e41f4b71Sopenharmony_ci### setVolume<sup>9+</sup> 6714e41f4b71Sopenharmony_ci 6715e41f4b71Sopenharmony_cisetVolume(volume: number, callback: AsyncCallback\<void>): void 6716e41f4b71Sopenharmony_ci 6717e41f4b71Sopenharmony_ci设置应用的音量。使用Callback回调返回执行结果。 6718e41f4b71Sopenharmony_ci 6719e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6720e41f4b71Sopenharmony_ci 6721e41f4b71Sopenharmony_ci**参数:** 6722e41f4b71Sopenharmony_ci 6723e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6724e41f4b71Sopenharmony_ci| ------- | -----------| ------ | ------------------- | 6725e41f4b71Sopenharmony_ci|volume | number | 是 | 音量值范围为0.0-1.0。 | 6726e41f4b71Sopenharmony_ci|callback | AsyncCallback\<void> | 是 |回调函数。当设置应用的音量成功,err为undefined,否则为错误对象。| 6727e41f4b71Sopenharmony_ci 6728e41f4b71Sopenharmony_ci**示例:** 6729e41f4b71Sopenharmony_ci 6730e41f4b71Sopenharmony_ci```ts 6731e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6732e41f4b71Sopenharmony_ci 6733e41f4b71Sopenharmony_ciaudioRenderer.setVolume(0.5, (err: BusinessError) => { 6734e41f4b71Sopenharmony_ci if(err){ 6735e41f4b71Sopenharmony_ci console.error(`setVolume Fail: ${err}`); 6736e41f4b71Sopenharmony_ci return; 6737e41f4b71Sopenharmony_ci } 6738e41f4b71Sopenharmony_ci console.info('setVolume Success!'); 6739e41f4b71Sopenharmony_ci}); 6740e41f4b71Sopenharmony_ci``` 6741e41f4b71Sopenharmony_ci### getVolume<sup>12+</sup> 6742e41f4b71Sopenharmony_ci 6743e41f4b71Sopenharmony_cigetVolume(): number 6744e41f4b71Sopenharmony_ci 6745e41f4b71Sopenharmony_ci获取音频渲染器的当前音量值,同步返回结果。 6746e41f4b71Sopenharmony_ci 6747e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6748e41f4b71Sopenharmony_ci 6749e41f4b71Sopenharmony_ci**返回值:** 6750e41f4b71Sopenharmony_ci 6751e41f4b71Sopenharmony_ci| 类型 | 说明 | 6752e41f4b71Sopenharmony_ci| ---------------- | --------------------------- | 6753e41f4b71Sopenharmony_ci| number | 返回音量大小,音量范围[0.0-1.0]。 | 6754e41f4b71Sopenharmony_ci 6755e41f4b71Sopenharmony_ci**示例:** 6756e41f4b71Sopenharmony_ci 6757e41f4b71Sopenharmony_ci```ts 6758e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6759e41f4b71Sopenharmony_ci 6760e41f4b71Sopenharmony_citry { 6761e41f4b71Sopenharmony_ci let value: number = audioRenderer.getVolume(); 6762e41f4b71Sopenharmony_ci console.info(`Indicate that the volume is obtained ${value}.`); 6763e41f4b71Sopenharmony_ci} catch (err) { 6764e41f4b71Sopenharmony_ci let error = err as BusinessError; 6765e41f4b71Sopenharmony_ci console.error(`Failed to obtain the volume, error ${error}.`); 6766e41f4b71Sopenharmony_ci} 6767e41f4b71Sopenharmony_ci``` 6768e41f4b71Sopenharmony_ci 6769e41f4b71Sopenharmony_ci### getMinStreamVolume<sup>10+</sup> 6770e41f4b71Sopenharmony_ci 6771e41f4b71Sopenharmony_cigetMinStreamVolume(callback: AsyncCallback<number>): void 6772e41f4b71Sopenharmony_ci 6773e41f4b71Sopenharmony_ci获取应用基于音频流的最小音量。使用Callback回调返回。 6774e41f4b71Sopenharmony_ci 6775e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6776e41f4b71Sopenharmony_ci 6777e41f4b71Sopenharmony_ci**参数:** 6778e41f4b71Sopenharmony_ci 6779e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6780e41f4b71Sopenharmony_ci| ------- | -----------| ------ | ------------------- | 6781e41f4b71Sopenharmony_ci|callback |AsyncCallback<number> | 是 |回调函数。当获取应用基于音频流的最小音量成功,err为undefined,data为获取到的应用基于音频流的最小音量(音量范围0-1);否则为错误对象。| 6782e41f4b71Sopenharmony_ci 6783e41f4b71Sopenharmony_ci**示例:** 6784e41f4b71Sopenharmony_ci 6785e41f4b71Sopenharmony_ci```ts 6786e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6787e41f4b71Sopenharmony_ci 6788e41f4b71Sopenharmony_ciaudioRenderer.getMinStreamVolume((err: BusinessError, minVolume: number) => { 6789e41f4b71Sopenharmony_ci if (err) { 6790e41f4b71Sopenharmony_ci console.error(`getMinStreamVolume error: ${err}`); 6791e41f4b71Sopenharmony_ci } else { 6792e41f4b71Sopenharmony_ci console.info(`getMinStreamVolume Success! ${minVolume}`); 6793e41f4b71Sopenharmony_ci } 6794e41f4b71Sopenharmony_ci}); 6795e41f4b71Sopenharmony_ci``` 6796e41f4b71Sopenharmony_ci### getMinStreamVolume<sup>10+</sup> 6797e41f4b71Sopenharmony_ci 6798e41f4b71Sopenharmony_cigetMinStreamVolume(): Promise<number> 6799e41f4b71Sopenharmony_ci 6800e41f4b71Sopenharmony_ci获取应用基于音频流的最小音量。使用Promise异步回调。 6801e41f4b71Sopenharmony_ci 6802e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6803e41f4b71Sopenharmony_ci 6804e41f4b71Sopenharmony_ci**返回值:** 6805e41f4b71Sopenharmony_ci 6806e41f4b71Sopenharmony_ci| 类型 | 说明 | 6807e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6808e41f4b71Sopenharmony_ci| Promise<number>| Promise对象,返回音频流最小音量(音量范围0-1)。| 6809e41f4b71Sopenharmony_ci 6810e41f4b71Sopenharmony_ci**示例:** 6811e41f4b71Sopenharmony_ci 6812e41f4b71Sopenharmony_ci```ts 6813e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6814e41f4b71Sopenharmony_ci 6815e41f4b71Sopenharmony_ciaudioRenderer.getMinStreamVolume().then((value: number) => { 6816e41f4b71Sopenharmony_ci console.info(`Get min stream volume Success! ${value}`); 6817e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6818e41f4b71Sopenharmony_ci console.error(`Get min stream volume Fail: ${err}`); 6819e41f4b71Sopenharmony_ci}); 6820e41f4b71Sopenharmony_ci``` 6821e41f4b71Sopenharmony_ci 6822e41f4b71Sopenharmony_ci### getMinStreamVolumeSync<sup>10+</sup> 6823e41f4b71Sopenharmony_ci 6824e41f4b71Sopenharmony_cigetMinStreamVolumeSync(): number 6825e41f4b71Sopenharmony_ci 6826e41f4b71Sopenharmony_ci获取应用基于音频流的最小音量,同步返回结果。 6827e41f4b71Sopenharmony_ci 6828e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6829e41f4b71Sopenharmony_ci 6830e41f4b71Sopenharmony_ci**返回值:** 6831e41f4b71Sopenharmony_ci 6832e41f4b71Sopenharmony_ci| 类型 | 说明 | 6833e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6834e41f4b71Sopenharmony_ci| number| 返回音频流最小音量(音量范围0-1)。| 6835e41f4b71Sopenharmony_ci 6836e41f4b71Sopenharmony_ci**示例:** 6837e41f4b71Sopenharmony_ci 6838e41f4b71Sopenharmony_ci```ts 6839e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6840e41f4b71Sopenharmony_ci 6841e41f4b71Sopenharmony_citry { 6842e41f4b71Sopenharmony_ci let value: number = audioRenderer.getMinStreamVolumeSync(); 6843e41f4b71Sopenharmony_ci console.info(`Get min stream volume Success! ${value}`); 6844e41f4b71Sopenharmony_ci} catch (err) { 6845e41f4b71Sopenharmony_ci let error = err as BusinessError; 6846e41f4b71Sopenharmony_ci console.error(`Get min stream volume Fail: ${error}`); 6847e41f4b71Sopenharmony_ci} 6848e41f4b71Sopenharmony_ci``` 6849e41f4b71Sopenharmony_ci 6850e41f4b71Sopenharmony_ci### getMaxStreamVolume<sup>10+</sup> 6851e41f4b71Sopenharmony_ci 6852e41f4b71Sopenharmony_cigetMaxStreamVolume(callback: AsyncCallback<number>): void 6853e41f4b71Sopenharmony_ci 6854e41f4b71Sopenharmony_ci获取应用基于音频流的最大音量。使用Callback回调返回。 6855e41f4b71Sopenharmony_ci 6856e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6857e41f4b71Sopenharmony_ci 6858e41f4b71Sopenharmony_ci**参数:** 6859e41f4b71Sopenharmony_ci 6860e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6861e41f4b71Sopenharmony_ci| ------- | -----------| ------ | ------------------- | 6862e41f4b71Sopenharmony_ci|callback | AsyncCallback<number> | 是 |回调函数。当获取应用基于音频流的最大音量成功,err为undefined,data为获取到的应用基于音频流的最大音量(音量范围0-1);否则为错误对象。| 6863e41f4b71Sopenharmony_ci 6864e41f4b71Sopenharmony_ci**示例:** 6865e41f4b71Sopenharmony_ci 6866e41f4b71Sopenharmony_ci```ts 6867e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6868e41f4b71Sopenharmony_ci 6869e41f4b71Sopenharmony_ciaudioRenderer.getMaxStreamVolume((err: BusinessError, maxVolume: number) => { 6870e41f4b71Sopenharmony_ci if (err) { 6871e41f4b71Sopenharmony_ci console.error(`getMaxStreamVolume Fail: ${err}`); 6872e41f4b71Sopenharmony_ci } else { 6873e41f4b71Sopenharmony_ci console.info(`getMaxStreamVolume Success! ${maxVolume}`); 6874e41f4b71Sopenharmony_ci } 6875e41f4b71Sopenharmony_ci}); 6876e41f4b71Sopenharmony_ci``` 6877e41f4b71Sopenharmony_ci### getMaxStreamVolume<sup>10+</sup> 6878e41f4b71Sopenharmony_ci 6879e41f4b71Sopenharmony_cigetMaxStreamVolume(): Promise<number> 6880e41f4b71Sopenharmony_ci 6881e41f4b71Sopenharmony_ci获取应用基于音频流的最大音量。使用Promise异步回调。 6882e41f4b71Sopenharmony_ci 6883e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6884e41f4b71Sopenharmony_ci 6885e41f4b71Sopenharmony_ci**返回值:** 6886e41f4b71Sopenharmony_ci 6887e41f4b71Sopenharmony_ci| 类型 | 说明 | 6888e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6889e41f4b71Sopenharmony_ci| Promise<number>| Promise对象,返回音频流最大音量(音量范围0-1)。| 6890e41f4b71Sopenharmony_ci 6891e41f4b71Sopenharmony_ci**示例:** 6892e41f4b71Sopenharmony_ci 6893e41f4b71Sopenharmony_ci```ts 6894e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6895e41f4b71Sopenharmony_ci 6896e41f4b71Sopenharmony_ciaudioRenderer.getMaxStreamVolume().then((value: number) => { 6897e41f4b71Sopenharmony_ci console.info(`Get max stream volume Success! ${value}`); 6898e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6899e41f4b71Sopenharmony_ci console.error(`Get max stream volume Fail: ${err}`); 6900e41f4b71Sopenharmony_ci}); 6901e41f4b71Sopenharmony_ci``` 6902e41f4b71Sopenharmony_ci 6903e41f4b71Sopenharmony_ci### getMaxStreamVolumeSync<sup>10+</sup> 6904e41f4b71Sopenharmony_ci 6905e41f4b71Sopenharmony_cigetMaxStreamVolumeSync(): number 6906e41f4b71Sopenharmony_ci 6907e41f4b71Sopenharmony_ci获取应用基于音频流的最大音量,同步返回结果。 6908e41f4b71Sopenharmony_ci 6909e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6910e41f4b71Sopenharmony_ci 6911e41f4b71Sopenharmony_ci**返回值:** 6912e41f4b71Sopenharmony_ci 6913e41f4b71Sopenharmony_ci| 类型 | 说明 | 6914e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6915e41f4b71Sopenharmony_ci| number| 返回音频流最大音量(音量范围0-1)。| 6916e41f4b71Sopenharmony_ci 6917e41f4b71Sopenharmony_ci**示例:** 6918e41f4b71Sopenharmony_ci 6919e41f4b71Sopenharmony_ci```ts 6920e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6921e41f4b71Sopenharmony_ci 6922e41f4b71Sopenharmony_citry { 6923e41f4b71Sopenharmony_ci let value: number = audioRenderer.getMaxStreamVolumeSync(); 6924e41f4b71Sopenharmony_ci console.info(`Get max stream volume Success! ${value}`); 6925e41f4b71Sopenharmony_ci} catch (err) { 6926e41f4b71Sopenharmony_ci let error = err as BusinessError; 6927e41f4b71Sopenharmony_ci console.error(`Get max stream volume Fail: ${error}`); 6928e41f4b71Sopenharmony_ci} 6929e41f4b71Sopenharmony_ci``` 6930e41f4b71Sopenharmony_ci 6931e41f4b71Sopenharmony_ci### getUnderflowCount<sup>10+</sup> 6932e41f4b71Sopenharmony_ci 6933e41f4b71Sopenharmony_cigetUnderflowCount(callback: AsyncCallback<number>): void 6934e41f4b71Sopenharmony_ci 6935e41f4b71Sopenharmony_ci获取当前播放音频流的欠载音频帧数量。使用Callback回调返回。 6936e41f4b71Sopenharmony_ci 6937e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6938e41f4b71Sopenharmony_ci 6939e41f4b71Sopenharmony_ci**参数:** 6940e41f4b71Sopenharmony_ci 6941e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6942e41f4b71Sopenharmony_ci| ------- | -----------| ------ | ------------------- | 6943e41f4b71Sopenharmony_ci|callback | AsyncCallback<number> | 是 |回调函数。当获取当前播放音频流的欠载音频帧数量成功,err为undefined,data为获取到的当前播放音频流的欠载音频帧数量;否则为错误对象。| 6944e41f4b71Sopenharmony_ci 6945e41f4b71Sopenharmony_ci**示例:** 6946e41f4b71Sopenharmony_ci 6947e41f4b71Sopenharmony_ci```ts 6948e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6949e41f4b71Sopenharmony_ci 6950e41f4b71Sopenharmony_ciaudioRenderer.getUnderflowCount((err: BusinessError, underflowCount: number) => { 6951e41f4b71Sopenharmony_ci if (err) { 6952e41f4b71Sopenharmony_ci console.error(`getUnderflowCount Fail: ${err}`); 6953e41f4b71Sopenharmony_ci } else { 6954e41f4b71Sopenharmony_ci console.info(`getUnderflowCount Success! ${underflowCount}`); 6955e41f4b71Sopenharmony_ci } 6956e41f4b71Sopenharmony_ci}); 6957e41f4b71Sopenharmony_ci``` 6958e41f4b71Sopenharmony_ci### getUnderflowCount<sup>10+</sup> 6959e41f4b71Sopenharmony_ci 6960e41f4b71Sopenharmony_cigetUnderflowCount(): Promise<number> 6961e41f4b71Sopenharmony_ci 6962e41f4b71Sopenharmony_ci获取当前播放音频流的欠载音频帧数量。使用Promise异步回调。 6963e41f4b71Sopenharmony_ci 6964e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6965e41f4b71Sopenharmony_ci 6966e41f4b71Sopenharmony_ci**返回值:** 6967e41f4b71Sopenharmony_ci 6968e41f4b71Sopenharmony_ci| 类型 | 说明 | 6969e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6970e41f4b71Sopenharmony_ci| Promise<number>| Promise对象,返回音频流的欠载音频帧数量。| 6971e41f4b71Sopenharmony_ci 6972e41f4b71Sopenharmony_ci**示例:** 6973e41f4b71Sopenharmony_ci 6974e41f4b71Sopenharmony_ci```ts 6975e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6976e41f4b71Sopenharmony_ci 6977e41f4b71Sopenharmony_ciaudioRenderer.getUnderflowCount().then((value: number) => { 6978e41f4b71Sopenharmony_ci console.info(`Get underflow count Success! ${value}`); 6979e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 6980e41f4b71Sopenharmony_ci console.error(`Get underflow count Fail: ${err}`); 6981e41f4b71Sopenharmony_ci}); 6982e41f4b71Sopenharmony_ci``` 6983e41f4b71Sopenharmony_ci 6984e41f4b71Sopenharmony_ci### getUnderflowCountSync<sup>10+</sup> 6985e41f4b71Sopenharmony_ci 6986e41f4b71Sopenharmony_cigetUnderflowCountSync(): number 6987e41f4b71Sopenharmony_ci 6988e41f4b71Sopenharmony_ci获取当前播放音频流的欠载音频帧数量,同步返回数据。 6989e41f4b71Sopenharmony_ci 6990e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 6991e41f4b71Sopenharmony_ci 6992e41f4b71Sopenharmony_ci**返回值:** 6993e41f4b71Sopenharmony_ci 6994e41f4b71Sopenharmony_ci| 类型 | 说明 | 6995e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 6996e41f4b71Sopenharmony_ci| number| 返回音频流的欠载音频帧数量。| 6997e41f4b71Sopenharmony_ci 6998e41f4b71Sopenharmony_ci**示例:** 6999e41f4b71Sopenharmony_ci 7000e41f4b71Sopenharmony_ci```ts 7001e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7002e41f4b71Sopenharmony_ci 7003e41f4b71Sopenharmony_citry { 7004e41f4b71Sopenharmony_ci let value: number = audioRenderer.getUnderflowCountSync(); 7005e41f4b71Sopenharmony_ci console.info(`Get underflow count Success! ${value}`); 7006e41f4b71Sopenharmony_ci} catch (err) { 7007e41f4b71Sopenharmony_ci let error = err as BusinessError; 7008e41f4b71Sopenharmony_ci console.error(`Get underflow count Fail: ${error}`); 7009e41f4b71Sopenharmony_ci} 7010e41f4b71Sopenharmony_ci``` 7011e41f4b71Sopenharmony_ci 7012e41f4b71Sopenharmony_ci### getCurrentOutputDevices<sup>10+</sup> 7013e41f4b71Sopenharmony_ci 7014e41f4b71Sopenharmony_cigetCurrentOutputDevices(callback: AsyncCallback<AudioDeviceDescriptors>): void 7015e41f4b71Sopenharmony_ci 7016e41f4b71Sopenharmony_ci获取音频流输出设备描述符。使用Callback回调返回。 7017e41f4b71Sopenharmony_ci 7018e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7019e41f4b71Sopenharmony_ci 7020e41f4b71Sopenharmony_ci**参数:** 7021e41f4b71Sopenharmony_ci 7022e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7023e41f4b71Sopenharmony_ci| ------- | -----------| ------ | ------------------- | 7024e41f4b71Sopenharmony_ci|callback | AsyncCallback\<[AudioDeviceDescriptors](#audiodevicedescriptors)>| 是 |回调函数。当获取音频流输出设备描述符成功,err为undefined,data为获取到的音频流输出设备描述符;否则为错误对象。| 7025e41f4b71Sopenharmony_ci 7026e41f4b71Sopenharmony_ci**示例:** 7027e41f4b71Sopenharmony_ci 7028e41f4b71Sopenharmony_ci```ts 7029e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7030e41f4b71Sopenharmony_ci 7031e41f4b71Sopenharmony_ciaudioRenderer.getCurrentOutputDevices((err: BusinessError, deviceInfo: audio.AudioDeviceDescriptors) => { 7032e41f4b71Sopenharmony_ci if (err) { 7033e41f4b71Sopenharmony_ci console.error(`getCurrentOutputDevices Fail: ${err}`); 7034e41f4b71Sopenharmony_ci } else { 7035e41f4b71Sopenharmony_ci for (let i = 0; i < deviceInfo.length; i++) { 7036e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7037e41f4b71Sopenharmony_ci console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7038e41f4b71Sopenharmony_ci console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7039e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7040e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7041e41f4b71Sopenharmony_ci console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7042e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7043e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7044e41f4b71Sopenharmony_ci } 7045e41f4b71Sopenharmony_ci } 7046e41f4b71Sopenharmony_ci}); 7047e41f4b71Sopenharmony_ci``` 7048e41f4b71Sopenharmony_ci### getCurrentOutputDevices<sup>10+</sup> 7049e41f4b71Sopenharmony_ci 7050e41f4b71Sopenharmony_cigetCurrentOutputDevices(): Promise<AudioDeviceDescriptors> 7051e41f4b71Sopenharmony_ci 7052e41f4b71Sopenharmony_ci获取音频流输出设备描述符。使用Promise异步回调。 7053e41f4b71Sopenharmony_ci 7054e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7055e41f4b71Sopenharmony_ci 7056e41f4b71Sopenharmony_ci**返回值:** 7057e41f4b71Sopenharmony_ci 7058e41f4b71Sopenharmony_ci| 类型 | 说明 | 7059e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 7060e41f4b71Sopenharmony_ci| Promise<[AudioDeviceDescriptors](#audiodevicedescriptors)>| Promise对象,返回音频流的输出设备描述信息 | 7061e41f4b71Sopenharmony_ci 7062e41f4b71Sopenharmony_ci**示例:** 7063e41f4b71Sopenharmony_ci 7064e41f4b71Sopenharmony_ci```ts 7065e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7066e41f4b71Sopenharmony_ci 7067e41f4b71Sopenharmony_ciaudioRenderer.getCurrentOutputDevices().then((deviceInfo: audio.AudioDeviceDescriptors) => { 7068e41f4b71Sopenharmony_ci for (let i = 0; i < deviceInfo.length; i++) { 7069e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7070e41f4b71Sopenharmony_ci console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7071e41f4b71Sopenharmony_ci console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7072e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7073e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7074e41f4b71Sopenharmony_ci console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7075e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7076e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7077e41f4b71Sopenharmony_ci } 7078e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 7079e41f4b71Sopenharmony_ci console.error(`Get current output devices Fail: ${err}`); 7080e41f4b71Sopenharmony_ci}); 7081e41f4b71Sopenharmony_ci``` 7082e41f4b71Sopenharmony_ci 7083e41f4b71Sopenharmony_ci### getCurrentOutputDevicesSync<sup>10+</sup> 7084e41f4b71Sopenharmony_ci 7085e41f4b71Sopenharmony_cigetCurrentOutputDevicesSync(): AudioDeviceDescriptors 7086e41f4b71Sopenharmony_ci 7087e41f4b71Sopenharmony_ci获取音频流输出设备描述符,同步返回结果。 7088e41f4b71Sopenharmony_ci 7089e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7090e41f4b71Sopenharmony_ci 7091e41f4b71Sopenharmony_ci**返回值:** 7092e41f4b71Sopenharmony_ci 7093e41f4b71Sopenharmony_ci| 类型 | 说明 | 7094e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 7095e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](#audiodevicedescriptors) | 返回音频流的输出设备描述信息 | 7096e41f4b71Sopenharmony_ci 7097e41f4b71Sopenharmony_ci**示例:** 7098e41f4b71Sopenharmony_ci 7099e41f4b71Sopenharmony_ci```ts 7100e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7101e41f4b71Sopenharmony_ci 7102e41f4b71Sopenharmony_citry { 7103e41f4b71Sopenharmony_ci let deviceInfo: audio.AudioDeviceDescriptors = audioRenderer.getCurrentOutputDevicesSync(); 7104e41f4b71Sopenharmony_ci for (let i = 0; i < deviceInfo.length; i++) { 7105e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceInfo[i].id}`); 7106e41f4b71Sopenharmony_ci console.info(`DeviceInfo type: ${deviceInfo[i].deviceType}`); 7107e41f4b71Sopenharmony_ci console.info(`DeviceInfo role: ${deviceInfo[i].deviceRole}`); 7108e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceInfo[i].name}`); 7109e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceInfo[i].address}`); 7110e41f4b71Sopenharmony_ci console.info(`DeviceInfo samplerate: ${deviceInfo[i].sampleRates[0]}`); 7111e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelcount: ${deviceInfo[i].channelCounts[0]}`); 7112e41f4b71Sopenharmony_ci console.info(`DeviceInfo channelmask: ${deviceInfo[i].channelMasks[0]}`); 7113e41f4b71Sopenharmony_ci } 7114e41f4b71Sopenharmony_ci} catch (err) { 7115e41f4b71Sopenharmony_ci let error = err as BusinessError; 7116e41f4b71Sopenharmony_ci console.error(`Get current output devices Fail: ${error}`); 7117e41f4b71Sopenharmony_ci} 7118e41f4b71Sopenharmony_ci``` 7119e41f4b71Sopenharmony_ci### setChannelBlendMode<sup>11+</sup> 7120e41f4b71Sopenharmony_ci 7121e41f4b71Sopenharmony_cisetChannelBlendMode(mode: ChannelBlendMode): void 7122e41f4b71Sopenharmony_ci 7123e41f4b71Sopenharmony_ci设置单双声道混合模式。使用同步方式返回结果。 7124e41f4b71Sopenharmony_ci 7125e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7126e41f4b71Sopenharmony_ci 7127e41f4b71Sopenharmony_ci**参数:** 7128e41f4b71Sopenharmony_ci 7129e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7130e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 7131e41f4b71Sopenharmony_ci| mode | [ChannelBlendMode](#channelblendmode11) | 是 | 声道混合模式类型。 | 7132e41f4b71Sopenharmony_ci 7133e41f4b71Sopenharmony_ci**错误码:** 7134e41f4b71Sopenharmony_ci 7135e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7136e41f4b71Sopenharmony_ci 7137e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7138e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7139e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7140e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7141e41f4b71Sopenharmony_ci| 6800103 | Operation not permit at current state. | 7142e41f4b71Sopenharmony_ci 7143e41f4b71Sopenharmony_ci**示例:** 7144e41f4b71Sopenharmony_ci 7145e41f4b71Sopenharmony_ci```ts 7146e41f4b71Sopenharmony_cilet mode = audio.ChannelBlendMode.MODE_DEFAULT; 7147e41f4b71Sopenharmony_ci 7148e41f4b71Sopenharmony_ciaudioRenderer.setChannelBlendMode(mode); 7149e41f4b71Sopenharmony_ciconsole.info(`BlendMode: ${mode}`); 7150e41f4b71Sopenharmony_ci``` 7151e41f4b71Sopenharmony_ci### setVolumeWithRamp<sup>11+</sup> 7152e41f4b71Sopenharmony_ci 7153e41f4b71Sopenharmony_cisetVolumeWithRamp(volume: number, duration: number): void 7154e41f4b71Sopenharmony_ci 7155e41f4b71Sopenharmony_ci设置音量渐变模式。使用同步方式返回结果。 7156e41f4b71Sopenharmony_ci 7157e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7158e41f4b71Sopenharmony_ci 7159e41f4b71Sopenharmony_ci**参数:** 7160e41f4b71Sopenharmony_ci 7161e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7162e41f4b71Sopenharmony_ci| ---------- | ----------------------------------- | ---- | -------------------------------------------------------- | 7163e41f4b71Sopenharmony_ci| volume | number | 是 | 渐变目标音量值,音量范围为[0.0, 1.0]。 | 7164e41f4b71Sopenharmony_ci| duration | number | 是 | 渐变持续时间,单位为ms。 | 7165e41f4b71Sopenharmony_ci 7166e41f4b71Sopenharmony_ci**错误码:** 7167e41f4b71Sopenharmony_ci 7168e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7169e41f4b71Sopenharmony_ci 7170e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7171e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7172e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7173e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7174e41f4b71Sopenharmony_ci 7175e41f4b71Sopenharmony_ci**示例:** 7176e41f4b71Sopenharmony_ci 7177e41f4b71Sopenharmony_ci```ts 7178e41f4b71Sopenharmony_cilet volume = 0.5; 7179e41f4b71Sopenharmony_cilet duration = 1000; 7180e41f4b71Sopenharmony_ci 7181e41f4b71Sopenharmony_ciaudioRenderer.setVolumeWithRamp(volume, duration); 7182e41f4b71Sopenharmony_ciconsole.info(`setVolumeWithRamp: ${volume}`); 7183e41f4b71Sopenharmony_ci``` 7184e41f4b71Sopenharmony_ci 7185e41f4b71Sopenharmony_ci### setSilentModeAndMixWithOthers<sup>12+</sup> 7186e41f4b71Sopenharmony_ci 7187e41f4b71Sopenharmony_cisetSilentModeAndMixWithOthers(on: boolean): void 7188e41f4b71Sopenharmony_ci 7189e41f4b71Sopenharmony_ci设置静音并发播放模式。 7190e41f4b71Sopenharmony_ci 7191e41f4b71Sopenharmony_ci当设置为true,打开静音并发播放模式,系统将让此音频流静音播放,并且不会打断其它音频流。设置为false,将关闭静音并发播放,音频流可根据系统焦点策略抢占焦点。 7192e41f4b71Sopenharmony_ci 7193e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7194e41f4b71Sopenharmony_ci 7195e41f4b71Sopenharmony_ci**参数:** 7196e41f4b71Sopenharmony_ci 7197e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7198e41f4b71Sopenharmony_ci| ------ | ---------------------------------------- | ---- |----------------------| 7199e41f4b71Sopenharmony_ci| on | boolean | 是 | 打开/关闭静音并发播放模式,true打开,false关闭。 | 7200e41f4b71Sopenharmony_ci 7201e41f4b71Sopenharmony_ci**示例:** 7202e41f4b71Sopenharmony_ci 7203e41f4b71Sopenharmony_ci```ts 7204e41f4b71Sopenharmony_ciaudioRenderer.setSilentModeAndMixWithOthers(true); 7205e41f4b71Sopenharmony_ci``` 7206e41f4b71Sopenharmony_ci 7207e41f4b71Sopenharmony_ci### getSilentModeAndMixWithOthers<sup>12+</sup> 7208e41f4b71Sopenharmony_ci 7209e41f4b71Sopenharmony_cigetSilentModeAndMixWithOthers(): boolean 7210e41f4b71Sopenharmony_ci 7211e41f4b71Sopenharmony_ci获取静音并发播放模式。 7212e41f4b71Sopenharmony_ci 7213e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7214e41f4b71Sopenharmony_ci 7215e41f4b71Sopenharmony_ci**返回值:** 7216e41f4b71Sopenharmony_ci 7217e41f4b71Sopenharmony_ci| 类型 | 说明 | 7218e41f4b71Sopenharmony_ci| ------------------------------------------------- |-----------| 7219e41f4b71Sopenharmony_ci| boolean | 返回静音并发播放模式状态,true打开,false关闭。 | 7220e41f4b71Sopenharmony_ci 7221e41f4b71Sopenharmony_ci**示例:** 7222e41f4b71Sopenharmony_ci 7223e41f4b71Sopenharmony_ci```ts 7224e41f4b71Sopenharmony_cilet on = audioRenderer.getSilentModeAndMixWithOthers(); 7225e41f4b71Sopenharmony_ci``` 7226e41f4b71Sopenharmony_ci 7227e41f4b71Sopenharmony_ci### setDefaultOutputDevice<sup>12+</sup> 7228e41f4b71Sopenharmony_ci 7229e41f4b71Sopenharmony_cisetDefaultOutputDevice(deviceType: DeviceType): Promise<void> 7230e41f4b71Sopenharmony_ci 7231e41f4b71Sopenharmony_ci设置默认本机内置发声设备。使用Promise方式异步返回结果。 7232e41f4b71Sopenharmony_ci 7233e41f4b71Sopenharmony_ci本接口仅适用于[音频流类型](#streamusage)为语音消息、VoIP语音通话或者VoIP视频通话的场景使用,以及可选的设备类型为听筒、扬声器和系统默认设备。 7234e41f4b71Sopenharmony_ci 7235e41f4b71Sopenharmony_ci本接口允许在AudioRenderer创建以后的任何时间被调用,系统会记录应用设置的默认本机内置发声设备。在应用启动播放时,若有外接设备如蓝牙耳机/有线耳机接入,系统优先从外接设备发声;否则系统遵循应用设置的默认本机内置发声设备发声。 7236e41f4b71Sopenharmony_ci 7237e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7238e41f4b71Sopenharmony_ci 7239e41f4b71Sopenharmony_ci**参数:** 7240e41f4b71Sopenharmony_ci 7241e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7242e41f4b71Sopenharmony_ci| ---------- |----------------| ------ |---------------------------------------------------------| 7243e41f4b71Sopenharmony_ci| deviceType | [DeviceType](#devicetype) | 是 | 设备类型。<br>只支持:EARPIECE(听筒)、SPEAKER(扬声器)和DEFAULT(系统默认设备)。 | 7244e41f4b71Sopenharmony_ci 7245e41f4b71Sopenharmony_ci**返回值:** 7246e41f4b71Sopenharmony_ci 7247e41f4b71Sopenharmony_ci| 类型 | 说明 | 7248e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 7249e41f4b71Sopenharmony_ci| Promise<void> | Promise对象,无返回结果。 | 7250e41f4b71Sopenharmony_ci 7251e41f4b71Sopenharmony_ci**错误码:** 7252e41f4b71Sopenharmony_ci 7253e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7254e41f4b71Sopenharmony_ci 7255e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7256e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7257e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7258e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7259e41f4b71Sopenharmony_ci| 6800103 | Operation not permit at current state. | 7260e41f4b71Sopenharmony_ci 7261e41f4b71Sopenharmony_ci**示例:** 7262e41f4b71Sopenharmony_ci 7263e41f4b71Sopenharmony_ci```ts 7264e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7265e41f4b71Sopenharmony_ci 7266e41f4b71Sopenharmony_ci// 本接口允许在AudioRenderer创建以后的任何时间被调用。 7267e41f4b71Sopenharmony_ci// 未播放时调用,系统会记录应用设置的默认本机内置发声设备,当应用启动播放时从设置的默认本机内置发声设备发声。 7268e41f4b71Sopenharmony_ci// 正在播放时调用,在没有外接设备如蓝牙耳机/有线耳机,系统会立即切换到设置的默认本机内置发声设备发声;否则系统会先记录应用设置的默认本机内置发声设备,等外接设备移除后再切换到设置的默认本机内置发声设备发声。 7269e41f4b71Sopenharmony_ciaudioRenderer.setDefaultOutputDevice(audio.DeviceType.SPEAKER).then(() => { 7270e41f4b71Sopenharmony_ci console.info('setDefaultOutputDevice Success!'); 7271e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 7272e41f4b71Sopenharmony_ci console.error(`setDefaultOutputDevice Fail: ${err}`); 7273e41f4b71Sopenharmony_ci}); 7274e41f4b71Sopenharmony_ci``` 7275e41f4b71Sopenharmony_ci 7276e41f4b71Sopenharmony_ci### on('audioInterrupt')<sup>9+</sup> 7277e41f4b71Sopenharmony_ci 7278e41f4b71Sopenharmony_cion(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void 7279e41f4b71Sopenharmony_ci 7280e41f4b71Sopenharmony_ci监听音频中断事件(当音频焦点发生变化时触发),使用callback方式返回结果。 7281e41f4b71Sopenharmony_ci 7282e41f4b71Sopenharmony_ciAudioRenderer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。 7283e41f4b71Sopenharmony_ci 7284e41f4b71Sopenharmony_ci调用此方法,在AudioRenderer对象获取焦点失败或发生中断事件(如被其他音频打断等)时,会收到[InterruptEvent](#interruptevent9)。建议应用可根据InterruptEvent的信息完成进一步处理,更多信息可参考文档[处理音频焦点事件](../../media/audio/audio-playback-concurrency.md)。 7285e41f4b71Sopenharmony_ci 7286e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 7287e41f4b71Sopenharmony_ci 7288e41f4b71Sopenharmony_ci**参数:** 7289e41f4b71Sopenharmony_ci 7290e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7291e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ----------------------------------------------------------- | 7292e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioInterrupt'。 | 7293e41f4b71Sopenharmony_ci| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是 | 回调函数,返回播放中断时,应用接收的中断事件信息。 | 7294e41f4b71Sopenharmony_ci 7295e41f4b71Sopenharmony_ci**错误码:** 7296e41f4b71Sopenharmony_ci 7297e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7298e41f4b71Sopenharmony_ci 7299e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7300e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7301e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7302e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7303e41f4b71Sopenharmony_ci 7304e41f4b71Sopenharmony_ci**示例:** 7305e41f4b71Sopenharmony_ci 7306e41f4b71Sopenharmony_ci```ts 7307e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 7308e41f4b71Sopenharmony_ci 7309e41f4b71Sopenharmony_cilet isPlaying: boolean; // 标识符,表示是否正在渲染 7310e41f4b71Sopenharmony_cilet isDucked: boolean; // 标识符,表示是否被降低音量 7311e41f4b71Sopenharmony_cionAudioInterrupt(); 7312e41f4b71Sopenharmony_ci 7313e41f4b71Sopenharmony_ciasync function onAudioInterrupt(){ 7314e41f4b71Sopenharmony_ci audioRenderer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => { 7315e41f4b71Sopenharmony_ci // 在发生音频打断事件时,audioRenderer收到interruptEvent回调,此处根据其内容做相应处理。 7316e41f4b71Sopenharmony_ci // 1、可选:读取interruptEvent.forceType的类型,判断系统是否已强制执行相应操作。 7317e41f4b71Sopenharmony_ci // 注:默认焦点策略下,INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型,其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。 7318e41f4b71Sopenharmony_ci // 2、必选:读取interruptEvent.hintType的类型,做出相应的处理。 7319e41f4b71Sopenharmony_ci if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) { 7320e41f4b71Sopenharmony_ci // 音频焦点事件已由系统强制执行,应用需更新自身状态及显示内容等 7321e41f4b71Sopenharmony_ci switch (interruptEvent.hintType) { 7322e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 7323e41f4b71Sopenharmony_ci // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent 7324e41f4b71Sopenharmony_ci console.info('Force paused. Update playing status and stop writing'); 7325e41f4b71Sopenharmony_ci isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作 7326e41f4b71Sopenharmony_ci break; 7327e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_STOP: 7328e41f4b71Sopenharmony_ci // 音频流已被停止,永久失去焦点,若想恢复渲染,需用户主动触发 7329e41f4b71Sopenharmony_ci console.info('Force stopped. Update playing status and stop writing'); 7330e41f4b71Sopenharmony_ci isPlaying = false; // 简化处理,代表应用切换至暂停状态的若干操作 7331e41f4b71Sopenharmony_ci break; 7332e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_DUCK: 7333e41f4b71Sopenharmony_ci // 音频流已被降低音量渲染 7334e41f4b71Sopenharmony_ci console.info('Force ducked. Update volume status'); 7335e41f4b71Sopenharmony_ci isDucked = true; // 简化处理,代表应用更新音量状态的若干操作 7336e41f4b71Sopenharmony_ci break; 7337e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_UNDUCK: 7338e41f4b71Sopenharmony_ci // 音频流已被恢复正常音量渲染 7339e41f4b71Sopenharmony_ci console.info('Force ducked. Update volume status'); 7340e41f4b71Sopenharmony_ci isDucked = false; // 简化处理,代表应用更新音量状态的若干操作 7341e41f4b71Sopenharmony_ci break; 7342e41f4b71Sopenharmony_ci default: 7343e41f4b71Sopenharmony_ci console.info('Invalid interruptEvent'); 7344e41f4b71Sopenharmony_ci break; 7345e41f4b71Sopenharmony_ci } 7346e41f4b71Sopenharmony_ci } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) { 7347e41f4b71Sopenharmony_ci // 音频焦点事件需由应用进行操作,应用可以自主选择如何处理该事件,建议应用遵从InterruptHint提示处理 7348e41f4b71Sopenharmony_ci switch (interruptEvent.hintType) { 7349e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_RESUME: 7350e41f4b71Sopenharmony_ci // 建议应用继续渲染(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复渲染) 7351e41f4b71Sopenharmony_ci // 由于INTERRUPT_HINT_RESUME操作需要应用主动执行,系统无法强制,故INTERRUPT_HINT_RESUME事件一定为INTERRUPT_SHARE类型 7352e41f4b71Sopenharmony_ci console.info('Resume force paused renderer or ignore'); 7353e41f4b71Sopenharmony_ci // 若选择继续渲染,需在此处主动执行开始渲染的若干操作 7354e41f4b71Sopenharmony_ci break; 7355e41f4b71Sopenharmony_ci default: 7356e41f4b71Sopenharmony_ci console.info('Invalid interruptEvent'); 7357e41f4b71Sopenharmony_ci break; 7358e41f4b71Sopenharmony_ci } 7359e41f4b71Sopenharmony_ci } 7360e41f4b71Sopenharmony_ci }); 7361e41f4b71Sopenharmony_ci} 7362e41f4b71Sopenharmony_ci``` 7363e41f4b71Sopenharmony_ci 7364e41f4b71Sopenharmony_ci### on('markReach')<sup>8+</sup> 7365e41f4b71Sopenharmony_ci 7366e41f4b71Sopenharmony_cion(type: 'markReach', frame: number, callback: Callback<number>): void 7367e41f4b71Sopenharmony_ci 7368e41f4b71Sopenharmony_ci监听到达标记事件(当渲染的帧数到达frame参数的值时触发,仅调用一次),使用callback方式返回结果。 7369e41f4b71Sopenharmony_ci 7370e41f4b71Sopenharmony_ci举例说明,如果frame设置为100,当渲染帧数到达第100帧时,将上报信息。 7371e41f4b71Sopenharmony_ci 7372e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7373e41f4b71Sopenharmony_ci 7374e41f4b71Sopenharmony_ci**参数:** 7375e41f4b71Sopenharmony_ci 7376e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7377e41f4b71Sopenharmony_ci| :------- | :----------------------- | :--- | :---------------------------------------- | 7378e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'markReach'。 | 7379e41f4b71Sopenharmony_ci| frame | number | 是 | 触发事件的帧数。该值必须大于0。 | 7380e41f4b71Sopenharmony_ci| callback | Callback\<number> | 是 | 回调函数,返回frame参数的值。 | 7381e41f4b71Sopenharmony_ci 7382e41f4b71Sopenharmony_ci**示例:** 7383e41f4b71Sopenharmony_ci 7384e41f4b71Sopenharmony_ci```ts 7385e41f4b71Sopenharmony_ciaudioRenderer.on('markReach', 1000, (position: number) => { 7386e41f4b71Sopenharmony_ci if (position == 1000) { 7387e41f4b71Sopenharmony_ci console.info('ON Triggered successfully'); 7388e41f4b71Sopenharmony_ci } 7389e41f4b71Sopenharmony_ci}); 7390e41f4b71Sopenharmony_ci``` 7391e41f4b71Sopenharmony_ci 7392e41f4b71Sopenharmony_ci 7393e41f4b71Sopenharmony_ci### off('markReach')<sup>8+</sup> 7394e41f4b71Sopenharmony_ci 7395e41f4b71Sopenharmony_cioff(type: 'markReach'): void 7396e41f4b71Sopenharmony_ci 7397e41f4b71Sopenharmony_ci取消监听到达标记事件。 7398e41f4b71Sopenharmony_ci 7399e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7400e41f4b71Sopenharmony_ci 7401e41f4b71Sopenharmony_ci**参数:** 7402e41f4b71Sopenharmony_ci 7403e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7404e41f4b71Sopenharmony_ci| :----- | :----- | :--- | :------------------------------------------------ | 7405e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'markReach'。 | 7406e41f4b71Sopenharmony_ci 7407e41f4b71Sopenharmony_ci**示例:** 7408e41f4b71Sopenharmony_ci 7409e41f4b71Sopenharmony_ci```ts 7410e41f4b71Sopenharmony_ciaudioRenderer.off('markReach'); 7411e41f4b71Sopenharmony_ci``` 7412e41f4b71Sopenharmony_ci 7413e41f4b71Sopenharmony_ci### on('periodReach')<sup>8+</sup> 7414e41f4b71Sopenharmony_ci 7415e41f4b71Sopenharmony_cion(type: 'periodReach', frame: number, callback: Callback<number>): void 7416e41f4b71Sopenharmony_ci 7417e41f4b71Sopenharmony_ci监听到达标记事件(每当渲染的帧数达到frame参数的值时触发,即按周期上报信息),使用callback方式返回结果。 7418e41f4b71Sopenharmony_ci 7419e41f4b71Sopenharmony_ci举例说明,如果frame设置为10,每当渲染10帧数据时将上报信息,例如在第10帧、20帧、30帧,均会上报信息。 7420e41f4b71Sopenharmony_ci 7421e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7422e41f4b71Sopenharmony_ci 7423e41f4b71Sopenharmony_ci**参数:** 7424e41f4b71Sopenharmony_ci 7425e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7426e41f4b71Sopenharmony_ci| :------- | :----------------------- | :--- | :------------------------------------------ | 7427e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'periodReach'。 | 7428e41f4b71Sopenharmony_ci| frame | number | 是 | 触发事件的帧数。该值必须大于 0。 | 7429e41f4b71Sopenharmony_ci| callback | Callback\<number> | 是 | 回调函数,返回frame参数的值。 | 7430e41f4b71Sopenharmony_ci 7431e41f4b71Sopenharmony_ci**示例:** 7432e41f4b71Sopenharmony_ci 7433e41f4b71Sopenharmony_ci```ts 7434e41f4b71Sopenharmony_ciaudioRenderer.on('periodReach', 1000, (position: number) => { 7435e41f4b71Sopenharmony_ci if (position == 1000) { 7436e41f4b71Sopenharmony_ci console.info('ON Triggered successfully'); 7437e41f4b71Sopenharmony_ci } 7438e41f4b71Sopenharmony_ci}); 7439e41f4b71Sopenharmony_ci``` 7440e41f4b71Sopenharmony_ci 7441e41f4b71Sopenharmony_ci### off('periodReach')<sup>8+</sup> 7442e41f4b71Sopenharmony_ci 7443e41f4b71Sopenharmony_cioff(type: 'periodReach'): void 7444e41f4b71Sopenharmony_ci 7445e41f4b71Sopenharmony_ci取消监听到达标记事件。 7446e41f4b71Sopenharmony_ci 7447e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7448e41f4b71Sopenharmony_ci 7449e41f4b71Sopenharmony_ci**参数:** 7450e41f4b71Sopenharmony_ci 7451e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7452e41f4b71Sopenharmony_ci| :----- | :----- | :--- | :-------------------------------------------------- | 7453e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'periodReach'。 | 7454e41f4b71Sopenharmony_ci 7455e41f4b71Sopenharmony_ci**示例:** 7456e41f4b71Sopenharmony_ci 7457e41f4b71Sopenharmony_ci```ts 7458e41f4b71Sopenharmony_ciaudioRenderer.off('periodReach'); 7459e41f4b71Sopenharmony_ci``` 7460e41f4b71Sopenharmony_ci 7461e41f4b71Sopenharmony_ci### on('stateChange')<sup>8+</sup> 7462e41f4b71Sopenharmony_ci 7463e41f4b71Sopenharmony_cion(type: 'stateChange', callback: Callback<AudioState\>): void 7464e41f4b71Sopenharmony_ci 7465e41f4b71Sopenharmony_ci监听状态变化事件(当AudioRenderer的状态发生变化时触发),使用callback方式返回结果。 7466e41f4b71Sopenharmony_ci 7467e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7468e41f4b71Sopenharmony_ci 7469e41f4b71Sopenharmony_ci**参数:** 7470e41f4b71Sopenharmony_ci 7471e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7472e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 7473e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'stateChange'。 | 7474e41f4b71Sopenharmony_ci| callback | Callback\<[AudioState](#audiostate8)> | 是 | 回调函数,返回当前音频的状态。 | 7475e41f4b71Sopenharmony_ci 7476e41f4b71Sopenharmony_ci**示例:** 7477e41f4b71Sopenharmony_ci 7478e41f4b71Sopenharmony_ci```ts 7479e41f4b71Sopenharmony_ciaudioRenderer.on('stateChange', (state: audio.AudioState) => { 7480e41f4b71Sopenharmony_ci if (state == 1) { 7481e41f4b71Sopenharmony_ci console.info('audio renderer state is: STATE_PREPARED'); 7482e41f4b71Sopenharmony_ci } 7483e41f4b71Sopenharmony_ci if (state == 2) { 7484e41f4b71Sopenharmony_ci console.info('audio renderer state is: STATE_RUNNING'); 7485e41f4b71Sopenharmony_ci } 7486e41f4b71Sopenharmony_ci}); 7487e41f4b71Sopenharmony_ci``` 7488e41f4b71Sopenharmony_ci 7489e41f4b71Sopenharmony_ci### on('outputDeviceChange')<sup>10+</sup> 7490e41f4b71Sopenharmony_ci 7491e41f4b71Sopenharmony_cion(type: 'outputDeviceChange', callback: Callback\<AudioDeviceDescriptors>): void 7492e41f4b71Sopenharmony_ci 7493e41f4b71Sopenharmony_ci监听音频输出设备变化事件(当音频输出设备发生变化时触发),使用callback方式返回结果。 7494e41f4b71Sopenharmony_ci 7495e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7496e41f4b71Sopenharmony_ci 7497e41f4b71Sopenharmony_ci**参数:** 7498e41f4b71Sopenharmony_ci 7499e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7500e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 7501e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'outputDeviceChange'。 | 7502e41f4b71Sopenharmony_ci| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数,返回当前音频流的输出设备描述信息。 | 7503e41f4b71Sopenharmony_ci 7504e41f4b71Sopenharmony_ci**错误码:** 7505e41f4b71Sopenharmony_ci 7506e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7507e41f4b71Sopenharmony_ci 7508e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7509e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7510e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7511e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7512e41f4b71Sopenharmony_ci 7513e41f4b71Sopenharmony_ci**示例:** 7514e41f4b71Sopenharmony_ci 7515e41f4b71Sopenharmony_ci```ts 7516e41f4b71Sopenharmony_ciaudioRenderer.on('outputDeviceChange', (deviceInfo: audio.AudioDeviceDescriptors) => { 7517e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceInfo[0].id}`); 7518e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceInfo[0].name}`); 7519e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceInfo[0].address}`); 7520e41f4b71Sopenharmony_ci}); 7521e41f4b71Sopenharmony_ci``` 7522e41f4b71Sopenharmony_ci 7523e41f4b71Sopenharmony_ci### off('outputDeviceChange')<sup>10+</sup> 7524e41f4b71Sopenharmony_ci 7525e41f4b71Sopenharmony_cioff(type: 'outputDeviceChange', callback?: Callback\<AudioDeviceDescriptors>): void 7526e41f4b71Sopenharmony_ci 7527e41f4b71Sopenharmony_ci取消监听音频输出设备变化事件,使用callback方式返回结果。 7528e41f4b71Sopenharmony_ci 7529e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7530e41f4b71Sopenharmony_ci 7531e41f4b71Sopenharmony_ci**参数:** 7532e41f4b71Sopenharmony_ci 7533e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7534e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 7535e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'outputDeviceChange'。 | 7536e41f4b71Sopenharmony_ci| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 回调函数,返回当前音频流的输出设备描述信息。 | 7537e41f4b71Sopenharmony_ci 7538e41f4b71Sopenharmony_ci**错误码:** 7539e41f4b71Sopenharmony_ci 7540e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7541e41f4b71Sopenharmony_ci 7542e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7543e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7544e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7545e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7546e41f4b71Sopenharmony_ci 7547e41f4b71Sopenharmony_ci**示例:** 7548e41f4b71Sopenharmony_ci 7549e41f4b71Sopenharmony_ci```ts 7550e41f4b71Sopenharmony_ci// 取消该事件的所有监听 7551e41f4b71Sopenharmony_ciaudioRenderer.off('outputDeviceChange'); 7552e41f4b71Sopenharmony_ci 7553e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 7554e41f4b71Sopenharmony_cilet outputDeviceChangeCallback = (deviceInfo: audio.AudioDeviceDescriptors) => { 7555e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceInfo[0].id}`); 7556e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceInfo[0].name}`); 7557e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceInfo[0].address}`); 7558e41f4b71Sopenharmony_ci}; 7559e41f4b71Sopenharmony_ci 7560e41f4b71Sopenharmony_ciaudioRenderer.on('outputDeviceChange', outputDeviceChangeCallback); 7561e41f4b71Sopenharmony_ci 7562e41f4b71Sopenharmony_ciaudioRenderer.off('outputDeviceChange', outputDeviceChangeCallback); 7563e41f4b71Sopenharmony_ci``` 7564e41f4b71Sopenharmony_ci 7565e41f4b71Sopenharmony_ci### on('outputDeviceChangeWithInfo')<sup>11+</sup> 7566e41f4b71Sopenharmony_ci 7567e41f4b71Sopenharmony_cion(type: 'outputDeviceChangeWithInfo', callback: Callback\<AudioStreamDeviceChangeInfo>): void 7568e41f4b71Sopenharmony_ci 7569e41f4b71Sopenharmony_ci监听音频流输出设备变化及原因事件(当音频输出设备发生变化时触发),使用callback方式返回结果。 7570e41f4b71Sopenharmony_ci 7571e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7572e41f4b71Sopenharmony_ci 7573e41f4b71Sopenharmony_ci**参数:** 7574e41f4b71Sopenharmony_ci 7575e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7576e41f4b71Sopenharmony_ci| :------- |:-------------------------------------------------------------------------| :--- |:--------------------------------------------| 7577e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'outputDeviceChangeWithInfo'。 | 7578e41f4b71Sopenharmony_ci| callback | Callback\<[AudioStreamDeviceChangeInfo](#audiostreamdevicechangeinfo11)> | 是 | 回调函数,返回当前音频流的输出设备描述信息及变化原因。 | 7579e41f4b71Sopenharmony_ci 7580e41f4b71Sopenharmony_ci**错误码:** 7581e41f4b71Sopenharmony_ci 7582e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7583e41f4b71Sopenharmony_ci 7584e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7585e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7586e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7587e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7588e41f4b71Sopenharmony_ci 7589e41f4b71Sopenharmony_ci**示例:** 7590e41f4b71Sopenharmony_ci 7591e41f4b71Sopenharmony_ci```ts 7592e41f4b71Sopenharmony_ciaudioRenderer.on('outputDeviceChangeWithInfo', (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => { 7593e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`); 7594e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`); 7595e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`); 7596e41f4b71Sopenharmony_ci console.info(`Device change reason: ${deviceChangeInfo.changeReason}`); 7597e41f4b71Sopenharmony_ci}); 7598e41f4b71Sopenharmony_ci``` 7599e41f4b71Sopenharmony_ci 7600e41f4b71Sopenharmony_ci### off('outputDeviceChangeWithInfo')<sup>11+</sup> 7601e41f4b71Sopenharmony_ci 7602e41f4b71Sopenharmony_cioff(type: 'outputDeviceChangeWithInfo', callback?: Callback\<AudioStreamDeviceChangeInfo>): void 7603e41f4b71Sopenharmony_ci 7604e41f4b71Sopenharmony_ci取消监听音频流输出设备变化及原因事件,使用callback方式返回结果。 7605e41f4b71Sopenharmony_ci 7606e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 7607e41f4b71Sopenharmony_ci 7608e41f4b71Sopenharmony_ci**参数:** 7609e41f4b71Sopenharmony_ci 7610e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7611e41f4b71Sopenharmony_ci| :------- |:-------------------------------------------------------------------------| :--- |:--------------------------------------------| 7612e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'outputDeviceChangeWithInfo'。 | 7613e41f4b71Sopenharmony_ci| callback | Callback\<[AudioStreamDeviceChangeInfo](#audiostreamdevicechangeinfo11)> | 否 | 回调函数,返回当前音频流的输出设备描述信息及变化原因。 | 7614e41f4b71Sopenharmony_ci 7615e41f4b71Sopenharmony_ci**错误码:** 7616e41f4b71Sopenharmony_ci 7617e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 7618e41f4b71Sopenharmony_ci 7619e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7620e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7621e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7622e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7623e41f4b71Sopenharmony_ci 7624e41f4b71Sopenharmony_ci**示例:** 7625e41f4b71Sopenharmony_ci 7626e41f4b71Sopenharmony_ci```ts 7627e41f4b71Sopenharmony_ci// 取消该事件的所有监听 7628e41f4b71Sopenharmony_ciaudioRenderer.off('outputDeviceChangeWithInfo'); 7629e41f4b71Sopenharmony_ci 7630e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 7631e41f4b71Sopenharmony_cilet outputDeviceChangeWithInfoCallback = (deviceChangeInfo: audio.AudioStreamDeviceChangeInfo) => { 7632e41f4b71Sopenharmony_ci console.info(`DeviceInfo id: ${deviceChangeInfo.devices[0].id}`); 7633e41f4b71Sopenharmony_ci console.info(`DeviceInfo name: ${deviceChangeInfo.devices[0].name}`); 7634e41f4b71Sopenharmony_ci console.info(`DeviceInfo address: ${deviceChangeInfo.devices[0].address}`); 7635e41f4b71Sopenharmony_ci console.info(`Device change reason: ${deviceChangeInfo.changeReason}`); 7636e41f4b71Sopenharmony_ci}; 7637e41f4b71Sopenharmony_ci 7638e41f4b71Sopenharmony_ciaudioRenderer.on('outputDeviceChangeWithInfo', outputDeviceChangeWithInfoCallback); 7639e41f4b71Sopenharmony_ci 7640e41f4b71Sopenharmony_ciaudioRenderer.off('outputDeviceChangeWithInfo', outputDeviceChangeWithInfoCallback); 7641e41f4b71Sopenharmony_ci``` 7642e41f4b71Sopenharmony_ci 7643e41f4b71Sopenharmony_ci### on('writeData')<sup>11+</sup> 7644e41f4b71Sopenharmony_ci 7645e41f4b71Sopenharmony_cion(type: 'writeData', callback: AudioRendererWriteDataCallback): void 7646e41f4b71Sopenharmony_ci 7647e41f4b71Sopenharmony_ci监听音频数据写入回调事件(当需要写入音频数据时触发),使用 callback 方式返回结果。 7648e41f4b71Sopenharmony_ci 7649e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7650e41f4b71Sopenharmony_ci 7651e41f4b71Sopenharmony_ci**参数:** 7652e41f4b71Sopenharmony_ci 7653e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7654e41f4b71Sopenharmony_ci| :------- |:--------------------------------| :--- |:--------------------------------------| 7655e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'writeData'。 | 7656e41f4b71Sopenharmony_ci| callback | [AudioRendererWriteDataCallback](#audiorendererwritedatacallback12) | 是 | 回调函数,入参代表应用接收待写入的数据缓冲区。<br>API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果[AudioDataCallbackResult](#audiodatacallbackresult12)。 | 7657e41f4b71Sopenharmony_ci 7658e41f4b71Sopenharmony_ci**错误码:** 7659e41f4b71Sopenharmony_ci 7660e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见 [Audio错误码](errorcode-audio.md)。 7661e41f4b71Sopenharmony_ci 7662e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7663e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7664e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 7665e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7666e41f4b71Sopenharmony_ci 7667e41f4b71Sopenharmony_ci**示例:** 7668e41f4b71Sopenharmony_ci 7669e41f4b71Sopenharmony_ci```ts 7670e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7671e41f4b71Sopenharmony_ciimport {fileIo as fs} from '@kit.CoreFileKit'; 7672e41f4b71Sopenharmony_ci 7673e41f4b71Sopenharmony_ciclass Options { 7674e41f4b71Sopenharmony_ci offset?: number; 7675e41f4b71Sopenharmony_ci length?: number; 7676e41f4b71Sopenharmony_ci} 7677e41f4b71Sopenharmony_ci 7678e41f4b71Sopenharmony_cilet bufferSize: number = 0; 7679e41f4b71Sopenharmony_cilet path = getContext().cacheDir; 7680e41f4b71Sopenharmony_ci// 确保该沙箱路径下存在该资源 7681e41f4b71Sopenharmony_cilet filePath = path + '/StarWars10s-2C-48000-4SW.wav'; 7682e41f4b71Sopenharmony_cilet file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_ONLY); 7683e41f4b71Sopenharmony_cilet writeDataCallback = (buffer: ArrayBuffer) => { 7684e41f4b71Sopenharmony_ci let options: Options = { 7685e41f4b71Sopenharmony_ci offset: bufferSize, 7686e41f4b71Sopenharmony_ci length: buffer.byteLength 7687e41f4b71Sopenharmony_ci }; 7688e41f4b71Sopenharmony_ci 7689e41f4b71Sopenharmony_ci try { 7690e41f4b71Sopenharmony_ci fs.readSync(file.fd, buffer, options); 7691e41f4b71Sopenharmony_ci bufferSize += buffer.byteLength; 7692e41f4b71Sopenharmony_ci // API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果 7693e41f4b71Sopenharmony_ci return audio.AudioDataCallbackResult.VALID; 7694e41f4b71Sopenharmony_ci } catch (error) { 7695e41f4b71Sopenharmony_ci console.error('Error reading file:', error); 7696e41f4b71Sopenharmony_ci // API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果 7697e41f4b71Sopenharmony_ci return audio.AudioDataCallbackResult.INVALID; 7698e41f4b71Sopenharmony_ci } 7699e41f4b71Sopenharmony_ci}; 7700e41f4b71Sopenharmony_ci 7701e41f4b71Sopenharmony_ciaudioRenderer.on('writeData', writeDataCallback); 7702e41f4b71Sopenharmony_ciaudioRenderer.start().then(() => { 7703e41f4b71Sopenharmony_ci console.info('Renderer started'); 7704e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 7705e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 7706e41f4b71Sopenharmony_ci}); 7707e41f4b71Sopenharmony_ci``` 7708e41f4b71Sopenharmony_ci 7709e41f4b71Sopenharmony_ci### off('writeData')<sup>11+</sup> 7710e41f4b71Sopenharmony_ci 7711e41f4b71Sopenharmony_cioff(type: 'writeData', callback?: AudioRendererWriteDataCallback): void 7712e41f4b71Sopenharmony_ci 7713e41f4b71Sopenharmony_ci取消监听音频数据写入回调事件,使用 callback 方式返回结果。 7714e41f4b71Sopenharmony_ci 7715e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 7716e41f4b71Sopenharmony_ci 7717e41f4b71Sopenharmony_ci**参数:** 7718e41f4b71Sopenharmony_ci 7719e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7720e41f4b71Sopenharmony_ci| :------- |:--------------------------------| :--- |:--------------------------------------| 7721e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'writeData'。 | 7722e41f4b71Sopenharmony_ci| callback | [AudioRendererWriteDataCallback](#audiorendererwritedatacallback12) | 否 | 回调函数,入参代表应用接收待写入的数据缓冲区。<br>API version 11 不支持返回回调结果,从 API version 12 开始支持返回回调结果[AudioDataCallbackResult](#audiodatacallbackresult12)。 | 7723e41f4b71Sopenharmony_ci 7724e41f4b71Sopenharmony_ci**错误码:** 7725e41f4b71Sopenharmony_ci 7726e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见 [Audio错误码](errorcode-audio.md)。 7727e41f4b71Sopenharmony_ci 7728e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7729e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 7730e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 7731e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 7732e41f4b71Sopenharmony_ci 7733e41f4b71Sopenharmony_ci**示例:** 7734e41f4b71Sopenharmony_ci 7735e41f4b71Sopenharmony_ci```ts 7736e41f4b71Sopenharmony_ci// 取消该事件的所有监听 7737e41f4b71Sopenharmony_ciaudioRenderer.off('writeData'); 7738e41f4b71Sopenharmony_ci 7739e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 7740e41f4b71Sopenharmony_cilet writeDataCallback = (data: ArrayBuffer) => { 7741e41f4b71Sopenharmony_ci console.info(`write data: ${data}`); 7742e41f4b71Sopenharmony_ci}; 7743e41f4b71Sopenharmony_ci 7744e41f4b71Sopenharmony_ciaudioRenderer.on('writeData', writeDataCallback); 7745e41f4b71Sopenharmony_ci 7746e41f4b71Sopenharmony_ciaudioRenderer.off('writeData', writeDataCallback); 7747e41f4b71Sopenharmony_ci``` 7748e41f4b71Sopenharmony_ci 7749e41f4b71Sopenharmony_ci## AudioCapturer<sup>8+</sup> 7750e41f4b71Sopenharmony_ci 7751e41f4b71Sopenharmony_ci提供音频采集的相关接口。在调用AudioCapturer的接口前,需要先通过[createAudioCapturer](#audiocreateaudiocapturer8)创建实例。 7752e41f4b71Sopenharmony_ci 7753e41f4b71Sopenharmony_ci### 属性 7754e41f4b71Sopenharmony_ci 7755e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7756e41f4b71Sopenharmony_ci 7757e41f4b71Sopenharmony_ci| 名称 | 类型 | 可读 | 可写 | 说明 | 7758e41f4b71Sopenharmony_ci| :---- | :------------------------- | :--- | :--- | :--------------- | 7759e41f4b71Sopenharmony_ci| state<sup>8+</sup> | [AudioState](#audiostate8) | 是 | 否 | 音频采集器状态。 | 7760e41f4b71Sopenharmony_ci 7761e41f4b71Sopenharmony_ci**示例:** 7762e41f4b71Sopenharmony_ci 7763e41f4b71Sopenharmony_ci```ts 7764e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 7765e41f4b71Sopenharmony_ci 7766e41f4b71Sopenharmony_cilet state: audio.AudioState = audioCapturer.state; 7767e41f4b71Sopenharmony_ci``` 7768e41f4b71Sopenharmony_ci 7769e41f4b71Sopenharmony_ci### getCapturerInfo<sup>8+</sup> 7770e41f4b71Sopenharmony_ci 7771e41f4b71Sopenharmony_cigetCapturerInfo(callback: AsyncCallback<AudioCapturerInfo\>): void 7772e41f4b71Sopenharmony_ci 7773e41f4b71Sopenharmony_ci获取采集器信息。使用callback方式异步返回结果。 7774e41f4b71Sopenharmony_ci 7775e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7776e41f4b71Sopenharmony_ci 7777e41f4b71Sopenharmony_ci**参数:** 7778e41f4b71Sopenharmony_ci 7779e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7780e41f4b71Sopenharmony_ci| :------- | :-------------------------------- | :--- | :----------------------------------- | 7781e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioCapturerInfo](#audiocapturerinfo8)\> | 是 | 回调函数。当获取采集器信息成功,err为undefined,data为获取到的采集器信息;否则为错误对象。 | 7782e41f4b71Sopenharmony_ci 7783e41f4b71Sopenharmony_ci**示例:** 7784e41f4b71Sopenharmony_ci 7785e41f4b71Sopenharmony_ci```ts 7786e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7787e41f4b71Sopenharmony_ci 7788e41f4b71Sopenharmony_ciaudioCapturer.getCapturerInfo((err: BusinessError, capturerInfo: audio.AudioCapturerInfo) => { 7789e41f4b71Sopenharmony_ci if (err) { 7790e41f4b71Sopenharmony_ci console.error('Failed to get capture info'); 7791e41f4b71Sopenharmony_ci } else { 7792e41f4b71Sopenharmony_ci console.info('Capturer getCapturerInfo:'); 7793e41f4b71Sopenharmony_ci console.info(`Capturer source: ${capturerInfo.source}`); 7794e41f4b71Sopenharmony_ci console.info(`Capturer flags: ${capturerInfo.capturerFlags}`); 7795e41f4b71Sopenharmony_ci } 7796e41f4b71Sopenharmony_ci}); 7797e41f4b71Sopenharmony_ci``` 7798e41f4b71Sopenharmony_ci 7799e41f4b71Sopenharmony_ci 7800e41f4b71Sopenharmony_ci### getCapturerInfo<sup>8+</sup> 7801e41f4b71Sopenharmony_ci 7802e41f4b71Sopenharmony_cigetCapturerInfo(): Promise<AudioCapturerInfo\> 7803e41f4b71Sopenharmony_ci 7804e41f4b71Sopenharmony_ci获取采集器信息。使用Promise方式异步返回结果。 7805e41f4b71Sopenharmony_ci 7806e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7807e41f4b71Sopenharmony_ci 7808e41f4b71Sopenharmony_ci**返回值:** 7809e41f4b71Sopenharmony_ci 7810e41f4b71Sopenharmony_ci| 类型 | 说明 | 7811e41f4b71Sopenharmony_ci| :------------------------------------------------ | :---------------------------------- | 7812e41f4b71Sopenharmony_ci| Promise<[AudioCapturerInfo](#audiocapturerinfo8)\> | Promise对象,返回采集器信息。 | 7813e41f4b71Sopenharmony_ci 7814e41f4b71Sopenharmony_ci**示例:** 7815e41f4b71Sopenharmony_ci 7816e41f4b71Sopenharmony_ci```ts 7817e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7818e41f4b71Sopenharmony_ci 7819e41f4b71Sopenharmony_ciaudioCapturer.getCapturerInfo().then((audioParamsGet: audio.AudioCapturerInfo) => { 7820e41f4b71Sopenharmony_ci if (audioParamsGet != undefined) { 7821e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: Capturer CapturerInfo:'); 7822e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`); 7823e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`); 7824e41f4b71Sopenharmony_ci } else { 7825e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: audioParamsGet is : ${audioParamsGet}`); 7826e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: audioParams getCapturerInfo are incorrect'); 7827e41f4b71Sopenharmony_ci } 7828e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 7829e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${err}`); 7830e41f4b71Sopenharmony_ci}) 7831e41f4b71Sopenharmony_ci``` 7832e41f4b71Sopenharmony_ci 7833e41f4b71Sopenharmony_ci### getCapturerInfoSync<sup>10+</sup> 7834e41f4b71Sopenharmony_ci 7835e41f4b71Sopenharmony_cigetCapturerInfoSync(): AudioCapturerInfo 7836e41f4b71Sopenharmony_ci 7837e41f4b71Sopenharmony_ci获取采集器信息,同步返回结果。 7838e41f4b71Sopenharmony_ci 7839e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7840e41f4b71Sopenharmony_ci 7841e41f4b71Sopenharmony_ci**返回值:** 7842e41f4b71Sopenharmony_ci 7843e41f4b71Sopenharmony_ci| 类型 | 说明 | 7844e41f4b71Sopenharmony_ci| :------------------------------------------------ | :---------------------------------- | 7845e41f4b71Sopenharmony_ci| [AudioCapturerInfo](#audiocapturerinfo8) | 返回采集器信息。 | 7846e41f4b71Sopenharmony_ci 7847e41f4b71Sopenharmony_ci**示例:** 7848e41f4b71Sopenharmony_ci 7849e41f4b71Sopenharmony_ci```ts 7850e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7851e41f4b71Sopenharmony_ci 7852e41f4b71Sopenharmony_citry { 7853e41f4b71Sopenharmony_ci let audioParamsGet: audio.AudioCapturerInfo = audioCapturer.getCapturerInfoSync(); 7854e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: Capturer SourceType: ${audioParamsGet.source}`); 7855e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: Capturer capturerFlags: ${audioParamsGet.capturerFlags}`); 7856e41f4b71Sopenharmony_ci} catch (err) { 7857e41f4b71Sopenharmony_ci let error = err as BusinessError; 7858e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: CapturerInfo :ERROR: ${error}`); 7859e41f4b71Sopenharmony_ci} 7860e41f4b71Sopenharmony_ci``` 7861e41f4b71Sopenharmony_ci 7862e41f4b71Sopenharmony_ci### getStreamInfo<sup>8+</sup> 7863e41f4b71Sopenharmony_ci 7864e41f4b71Sopenharmony_cigetStreamInfo(callback: AsyncCallback<AudioStreamInfo\>): void 7865e41f4b71Sopenharmony_ci 7866e41f4b71Sopenharmony_ci获取采集器流信息。使用callback方式异步返回结果。 7867e41f4b71Sopenharmony_ci 7868e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7869e41f4b71Sopenharmony_ci 7870e41f4b71Sopenharmony_ci**参数:** 7871e41f4b71Sopenharmony_ci 7872e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7873e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :------------------------------- | 7874e41f4b71Sopenharmony_ci| callback | AsyncCallback<[AudioStreamInfo](#audiostreaminfo8)\> | 是 | 回调函数。当获取采集器流信息成功,err为undefined,data为获取到的采集器流信息;否则为错误对象。 | 7875e41f4b71Sopenharmony_ci 7876e41f4b71Sopenharmony_ci**示例:** 7877e41f4b71Sopenharmony_ci 7878e41f4b71Sopenharmony_ci```ts 7879e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7880e41f4b71Sopenharmony_ci 7881e41f4b71Sopenharmony_ciaudioCapturer.getStreamInfo((err: BusinessError, streamInfo: audio.AudioStreamInfo) => { 7882e41f4b71Sopenharmony_ci if (err) { 7883e41f4b71Sopenharmony_ci console.error('Failed to get stream info'); 7884e41f4b71Sopenharmony_ci } else { 7885e41f4b71Sopenharmony_ci console.info('Capturer GetStreamInfo:'); 7886e41f4b71Sopenharmony_ci console.info(`Capturer sampling rate: ${streamInfo.samplingRate}`); 7887e41f4b71Sopenharmony_ci console.info(`Capturer channel: ${streamInfo.channels}`); 7888e41f4b71Sopenharmony_ci console.info(`Capturer format: ${streamInfo.sampleFormat}`); 7889e41f4b71Sopenharmony_ci console.info(`Capturer encoding type: ${streamInfo.encodingType}`); 7890e41f4b71Sopenharmony_ci } 7891e41f4b71Sopenharmony_ci}); 7892e41f4b71Sopenharmony_ci``` 7893e41f4b71Sopenharmony_ci 7894e41f4b71Sopenharmony_ci### getStreamInfo<sup>8+</sup> 7895e41f4b71Sopenharmony_ci 7896e41f4b71Sopenharmony_cigetStreamInfo(): Promise<AudioStreamInfo\> 7897e41f4b71Sopenharmony_ci 7898e41f4b71Sopenharmony_ci获取采集器流信息。使用Promise方式异步返回结果。 7899e41f4b71Sopenharmony_ci 7900e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7901e41f4b71Sopenharmony_ci 7902e41f4b71Sopenharmony_ci**返回值:** 7903e41f4b71Sopenharmony_ci 7904e41f4b71Sopenharmony_ci| 类型 | 说明 | 7905e41f4b71Sopenharmony_ci| :--------------------------------------------- | :------------------------------ | 7906e41f4b71Sopenharmony_ci| Promise<[AudioStreamInfo](#audiostreaminfo8)\> | Promise对象,返回流信息。 | 7907e41f4b71Sopenharmony_ci 7908e41f4b71Sopenharmony_ci**示例:** 7909e41f4b71Sopenharmony_ci 7910e41f4b71Sopenharmony_ci```ts 7911e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7912e41f4b71Sopenharmony_ci 7913e41f4b71Sopenharmony_ciaudioCapturer.getStreamInfo().then((audioParamsGet: audio.AudioStreamInfo) => { 7914e41f4b71Sopenharmony_ci console.info('getStreamInfo:'); 7915e41f4b71Sopenharmony_ci console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`); 7916e41f4b71Sopenharmony_ci console.info(`samplingRate: ${audioParamsGet.samplingRate}`); 7917e41f4b71Sopenharmony_ci console.info(`channels: ${audioParamsGet.channels}`); 7918e41f4b71Sopenharmony_ci console.info(`encodingType: ${audioParamsGet.encodingType}`); 7919e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 7920e41f4b71Sopenharmony_ci console.error(`getStreamInfo :ERROR: ${err}`); 7921e41f4b71Sopenharmony_ci}); 7922e41f4b71Sopenharmony_ci``` 7923e41f4b71Sopenharmony_ci 7924e41f4b71Sopenharmony_ci### getStreamInfoSync<sup>10+</sup> 7925e41f4b71Sopenharmony_ci 7926e41f4b71Sopenharmony_cigetStreamInfoSync(): AudioStreamInfo 7927e41f4b71Sopenharmony_ci 7928e41f4b71Sopenharmony_ci获取采集器流信息,同步返回结果。 7929e41f4b71Sopenharmony_ci 7930e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7931e41f4b71Sopenharmony_ci 7932e41f4b71Sopenharmony_ci**返回值:** 7933e41f4b71Sopenharmony_ci 7934e41f4b71Sopenharmony_ci| 类型 | 说明 | 7935e41f4b71Sopenharmony_ci| :--------------------------------------------- | :------------------------------ | 7936e41f4b71Sopenharmony_ci| [AudioStreamInfo](#audiostreaminfo8) | 返回流信息。 | 7937e41f4b71Sopenharmony_ci 7938e41f4b71Sopenharmony_ci**示例:** 7939e41f4b71Sopenharmony_ci 7940e41f4b71Sopenharmony_ci```ts 7941e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7942e41f4b71Sopenharmony_ci 7943e41f4b71Sopenharmony_citry { 7944e41f4b71Sopenharmony_ci let audioParamsGet: audio.AudioStreamInfo = audioCapturer.getStreamInfoSync(); 7945e41f4b71Sopenharmony_ci console.info(`sampleFormat: ${audioParamsGet.sampleFormat}`); 7946e41f4b71Sopenharmony_ci console.info(`samplingRate: ${audioParamsGet.samplingRate}`); 7947e41f4b71Sopenharmony_ci console.info(`channels: ${audioParamsGet.channels}`); 7948e41f4b71Sopenharmony_ci console.info(`encodingType: ${audioParamsGet.encodingType}`); 7949e41f4b71Sopenharmony_ci} catch (err) { 7950e41f4b71Sopenharmony_ci let error = err as BusinessError; 7951e41f4b71Sopenharmony_ci console.error(`getStreamInfo :ERROR: ${error}`); 7952e41f4b71Sopenharmony_ci} 7953e41f4b71Sopenharmony_ci``` 7954e41f4b71Sopenharmony_ci 7955e41f4b71Sopenharmony_ci### getAudioStreamId<sup>9+</sup> 7956e41f4b71Sopenharmony_ci 7957e41f4b71Sopenharmony_cigetAudioStreamId(callback: AsyncCallback<number\>): void 7958e41f4b71Sopenharmony_ci 7959e41f4b71Sopenharmony_ci获取音频流id,使用callback方式异步返回结果。 7960e41f4b71Sopenharmony_ci 7961e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7962e41f4b71Sopenharmony_ci 7963e41f4b71Sopenharmony_ci**参数:** 7964e41f4b71Sopenharmony_ci 7965e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7966e41f4b71Sopenharmony_ci| :------- | :--------------------------------------------------- | :--- | :------------------- | 7967e41f4b71Sopenharmony_ci| callback | AsyncCallback<number\> | 是 | 回调函数。当获取音频流id成功,err为undefined,data为获取到的音频流id;否则为错误对象。 | 7968e41f4b71Sopenharmony_ci 7969e41f4b71Sopenharmony_ci**示例:** 7970e41f4b71Sopenharmony_ci 7971e41f4b71Sopenharmony_ci```ts 7972e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7973e41f4b71Sopenharmony_ci 7974e41f4b71Sopenharmony_ciaudioCapturer.getAudioStreamId((err: BusinessError, streamId: number) => { 7975e41f4b71Sopenharmony_ci console.info(`audioCapturer GetStreamId: ${streamId}`); 7976e41f4b71Sopenharmony_ci}); 7977e41f4b71Sopenharmony_ci``` 7978e41f4b71Sopenharmony_ci 7979e41f4b71Sopenharmony_ci### getAudioStreamId<sup>9+</sup> 7980e41f4b71Sopenharmony_ci 7981e41f4b71Sopenharmony_cigetAudioStreamId(): Promise<number\> 7982e41f4b71Sopenharmony_ci 7983e41f4b71Sopenharmony_ci获取音频流id,使用Promise方式异步返回结果。 7984e41f4b71Sopenharmony_ci 7985e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 7986e41f4b71Sopenharmony_ci 7987e41f4b71Sopenharmony_ci**返回值:** 7988e41f4b71Sopenharmony_ci 7989e41f4b71Sopenharmony_ci| 类型 | 说明 | 7990e41f4b71Sopenharmony_ci| :----------------| :--------------------- | 7991e41f4b71Sopenharmony_ci| Promise<number\> | Promise对象,返回音频流id。 | 7992e41f4b71Sopenharmony_ci 7993e41f4b71Sopenharmony_ci**示例:** 7994e41f4b71Sopenharmony_ci 7995e41f4b71Sopenharmony_ci```ts 7996e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7997e41f4b71Sopenharmony_ci 7998e41f4b71Sopenharmony_ciaudioCapturer.getAudioStreamId().then((streamId: number) => { 7999e41f4b71Sopenharmony_ci console.info(`audioCapturer getAudioStreamId: ${streamId}`); 8000e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8001e41f4b71Sopenharmony_ci console.error(`ERROR: ${err}`); 8002e41f4b71Sopenharmony_ci}); 8003e41f4b71Sopenharmony_ci``` 8004e41f4b71Sopenharmony_ci 8005e41f4b71Sopenharmony_ci### getAudioStreamIdSync<sup>10+</sup> 8006e41f4b71Sopenharmony_ci 8007e41f4b71Sopenharmony_cigetAudioStreamIdSync(): number 8008e41f4b71Sopenharmony_ci 8009e41f4b71Sopenharmony_ci获取音频流id,同步返回结果。 8010e41f4b71Sopenharmony_ci 8011e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8012e41f4b71Sopenharmony_ci 8013e41f4b71Sopenharmony_ci**返回值:** 8014e41f4b71Sopenharmony_ci 8015e41f4b71Sopenharmony_ci| 类型 | 说明 | 8016e41f4b71Sopenharmony_ci| :----------------| :--------------------- | 8017e41f4b71Sopenharmony_ci| number | 返回音频流id。 | 8018e41f4b71Sopenharmony_ci 8019e41f4b71Sopenharmony_ci**示例:** 8020e41f4b71Sopenharmony_ci 8021e41f4b71Sopenharmony_ci```ts 8022e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8023e41f4b71Sopenharmony_ci 8024e41f4b71Sopenharmony_citry { 8025e41f4b71Sopenharmony_ci let streamId: number = audioCapturer.getAudioStreamIdSync(); 8026e41f4b71Sopenharmony_ci console.info(`audioCapturer getAudioStreamIdSync: ${streamId}`); 8027e41f4b71Sopenharmony_ci} catch (err) { 8028e41f4b71Sopenharmony_ci let error = err as BusinessError; 8029e41f4b71Sopenharmony_ci console.error(`ERROR: ${error}`); 8030e41f4b71Sopenharmony_ci} 8031e41f4b71Sopenharmony_ci``` 8032e41f4b71Sopenharmony_ci 8033e41f4b71Sopenharmony_ci### start<sup>8+</sup> 8034e41f4b71Sopenharmony_ci 8035e41f4b71Sopenharmony_cistart(callback: AsyncCallback<void\>): void 8036e41f4b71Sopenharmony_ci 8037e41f4b71Sopenharmony_ci启动音频采集器。使用callback方式异步返回结果。 8038e41f4b71Sopenharmony_ci 8039e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8040e41f4b71Sopenharmony_ci 8041e41f4b71Sopenharmony_ci**参数:** 8042e41f4b71Sopenharmony_ci 8043e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8044e41f4b71Sopenharmony_ci| :------- | :------------------- | :--- | :----------------------------- | 8045e41f4b71Sopenharmony_ci| callback | AsyncCallback<void\> | 是 | Callback对象,成功表示启动音频采集器成功,异常将返回error对象:<br>错误码6800301,表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。 | 8046e41f4b71Sopenharmony_ci 8047e41f4b71Sopenharmony_ci**示例:** 8048e41f4b71Sopenharmony_ci 8049e41f4b71Sopenharmony_ci```ts 8050e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8051e41f4b71Sopenharmony_ci 8052e41f4b71Sopenharmony_ciaudioCapturer.start((err: BusinessError) => { 8053e41f4b71Sopenharmony_ci if (err) { 8054e41f4b71Sopenharmony_ci console.error('Capturer start failed.'); 8055e41f4b71Sopenharmony_ci } else { 8056e41f4b71Sopenharmony_ci console.info('Capturer start success.'); 8057e41f4b71Sopenharmony_ci } 8058e41f4b71Sopenharmony_ci}); 8059e41f4b71Sopenharmony_ci``` 8060e41f4b71Sopenharmony_ci 8061e41f4b71Sopenharmony_ci 8062e41f4b71Sopenharmony_ci### start<sup>8+</sup> 8063e41f4b71Sopenharmony_ci 8064e41f4b71Sopenharmony_cistart(): Promise<void\> 8065e41f4b71Sopenharmony_ci 8066e41f4b71Sopenharmony_ci启动音频采集器。使用Promise方式异步返回结果。 8067e41f4b71Sopenharmony_ci 8068e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8069e41f4b71Sopenharmony_ci 8070e41f4b71Sopenharmony_ci**返回值:** 8071e41f4b71Sopenharmony_ci 8072e41f4b71Sopenharmony_ci| 类型 | 说明 | 8073e41f4b71Sopenharmony_ci| :------------- | :---------------------------- | 8074e41f4b71Sopenharmony_ci| Promise<void\> | Promise对象,成功表示启动音频采集器成功,异常将返回error对象:<br>错误码6800301,表示包含状态检查异常、焦点抢占失败、系统处理异常(具体错误查看系统日志)。 | 8075e41f4b71Sopenharmony_ci 8076e41f4b71Sopenharmony_ci**示例:** 8077e41f4b71Sopenharmony_ci 8078e41f4b71Sopenharmony_ci```ts 8079e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8080e41f4b71Sopenharmony_ci 8081e41f4b71Sopenharmony_ciaudioCapturer.start().then(() => { 8082e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: ---------START---------'); 8083e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); 8084e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: AudioCapturer: STATE: ${audioCapturer.state}`); 8085e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: Capturer started: SUCCESS'); 8086e41f4b71Sopenharmony_ci if ((audioCapturer.state == audio.AudioState.STATE_RUNNING)) { 8087e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: AudioCapturer is in Running State'); 8088e41f4b71Sopenharmony_ci } 8089e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8090e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: Capturer start :ERROR : ${err}`); 8091e41f4b71Sopenharmony_ci}); 8092e41f4b71Sopenharmony_ci``` 8093e41f4b71Sopenharmony_ci 8094e41f4b71Sopenharmony_ci### stop<sup>8+</sup> 8095e41f4b71Sopenharmony_ci 8096e41f4b71Sopenharmony_cistop(callback: AsyncCallback<void\>): void 8097e41f4b71Sopenharmony_ci 8098e41f4b71Sopenharmony_ci停止采集。使用callback方式异步返回结果。 8099e41f4b71Sopenharmony_ci 8100e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8101e41f4b71Sopenharmony_ci 8102e41f4b71Sopenharmony_ci**参数:** 8103e41f4b71Sopenharmony_ci 8104e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8105e41f4b71Sopenharmony_ci| :------- | :------------------- | :--- | :----------------------------- | 8106e41f4b71Sopenharmony_ci| callback | AsyncCallback<void\> | 是 | 回调函数。当停止采集成功,err为undefined,否则为错误对象。 | 8107e41f4b71Sopenharmony_ci 8108e41f4b71Sopenharmony_ci**示例:** 8109e41f4b71Sopenharmony_ci 8110e41f4b71Sopenharmony_ci```ts 8111e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8112e41f4b71Sopenharmony_ci 8113e41f4b71Sopenharmony_ciaudioCapturer.stop((err: BusinessError) => { 8114e41f4b71Sopenharmony_ci if (err) { 8115e41f4b71Sopenharmony_ci console.error('Capturer stop failed'); 8116e41f4b71Sopenharmony_ci } else { 8117e41f4b71Sopenharmony_ci console.info('Capturer stopped.'); 8118e41f4b71Sopenharmony_ci } 8119e41f4b71Sopenharmony_ci}); 8120e41f4b71Sopenharmony_ci``` 8121e41f4b71Sopenharmony_ci 8122e41f4b71Sopenharmony_ci 8123e41f4b71Sopenharmony_ci### stop<sup>8+</sup> 8124e41f4b71Sopenharmony_ci 8125e41f4b71Sopenharmony_cistop(): Promise<void\> 8126e41f4b71Sopenharmony_ci 8127e41f4b71Sopenharmony_ci停止采集。使用Promise方式异步返回结果。 8128e41f4b71Sopenharmony_ci 8129e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8130e41f4b71Sopenharmony_ci 8131e41f4b71Sopenharmony_ci**返回值:** 8132e41f4b71Sopenharmony_ci 8133e41f4b71Sopenharmony_ci| 类型 | 说明 | 8134e41f4b71Sopenharmony_ci| :------------- | :---------------------------- | 8135e41f4b71Sopenharmony_ci| Promise<void\> | Promise对象,无返回结果。 | 8136e41f4b71Sopenharmony_ci 8137e41f4b71Sopenharmony_ci**示例:** 8138e41f4b71Sopenharmony_ci 8139e41f4b71Sopenharmony_ci```ts 8140e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8141e41f4b71Sopenharmony_ci 8142e41f4b71Sopenharmony_ciaudioCapturer.stop().then(() => { 8143e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: ---------STOP RECORD---------'); 8144e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: Capturer stopped: SUCCESS'); 8145e41f4b71Sopenharmony_ci if ((audioCapturer.state == audio.AudioState.STATE_STOPPED)){ 8146e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: State is Stopped:'); 8147e41f4b71Sopenharmony_ci } 8148e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8149e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`); 8150e41f4b71Sopenharmony_ci}); 8151e41f4b71Sopenharmony_ci``` 8152e41f4b71Sopenharmony_ci 8153e41f4b71Sopenharmony_ci### release<sup>8+</sup> 8154e41f4b71Sopenharmony_ci 8155e41f4b71Sopenharmony_cirelease(callback: AsyncCallback<void\>): void 8156e41f4b71Sopenharmony_ci 8157e41f4b71Sopenharmony_ci释放采集器。使用callback方式异步返回结果。 8158e41f4b71Sopenharmony_ci 8159e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8160e41f4b71Sopenharmony_ci 8161e41f4b71Sopenharmony_ci**参数:** 8162e41f4b71Sopenharmony_ci 8163e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8164e41f4b71Sopenharmony_ci| :------- | :------------------- | :--- | :---------------------------------- | 8165e41f4b71Sopenharmony_ci| callback | AsyncCallback<void\> | 是 | 回调函数。当释放采集器成功,err为undefined,否则为错误对象。 | 8166e41f4b71Sopenharmony_ci 8167e41f4b71Sopenharmony_ci**示例:** 8168e41f4b71Sopenharmony_ci 8169e41f4b71Sopenharmony_ci```ts 8170e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8171e41f4b71Sopenharmony_ci 8172e41f4b71Sopenharmony_ciaudioCapturer.release((err: BusinessError) => { 8173e41f4b71Sopenharmony_ci if (err) { 8174e41f4b71Sopenharmony_ci console.error('capturer release failed'); 8175e41f4b71Sopenharmony_ci } else { 8176e41f4b71Sopenharmony_ci console.info('capturer released.'); 8177e41f4b71Sopenharmony_ci } 8178e41f4b71Sopenharmony_ci}); 8179e41f4b71Sopenharmony_ci``` 8180e41f4b71Sopenharmony_ci 8181e41f4b71Sopenharmony_ci 8182e41f4b71Sopenharmony_ci### release<sup>8+</sup> 8183e41f4b71Sopenharmony_ci 8184e41f4b71Sopenharmony_cirelease(): Promise<void\> 8185e41f4b71Sopenharmony_ci 8186e41f4b71Sopenharmony_ci释放采集器。使用Promise方式异步返回结果。 8187e41f4b71Sopenharmony_ci 8188e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8189e41f4b71Sopenharmony_ci 8190e41f4b71Sopenharmony_ci**返回值:** 8191e41f4b71Sopenharmony_ci 8192e41f4b71Sopenharmony_ci| 类型 | 说明 | 8193e41f4b71Sopenharmony_ci| :------------- | :---------------------------- | 8194e41f4b71Sopenharmony_ci| Promise<void\> | Promise对象,无返回结果。 | 8195e41f4b71Sopenharmony_ci 8196e41f4b71Sopenharmony_ci**示例:** 8197e41f4b71Sopenharmony_ci 8198e41f4b71Sopenharmony_ci```ts 8199e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8200e41f4b71Sopenharmony_ci 8201e41f4b71Sopenharmony_ciaudioCapturer.release().then(() => { 8202e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: ---------RELEASE RECORD---------'); 8203e41f4b71Sopenharmony_ci console.info('AudioFrameworkRecLog: Capturer release : SUCCESS'); 8204e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: AudioCapturer : STATE : ${audioCapturer.state}`); 8205e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8206e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: Capturer stop: ERROR: ${err}`); 8207e41f4b71Sopenharmony_ci}); 8208e41f4b71Sopenharmony_ci``` 8209e41f4b71Sopenharmony_ci 8210e41f4b71Sopenharmony_ci### read<sup>8+(deprecated)</sup> 8211e41f4b71Sopenharmony_ci 8212e41f4b71Sopenharmony_ciread(size: number, isBlockingRead: boolean, callback: AsyncCallback<ArrayBuffer\>): void 8213e41f4b71Sopenharmony_ci 8214e41f4b71Sopenharmony_ci读入缓冲区。使用callback方式异步返回结果。 8215e41f4b71Sopenharmony_ci 8216e41f4b71Sopenharmony_ci> **说明:** 8217e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃,建议使用AudioCapturer中的[on('readData')](#onreaddata11)替代。 8218e41f4b71Sopenharmony_ci 8219e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8220e41f4b71Sopenharmony_ci 8221e41f4b71Sopenharmony_ci**参数:** 8222e41f4b71Sopenharmony_ci 8223e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8224e41f4b71Sopenharmony_ci| :------------- | :-------------------------- | :--- | :------------------------------- | 8225e41f4b71Sopenharmony_ci| size | number | 是 | 读入的字节数。 | 8226e41f4b71Sopenharmony_ci| isBlockingRead | boolean | 是 | 是否阻塞读操作 ,true阻塞,false不阻塞。 | 8227e41f4b71Sopenharmony_ci| callback | AsyncCallback<ArrayBuffer\> | 是 | 回调函数。当读入缓冲区成功,err为undefined,data为获取到的缓冲区;否则为错误对象。 | 8228e41f4b71Sopenharmony_ci 8229e41f4b71Sopenharmony_ci**示例:** 8230e41f4b71Sopenharmony_ci 8231e41f4b71Sopenharmony_ci```ts 8232e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8233e41f4b71Sopenharmony_ci 8234e41f4b71Sopenharmony_cilet bufferSize: number = 0; 8235e41f4b71Sopenharmony_ci 8236e41f4b71Sopenharmony_ciaudioCapturer.getBufferSize().then((data: number) => { 8237e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`); 8238e41f4b71Sopenharmony_ci bufferSize = data; 8239e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8240e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: getBufferSize: ERROR: ${err}`); 8241e41f4b71Sopenharmony_ci}); 8242e41f4b71Sopenharmony_ci 8243e41f4b71Sopenharmony_ciaudioCapturer.read(bufferSize, true, (err: BusinessError, buffer: ArrayBuffer) => { 8244e41f4b71Sopenharmony_ci if (!err) { 8245e41f4b71Sopenharmony_ci console.info('Success in reading the buffer data'); 8246e41f4b71Sopenharmony_ci } 8247e41f4b71Sopenharmony_ci}); 8248e41f4b71Sopenharmony_ci``` 8249e41f4b71Sopenharmony_ci 8250e41f4b71Sopenharmony_ci### read<sup>8+(deprecated)</sup> 8251e41f4b71Sopenharmony_ci 8252e41f4b71Sopenharmony_ciread(size: number, isBlockingRead: boolean): Promise<ArrayBuffer\> 8253e41f4b71Sopenharmony_ci 8254e41f4b71Sopenharmony_ci读入缓冲区。使用Promise方式异步返回结果。 8255e41f4b71Sopenharmony_ci 8256e41f4b71Sopenharmony_ci> **说明:** 8257e41f4b71Sopenharmony_ci> 从 API version 8 开始支持,从 API version 11 开始废弃,建议使用AudioCapturer中的[on('readData')](#onreaddata11)替代。 8258e41f4b71Sopenharmony_ci 8259e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8260e41f4b71Sopenharmony_ci 8261e41f4b71Sopenharmony_ci**参数:** 8262e41f4b71Sopenharmony_ci 8263e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8264e41f4b71Sopenharmony_ci| :------------- | :------ | :--- | :--------------- | 8265e41f4b71Sopenharmony_ci| size | number | 是 | 读入的字节数。 | 8266e41f4b71Sopenharmony_ci| isBlockingRead | boolean | 是 | 是否阻塞读操作 ,true阻塞,false不阻塞。 | 8267e41f4b71Sopenharmony_ci 8268e41f4b71Sopenharmony_ci**返回值:** 8269e41f4b71Sopenharmony_ci 8270e41f4b71Sopenharmony_ci| 类型 | 说明 | 8271e41f4b71Sopenharmony_ci| :-------------------- | :----------------------------------------------------- | 8272e41f4b71Sopenharmony_ci| Promise<ArrayBuffer\> | Promise对象,返回读取的缓冲区数据。 | 8273e41f4b71Sopenharmony_ci 8274e41f4b71Sopenharmony_ci**示例:** 8275e41f4b71Sopenharmony_ci 8276e41f4b71Sopenharmony_ci```ts 8277e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8278e41f4b71Sopenharmony_ci 8279e41f4b71Sopenharmony_cilet bufferSize: number = 0; 8280e41f4b71Sopenharmony_ci 8281e41f4b71Sopenharmony_ciaudioCapturer.getBufferSize().then((data: number) => { 8282e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: getBufferSize: SUCCESS ${data}`); 8283e41f4b71Sopenharmony_ci bufferSize = data; 8284e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8285e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: getBufferSize: ERROR ${err}`); 8286e41f4b71Sopenharmony_ci}); 8287e41f4b71Sopenharmony_ciconsole.info(`Buffer size: ${bufferSize}`); 8288e41f4b71Sopenharmony_ci 8289e41f4b71Sopenharmony_ciaudioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => { 8290e41f4b71Sopenharmony_ci console.info('buffer read successfully'); 8291e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8292e41f4b71Sopenharmony_ci console.error(`ERROR : ${err}`); 8293e41f4b71Sopenharmony_ci}); 8294e41f4b71Sopenharmony_ci``` 8295e41f4b71Sopenharmony_ci 8296e41f4b71Sopenharmony_ci### getAudioTime<sup>8+</sup> 8297e41f4b71Sopenharmony_ci 8298e41f4b71Sopenharmony_cigetAudioTime(callback: AsyncCallback<number\>): void 8299e41f4b71Sopenharmony_ci 8300e41f4b71Sopenharmony_ci获取录制到当前位置时的时间戳(从1970年1月1日开始),单位为纳秒。使用callback方式异步返回结果。 8301e41f4b71Sopenharmony_ci 8302e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8303e41f4b71Sopenharmony_ci 8304e41f4b71Sopenharmony_ci**参数:** 8305e41f4b71Sopenharmony_ci 8306e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8307e41f4b71Sopenharmony_ci| :------- | :--------------------- | :--- | :----------------------------- | 8308e41f4b71Sopenharmony_ci| callback | AsyncCallback<number\> | 是 | 回调函数。当获取时间戳成功,err为undefined,data为获取到的时间戳;否则为错误对象。 | 8309e41f4b71Sopenharmony_ci 8310e41f4b71Sopenharmony_ci**示例:** 8311e41f4b71Sopenharmony_ci 8312e41f4b71Sopenharmony_ci```ts 8313e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8314e41f4b71Sopenharmony_ci 8315e41f4b71Sopenharmony_ciaudioCapturer.getAudioTime((err: BusinessError, timestamp: number) => { 8316e41f4b71Sopenharmony_ci console.info(`Current timestamp: ${timestamp}`); 8317e41f4b71Sopenharmony_ci}); 8318e41f4b71Sopenharmony_ci``` 8319e41f4b71Sopenharmony_ci 8320e41f4b71Sopenharmony_ci### getAudioTime<sup>8+</sup> 8321e41f4b71Sopenharmony_ci 8322e41f4b71Sopenharmony_cigetAudioTime(): Promise<number\> 8323e41f4b71Sopenharmony_ci 8324e41f4b71Sopenharmony_ci获取录制到当前位置时的时间戳(从1970年1月1日开始),单位为纳秒。使用Promise方式异步返回结果。 8325e41f4b71Sopenharmony_ci 8326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8327e41f4b71Sopenharmony_ci 8328e41f4b71Sopenharmony_ci**返回值:** 8329e41f4b71Sopenharmony_ci 8330e41f4b71Sopenharmony_ci| 类型 | 说明 | 8331e41f4b71Sopenharmony_ci| :--------------- | :---------------------------- | 8332e41f4b71Sopenharmony_ci| Promise<number\> | Promise对象,返回时间戳(从1970年1月1日开始),单位为纳秒。 | 8333e41f4b71Sopenharmony_ci 8334e41f4b71Sopenharmony_ci**示例:** 8335e41f4b71Sopenharmony_ci 8336e41f4b71Sopenharmony_ci```ts 8337e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8338e41f4b71Sopenharmony_ci 8339e41f4b71Sopenharmony_ciaudioCapturer.getAudioTime().then((audioTime: number) => { 8340e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTime : Success ${audioTime}`); 8341e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8342e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`); 8343e41f4b71Sopenharmony_ci}); 8344e41f4b71Sopenharmony_ci``` 8345e41f4b71Sopenharmony_ci 8346e41f4b71Sopenharmony_ci### getAudioTimeSync<sup>10+</sup> 8347e41f4b71Sopenharmony_ci 8348e41f4b71Sopenharmony_cigetAudioTimeSync(): number 8349e41f4b71Sopenharmony_ci 8350e41f4b71Sopenharmony_ci获取录制到当前位置时的时间戳(从1970年1月1日开始),单位为纳秒。同步返回结果。 8351e41f4b71Sopenharmony_ci 8352e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8353e41f4b71Sopenharmony_ci 8354e41f4b71Sopenharmony_ci**返回值:** 8355e41f4b71Sopenharmony_ci 8356e41f4b71Sopenharmony_ci| 类型 | 说明 | 8357e41f4b71Sopenharmony_ci| :--------------- | :---------------------------- | 8358e41f4b71Sopenharmony_ci| number | 返回时间戳。 | 8359e41f4b71Sopenharmony_ci 8360e41f4b71Sopenharmony_ci**示例:** 8361e41f4b71Sopenharmony_ci 8362e41f4b71Sopenharmony_ci```ts 8363e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8364e41f4b71Sopenharmony_ci 8365e41f4b71Sopenharmony_citry { 8366e41f4b71Sopenharmony_ci let audioTime: number = audioCapturer.getAudioTimeSync(); 8367e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : Success ${audioTime}`); 8368e41f4b71Sopenharmony_ci} catch (err) { 8369e41f4b71Sopenharmony_ci let error = err as BusinessError; 8370e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: AudioCapturer getAudioTimeSync : ERROR : ${error}`); 8371e41f4b71Sopenharmony_ci} 8372e41f4b71Sopenharmony_ci``` 8373e41f4b71Sopenharmony_ci 8374e41f4b71Sopenharmony_ci### getBufferSize<sup>8+</sup> 8375e41f4b71Sopenharmony_ci 8376e41f4b71Sopenharmony_cigetBufferSize(callback: AsyncCallback<number\>): void 8377e41f4b71Sopenharmony_ci 8378e41f4b71Sopenharmony_ci获取采集器合理的最小缓冲区大小。使用callback方式异步返回结果。 8379e41f4b71Sopenharmony_ci 8380e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8381e41f4b71Sopenharmony_ci 8382e41f4b71Sopenharmony_ci**参数:** 8383e41f4b71Sopenharmony_ci 8384e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8385e41f4b71Sopenharmony_ci| :------- | :--------------------- | :--- | :----------------------------------- | 8386e41f4b71Sopenharmony_ci| callback | AsyncCallback<number\> | 是 | 回调函数。当获取采集器合理的最小缓冲区大小成功,err为undefined,data为获取到的采集器合理的最小缓冲区大小;否则为错误对象。 | 8387e41f4b71Sopenharmony_ci 8388e41f4b71Sopenharmony_ci**示例:** 8389e41f4b71Sopenharmony_ci 8390e41f4b71Sopenharmony_ci```ts 8391e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8392e41f4b71Sopenharmony_ci 8393e41f4b71Sopenharmony_ciaudioCapturer.getBufferSize((err: BusinessError, bufferSize: number) => { 8394e41f4b71Sopenharmony_ci if (!err) { 8395e41f4b71Sopenharmony_ci console.info(`BufferSize : ${bufferSize}`); 8396e41f4b71Sopenharmony_ci audioCapturer.read(bufferSize, true).then((buffer: ArrayBuffer) => { 8397e41f4b71Sopenharmony_ci console.info(`Buffer read is ${buffer.byteLength}`); 8398e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 8399e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: AudioCapturer Created : ERROR : ${err}`); 8400e41f4b71Sopenharmony_ci }); 8401e41f4b71Sopenharmony_ci } 8402e41f4b71Sopenharmony_ci}); 8403e41f4b71Sopenharmony_ci``` 8404e41f4b71Sopenharmony_ci 8405e41f4b71Sopenharmony_ci### getBufferSize<sup>8+</sup> 8406e41f4b71Sopenharmony_ci 8407e41f4b71Sopenharmony_cigetBufferSize(): Promise<number\> 8408e41f4b71Sopenharmony_ci 8409e41f4b71Sopenharmony_ci获取采集器合理的最小缓冲区大小。使用Promise方式异步返回结果。 8410e41f4b71Sopenharmony_ci 8411e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8412e41f4b71Sopenharmony_ci 8413e41f4b71Sopenharmony_ci**返回值:** 8414e41f4b71Sopenharmony_ci 8415e41f4b71Sopenharmony_ci| 类型 | 说明 | 8416e41f4b71Sopenharmony_ci| :--------------- | :---------------------------------- | 8417e41f4b71Sopenharmony_ci| Promise<number\> | Promise对象,返回缓冲区大小。 | 8418e41f4b71Sopenharmony_ci 8419e41f4b71Sopenharmony_ci**示例:** 8420e41f4b71Sopenharmony_ci 8421e41f4b71Sopenharmony_ci```ts 8422e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8423e41f4b71Sopenharmony_ci 8424e41f4b71Sopenharmony_cilet bufferSize: number = 0; 8425e41f4b71Sopenharmony_ci 8426e41f4b71Sopenharmony_ciaudioCapturer.getBufferSize().then((data: number) => { 8427e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: getBufferSize :SUCCESS ${data}`); 8428e41f4b71Sopenharmony_ci bufferSize = data; 8429e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 8430e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: getBufferSize :ERROR : ${err}`); 8431e41f4b71Sopenharmony_ci}); 8432e41f4b71Sopenharmony_ci``` 8433e41f4b71Sopenharmony_ci 8434e41f4b71Sopenharmony_ci### getBufferSizeSync<sup>10+</sup> 8435e41f4b71Sopenharmony_ci 8436e41f4b71Sopenharmony_cigetBufferSizeSync(): number 8437e41f4b71Sopenharmony_ci 8438e41f4b71Sopenharmony_ci获取采集器合理的最小缓冲区大小,同步返回结果。 8439e41f4b71Sopenharmony_ci 8440e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8441e41f4b71Sopenharmony_ci 8442e41f4b71Sopenharmony_ci**返回值:** 8443e41f4b71Sopenharmony_ci 8444e41f4b71Sopenharmony_ci| 类型 | 说明 | 8445e41f4b71Sopenharmony_ci| :--------------- | :---------------------------------- | 8446e41f4b71Sopenharmony_ci| number | 返回缓冲区大小。 | 8447e41f4b71Sopenharmony_ci 8448e41f4b71Sopenharmony_ci**示例:** 8449e41f4b71Sopenharmony_ci 8450e41f4b71Sopenharmony_ci```ts 8451e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8452e41f4b71Sopenharmony_ci 8453e41f4b71Sopenharmony_cilet bufferSize: number = 0; 8454e41f4b71Sopenharmony_ci 8455e41f4b71Sopenharmony_citry { 8456e41f4b71Sopenharmony_ci bufferSize = audioCapturer.getBufferSizeSync(); 8457e41f4b71Sopenharmony_ci console.info(`AudioFrameworkRecLog: getBufferSizeSync :SUCCESS ${bufferSize}`); 8458e41f4b71Sopenharmony_ci} catch (err) { 8459e41f4b71Sopenharmony_ci let error = err as BusinessError; 8460e41f4b71Sopenharmony_ci console.error(`AudioFrameworkRecLog: getBufferSizeSync :ERROR : ${error}`); 8461e41f4b71Sopenharmony_ci} 8462e41f4b71Sopenharmony_ci``` 8463e41f4b71Sopenharmony_ci 8464e41f4b71Sopenharmony_ci### getCurrentInputDevices<sup>11+</sup> 8465e41f4b71Sopenharmony_ci 8466e41f4b71Sopenharmony_cigetCurrentInputDevices(): AudioDeviceDescriptors 8467e41f4b71Sopenharmony_ci 8468e41f4b71Sopenharmony_ci获取录音流输入设备描述符。使用同步方式返回结果。 8469e41f4b71Sopenharmony_ci 8470e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 8471e41f4b71Sopenharmony_ci 8472e41f4b71Sopenharmony_ci**返回值:** 8473e41f4b71Sopenharmony_ci 8474e41f4b71Sopenharmony_ci| 类型 | 说明 | 8475e41f4b71Sopenharmony_ci| ---------------------- | ------------------------------------------------------ | 8476e41f4b71Sopenharmony_ci| [AudioDeviceDescriptors](#audiodevicedescriptors) | 同步接口,返回设备属性数组类型数据。 | 8477e41f4b71Sopenharmony_ci 8478e41f4b71Sopenharmony_ci**示例:** 8479e41f4b71Sopenharmony_ci 8480e41f4b71Sopenharmony_ci```ts 8481e41f4b71Sopenharmony_cilet deviceDescriptors: audio.AudioDeviceDescriptors = audioCapturer.getCurrentInputDevices(); 8482e41f4b71Sopenharmony_ciconsole.info(`Device id: ${deviceDescriptors[0].id}`); 8483e41f4b71Sopenharmony_ciconsole.info(`Device type: ${deviceDescriptors[0].deviceType}`); 8484e41f4b71Sopenharmony_ciconsole.info(`Device role: ${deviceDescriptors[0].deviceRole}`); 8485e41f4b71Sopenharmony_ciconsole.info(`Device name: ${deviceDescriptors[0].name}`); 8486e41f4b71Sopenharmony_ciconsole.info(`Device address: ${deviceDescriptors[0].address}`); 8487e41f4b71Sopenharmony_ciconsole.info(`Device samplerates: ${deviceDescriptors[0].sampleRates[0]}`); 8488e41f4b71Sopenharmony_ciconsole.info(`Device channelcounts: ${deviceDescriptors[0].channelCounts[0]}`); 8489e41f4b71Sopenharmony_ciconsole.info(`Device channelmask: ${deviceDescriptors[0].channelMasks[0]}`); 8490e41f4b71Sopenharmony_ciif (deviceDescriptors[0].encodingTypes) { 8491e41f4b71Sopenharmony_ci console.info(`Device encodingTypes: ${deviceDescriptors[0].encodingTypes[0]}`); 8492e41f4b71Sopenharmony_ci} 8493e41f4b71Sopenharmony_ci``` 8494e41f4b71Sopenharmony_ci 8495e41f4b71Sopenharmony_ci### getCurrentAudioCapturerChangeInfo<sup>11+</sup> 8496e41f4b71Sopenharmony_ci 8497e41f4b71Sopenharmony_cigetCurrentAudioCapturerChangeInfo(): AudioCapturerChangeInfo 8498e41f4b71Sopenharmony_ci 8499e41f4b71Sopenharmony_ci获取录音流配置。使用同步方式返回结果。 8500e41f4b71Sopenharmony_ci 8501e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 8502e41f4b71Sopenharmony_ci 8503e41f4b71Sopenharmony_ci**返回值:** 8504e41f4b71Sopenharmony_ci 8505e41f4b71Sopenharmony_ci| 类型 | 说明 | 8506e41f4b71Sopenharmony_ci| :--------------- | :---------------------------------- | 8507e41f4b71Sopenharmony_ci| [AudioCapturerChangeInfo](#audiocapturerchangeinfo9) | 同步接口,返回描述音频采集器更改信息。 | 8508e41f4b71Sopenharmony_ci 8509e41f4b71Sopenharmony_ci**示例:** 8510e41f4b71Sopenharmony_ci 8511e41f4b71Sopenharmony_ci```ts 8512e41f4b71Sopenharmony_cilet info: audio.AudioCapturerChangeInfo = audioCapturer.getCurrentAudioCapturerChangeInfo(); 8513e41f4b71Sopenharmony_ciconsole.info(`Info streamId: ${info.streamId}`); 8514e41f4b71Sopenharmony_ciconsole.info(`Info source: ${info.capturerInfo.source}`); 8515e41f4b71Sopenharmony_ciconsole.info(`Info capturerFlags: ${info.capturerInfo.capturerFlags}`); 8516e41f4b71Sopenharmony_ciconsole.info(`Info muted: ${info.muted}`); 8517e41f4b71Sopenharmony_ciconsole.info(`Info type: ${info.deviceDescriptors[0].deviceType}`); 8518e41f4b71Sopenharmony_ciconsole.info(`Info role: ${info.deviceDescriptors[0].deviceRole}`); 8519e41f4b71Sopenharmony_ciconsole.info(`Info name: ${info.deviceDescriptors[0].name}`); 8520e41f4b71Sopenharmony_ciconsole.info(`Info address: ${info.deviceDescriptors[0].address}`); 8521e41f4b71Sopenharmony_ciconsole.info(`Info samplerates: ${info.deviceDescriptors[0].sampleRates[0]}`); 8522e41f4b71Sopenharmony_ciconsole.info(`Info channelcounts: ${info.deviceDescriptors[0].channelCounts[0]}`); 8523e41f4b71Sopenharmony_ciconsole.info(`Info channelmask: ${info.deviceDescriptors[0].channelMasks[0]}`); 8524e41f4b71Sopenharmony_ciif (info.deviceDescriptors[0].encodingTypes) { 8525e41f4b71Sopenharmony_ci console.info(`Device encodingTypes: ${info.deviceDescriptors[0].encodingTypes[0]}`); 8526e41f4b71Sopenharmony_ci} 8527e41f4b71Sopenharmony_ci``` 8528e41f4b71Sopenharmony_ci 8529e41f4b71Sopenharmony_ci### on('audioInterrupt')<sup>10+</sup> 8530e41f4b71Sopenharmony_ci 8531e41f4b71Sopenharmony_cion(type: 'audioInterrupt', callback: Callback\<InterruptEvent>): void 8532e41f4b71Sopenharmony_ci 8533e41f4b71Sopenharmony_ci监听音频中断事件(当音频焦点发生变化时触发),使用callback方式返回结果。 8534e41f4b71Sopenharmony_ci 8535e41f4b71Sopenharmony_ciAudioCapturer对象在start事件发生时会主动获取焦点,在pause、stop等事件发生时会主动释放焦点,不需要开发者主动发起获取焦点或释放焦点的申请。 8536e41f4b71Sopenharmony_ci 8537e41f4b71Sopenharmony_ci调用此方法,在AudioCapturer对象获取焦点失败或发生中断事件(如被其他音频打断等)时,会收到[InterruptEvent](#interruptevent9)。建议应用可根据InterruptEvent的信息完成进一步处理,更多信息可参考文档[处理音频焦点事件](../../media/audio/audio-playback-concurrency.md)。 8538e41f4b71Sopenharmony_ci 8539e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 8540e41f4b71Sopenharmony_ci 8541e41f4b71Sopenharmony_ci**参数:** 8542e41f4b71Sopenharmony_ci 8543e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8544e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 8545e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioInterrupt'。 | 8546e41f4b71Sopenharmony_ci| callback | Callback\<[InterruptEvent](#interruptevent9)\> | 是 | 回调函数,返回录制中断时,应用接收的中断事件信息。 | 8547e41f4b71Sopenharmony_ci 8548e41f4b71Sopenharmony_ci**错误码:** 8549e41f4b71Sopenharmony_ci 8550e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8551e41f4b71Sopenharmony_ci 8552e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8553e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8554e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8555e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8556e41f4b71Sopenharmony_ci 8557e41f4b71Sopenharmony_ci**示例:** 8558e41f4b71Sopenharmony_ci 8559e41f4b71Sopenharmony_ci```ts 8560e41f4b71Sopenharmony_ciimport { audio } from '@kit.AudioKit'; 8561e41f4b71Sopenharmony_ci 8562e41f4b71Sopenharmony_cilet isCapturing: boolean; // 标识符,表示是否正在采集 8563e41f4b71Sopenharmony_cionAudioInterrupt(); 8564e41f4b71Sopenharmony_ci 8565e41f4b71Sopenharmony_ciasync function onAudioInterrupt(){ 8566e41f4b71Sopenharmony_ci audioCapturer.on('audioInterrupt', (interruptEvent: audio.InterruptEvent) => { 8567e41f4b71Sopenharmony_ci // 在发生音频打断事件时,audioCapturer收到interruptEvent回调,此处根据其内容做相应处理。 8568e41f4b71Sopenharmony_ci // 1、可选:读取interruptEvent.forceType的类型,判断系统是否已强制执行相应操作。 8569e41f4b71Sopenharmony_ci // 注:默认焦点策略下,INTERRUPT_HINT_RESUME为INTERRUPT_SHARE类型,其余hintType均为INTERRUPT_FORCE类型。因此对forceType可不做判断。 8570e41f4b71Sopenharmony_ci // 2、必选:读取interruptEvent.hintType的类型,做出相应的处理。 8571e41f4b71Sopenharmony_ci if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_FORCE) { 8572e41f4b71Sopenharmony_ci // 音频焦点事件已由系统强制执行,应用需更新自身状态及显示内容等 8573e41f4b71Sopenharmony_ci switch (interruptEvent.hintType) { 8574e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_PAUSE: 8575e41f4b71Sopenharmony_ci // 音频流已被暂停,临时失去焦点,待可重获焦点时会收到resume对应的interruptEvent 8576e41f4b71Sopenharmony_ci console.info('Force paused. Update capturing status and stop reading'); 8577e41f4b71Sopenharmony_ci isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作 8578e41f4b71Sopenharmony_ci break; 8579e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_STOP: 8580e41f4b71Sopenharmony_ci // 音频流已被停止,永久失去焦点,若想恢复采集,需用户主动触发 8581e41f4b71Sopenharmony_ci console.info('Force stopped. Update capturing status and stop reading'); 8582e41f4b71Sopenharmony_ci isCapturing = false; // 简化处理,代表应用切换至暂停状态的若干操作 8583e41f4b71Sopenharmony_ci break; 8584e41f4b71Sopenharmony_ci default: 8585e41f4b71Sopenharmony_ci console.info('Invalid interruptEvent'); 8586e41f4b71Sopenharmony_ci break; 8587e41f4b71Sopenharmony_ci } 8588e41f4b71Sopenharmony_ci } else if (interruptEvent.forceType == audio.InterruptForceType.INTERRUPT_SHARE) { 8589e41f4b71Sopenharmony_ci // 音频焦点事件需由应用进行操作,应用可以自主选择如何处理该事件,建议应用遵从InterruptHint提示处理 8590e41f4b71Sopenharmony_ci switch (interruptEvent.hintType) { 8591e41f4b71Sopenharmony_ci case audio.InterruptHint.INTERRUPT_HINT_RESUME: 8592e41f4b71Sopenharmony_ci // 建议应用继续采集(说明音频流此前被强制暂停,临时失去焦点,现在可以恢复采集) 8593e41f4b71Sopenharmony_ci // 由于INTERRUPT_HINT_RESUME操作需要应用主动执行,系统无法强制,故INTERRUPT_HINT_RESUME事件一定为INTERRUPT_SHARE类型 8594e41f4b71Sopenharmony_ci console.info('Resume force paused renderer or ignore'); 8595e41f4b71Sopenharmony_ci // 若选择继续采集,需在此处主动执行开始采集的若干操作 8596e41f4b71Sopenharmony_ci break; 8597e41f4b71Sopenharmony_ci default: 8598e41f4b71Sopenharmony_ci console.info('Invalid interruptEvent'); 8599e41f4b71Sopenharmony_ci break; 8600e41f4b71Sopenharmony_ci } 8601e41f4b71Sopenharmony_ci } 8602e41f4b71Sopenharmony_ci }); 8603e41f4b71Sopenharmony_ci} 8604e41f4b71Sopenharmony_ci``` 8605e41f4b71Sopenharmony_ci 8606e41f4b71Sopenharmony_ci### off('audioInterrupt')<sup>10+</sup> 8607e41f4b71Sopenharmony_ci 8608e41f4b71Sopenharmony_cioff(type: 'audioInterrupt'): void 8609e41f4b71Sopenharmony_ci 8610e41f4b71Sopenharmony_ci取消监听音频中断事件。 8611e41f4b71Sopenharmony_ci 8612e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Interrupt 8613e41f4b71Sopenharmony_ci 8614e41f4b71Sopenharmony_ci**参数:** 8615e41f4b71Sopenharmony_ci 8616e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8617e41f4b71Sopenharmony_ci| -------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | 8618e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioInterrupt'。 | 8619e41f4b71Sopenharmony_ci 8620e41f4b71Sopenharmony_ci**错误码:** 8621e41f4b71Sopenharmony_ci 8622e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8623e41f4b71Sopenharmony_ci 8624e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8625e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8626e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8627e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8628e41f4b71Sopenharmony_ci 8629e41f4b71Sopenharmony_ci**示例:** 8630e41f4b71Sopenharmony_ci 8631e41f4b71Sopenharmony_ci```ts 8632e41f4b71Sopenharmony_ciaudioCapturer.off('audioInterrupt'); 8633e41f4b71Sopenharmony_ci``` 8634e41f4b71Sopenharmony_ci 8635e41f4b71Sopenharmony_ci### on('inputDeviceChange')<sup>11+</sup> 8636e41f4b71Sopenharmony_ci 8637e41f4b71Sopenharmony_cion(type: 'inputDeviceChange', callback: Callback\<AudioDeviceDescriptors>): void 8638e41f4b71Sopenharmony_ci 8639e41f4b71Sopenharmony_ci监听音频输入设备变化事件(当音频输入设备发生变化时触发),使用callback方式返回结果。 8640e41f4b71Sopenharmony_ci 8641e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 8642e41f4b71Sopenharmony_ci 8643e41f4b71Sopenharmony_ci**参数:** 8644e41f4b71Sopenharmony_ci 8645e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8646e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 8647e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'inputDeviceChange'。 | 8648e41f4b71Sopenharmony_ci| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 是 | 回调函数,返回监听的音频输入设备变化(返回数据为切换后的设备信息)。 | 8649e41f4b71Sopenharmony_ci 8650e41f4b71Sopenharmony_ci**错误码:** 8651e41f4b71Sopenharmony_ci 8652e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8653e41f4b71Sopenharmony_ci 8654e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8655e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8656e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8657e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8658e41f4b71Sopenharmony_ci 8659e41f4b71Sopenharmony_ci**示例:** 8660e41f4b71Sopenharmony_ci 8661e41f4b71Sopenharmony_ci```ts 8662e41f4b71Sopenharmony_ciaudioCapturer.on('inputDeviceChange', (deviceChangeInfo: audio.AudioDeviceDescriptors) => { 8663e41f4b71Sopenharmony_ci console.info(`inputDevice id: ${deviceChangeInfo[0].id}`); 8664e41f4b71Sopenharmony_ci console.info(`inputDevice deviceRole: ${deviceChangeInfo[0].deviceRole}`); 8665e41f4b71Sopenharmony_ci console.info(`inputDevice deviceType: ${deviceChangeInfo[0].deviceType}`); 8666e41f4b71Sopenharmony_ci}); 8667e41f4b71Sopenharmony_ci``` 8668e41f4b71Sopenharmony_ci### off('inputDeviceChange')<sup>11+</sup> 8669e41f4b71Sopenharmony_ci 8670e41f4b71Sopenharmony_cioff(type: 'inputDeviceChange', callback?: Callback\<AudioDeviceDescriptors>): void 8671e41f4b71Sopenharmony_ci 8672e41f4b71Sopenharmony_ci取消监听音频输入设备更改事件,使用callback方式返回结果。 8673e41f4b71Sopenharmony_ci 8674e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 8675e41f4b71Sopenharmony_ci 8676e41f4b71Sopenharmony_ci**参数:** 8677e41f4b71Sopenharmony_ci 8678e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8679e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- |:-----------------------------------------| 8680e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'inputDeviceChange'。 | 8681e41f4b71Sopenharmony_ci| callback | Callback\<[AudioDeviceDescriptors](#audiodevicedescriptors)> | 否 | 回调函数,返回监听的音频输入设备信息。 | 8682e41f4b71Sopenharmony_ci 8683e41f4b71Sopenharmony_ci**错误码:** 8684e41f4b71Sopenharmony_ci 8685e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8686e41f4b71Sopenharmony_ci 8687e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8688e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8689e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8690e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8691e41f4b71Sopenharmony_ci 8692e41f4b71Sopenharmony_ci**示例:** 8693e41f4b71Sopenharmony_ci 8694e41f4b71Sopenharmony_ci```ts 8695e41f4b71Sopenharmony_ci// 取消该事件的所有监听 8696e41f4b71Sopenharmony_ciaudioCapturer.off('inputDeviceChange'); 8697e41f4b71Sopenharmony_ci 8698e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 8699e41f4b71Sopenharmony_cilet inputDeviceChangeCallback = (deviceChangeInfo: audio.AudioDeviceDescriptors) => { 8700e41f4b71Sopenharmony_ci console.info(`inputDevice id: ${deviceChangeInfo[0].id}`); 8701e41f4b71Sopenharmony_ci console.info(`inputDevice deviceRole: ${deviceChangeInfo[0].deviceRole}`); 8702e41f4b71Sopenharmony_ci console.info(`inputDevice deviceType: ${deviceChangeInfo[0].deviceType}`); 8703e41f4b71Sopenharmony_ci}; 8704e41f4b71Sopenharmony_ci 8705e41f4b71Sopenharmony_ciaudioCapturer.on('inputDeviceChange', inputDeviceChangeCallback); 8706e41f4b71Sopenharmony_ci 8707e41f4b71Sopenharmony_ciaudioCapturer.off('inputDeviceChange', inputDeviceChangeCallback); 8708e41f4b71Sopenharmony_ci``` 8709e41f4b71Sopenharmony_ci 8710e41f4b71Sopenharmony_ci### on('audioCapturerChange')<sup>11+</sup> 8711e41f4b71Sopenharmony_ci 8712e41f4b71Sopenharmony_cion(type: 'audioCapturerChange', callback: Callback\<AudioCapturerChangeInfo>): void 8713e41f4b71Sopenharmony_ci 8714e41f4b71Sopenharmony_ci监听录音流配置变化事件(当音频录制流状态变化、设备变化时触发),使用callback方式返回结果。订阅内部是异步实现,是非精确回调,在录音流配置变化的同时注册回调,收到的返回结果存在变化可能性。 8715e41f4b71Sopenharmony_ci 8716e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8717e41f4b71Sopenharmony_ci 8718e41f4b71Sopenharmony_ci**参数:** 8719e41f4b71Sopenharmony_ci 8720e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8721e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 8722e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioCapturerChange'。 | 8723e41f4b71Sopenharmony_ci| callback | Callback\<[AudioCapturerChangeInfo](#audiocapturerchangeinfo9)> | 是 | 回调函数,录音流配置或状态变化时返回监听的录音流当前配置和状态信息。 | 8724e41f4b71Sopenharmony_ci 8725e41f4b71Sopenharmony_ci**错误码:** 8726e41f4b71Sopenharmony_ci 8727e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8728e41f4b71Sopenharmony_ci 8729e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8730e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8731e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8732e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8733e41f4b71Sopenharmony_ci 8734e41f4b71Sopenharmony_ci**示例:** 8735e41f4b71Sopenharmony_ci 8736e41f4b71Sopenharmony_ci```ts 8737e41f4b71Sopenharmony_ciaudioCapturer.on('audioCapturerChange', (capturerChangeInfo: audio.AudioCapturerChangeInfo) => { 8738e41f4b71Sopenharmony_ci console.info(`audioCapturerChange id: ${capturerChangeInfo[0].id}`); 8739e41f4b71Sopenharmony_ci console.info(`audioCapturerChange deviceRole: ${capturerChangeInfo[0].deviceRole}`); 8740e41f4b71Sopenharmony_ci console.info(`audioCapturerChange deviceType: ${capturerChangeInfo[0].deviceType}`); 8741e41f4b71Sopenharmony_ci}); 8742e41f4b71Sopenharmony_ci``` 8743e41f4b71Sopenharmony_ci 8744e41f4b71Sopenharmony_ci### off('audioCapturerChange')<sup>11+</sup> 8745e41f4b71Sopenharmony_ci 8746e41f4b71Sopenharmony_cioff(type: 'audioCapturerChange', callback?: Callback\<AudioCapturerChangeInfo>): void 8747e41f4b71Sopenharmony_ci 8748e41f4b71Sopenharmony_ci取消监听录音流配置变化事件,使用callback方式返回结果。 8749e41f4b71Sopenharmony_ci 8750e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8751e41f4b71Sopenharmony_ci 8752e41f4b71Sopenharmony_ci**参数:** 8753e41f4b71Sopenharmony_ci 8754e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8755e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 8756e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'audioCapturerChange'。 | 8757e41f4b71Sopenharmony_ci| callback | Callback\<[AudioCapturerChangeInfo](#audiocapturerchangeinfo9)> | 否 | 回调函数,返回取消监听的录音流配置或状态变化。 | 8758e41f4b71Sopenharmony_ci 8759e41f4b71Sopenharmony_ci**错误码:** 8760e41f4b71Sopenharmony_ci 8761e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8762e41f4b71Sopenharmony_ci 8763e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8764e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8765e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8766e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8767e41f4b71Sopenharmony_ci 8768e41f4b71Sopenharmony_ci**示例:** 8769e41f4b71Sopenharmony_ci 8770e41f4b71Sopenharmony_ci```ts 8771e41f4b71Sopenharmony_ci// 取消该事件的所有监听 8772e41f4b71Sopenharmony_ciaudioCapturer.off('audioCapturerChange'); 8773e41f4b71Sopenharmony_ci 8774e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 8775e41f4b71Sopenharmony_cilet audioCapturerChangeCallback = (capturerChangeInfo: audio.AudioCapturerChangeInfo) => { 8776e41f4b71Sopenharmony_ci console.info(`audioCapturerChange id: ${capturerChangeInfo[0].id}`); 8777e41f4b71Sopenharmony_ci console.info(`audioCapturerChange deviceRole: ${capturerChangeInfo[0].deviceRole}`); 8778e41f4b71Sopenharmony_ci console.info(`audioCapturerChange deviceType: ${capturerChangeInfo[0].deviceType}`); 8779e41f4b71Sopenharmony_ci}; 8780e41f4b71Sopenharmony_ci 8781e41f4b71Sopenharmony_ciaudioCapturer.on('audioCapturerChange', audioCapturerChangeCallback); 8782e41f4b71Sopenharmony_ci 8783e41f4b71Sopenharmony_ciaudioCapturer.off('audioCapturerChange', audioCapturerChangeCallback); 8784e41f4b71Sopenharmony_ci``` 8785e41f4b71Sopenharmony_ci 8786e41f4b71Sopenharmony_ci### on('markReach')<sup>8+</sup> 8787e41f4b71Sopenharmony_ci 8788e41f4b71Sopenharmony_cion(type: 'markReach', frame: number, callback: Callback<number>): void 8789e41f4b71Sopenharmony_ci 8790e41f4b71Sopenharmony_ci监听标记到达事件(当采集的帧数达到frame参数的值时触发,仅调用一次),使用callback方式返回结果。 8791e41f4b71Sopenharmony_ci 8792e41f4b71Sopenharmony_ci举例说明,如果frame设置为100,当采集帧数到达第100帧时,将上报信息。 8793e41f4b71Sopenharmony_ci 8794e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8795e41f4b71Sopenharmony_ci 8796e41f4b71Sopenharmony_ci**参数:** 8797e41f4b71Sopenharmony_ci 8798e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8799e41f4b71Sopenharmony_ci| :------- | :---------------------- | :--- | :----------------------------------------- | 8800e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'markReach'。 | 8801e41f4b71Sopenharmony_ci| frame | number | 是 | 触发事件的帧数。该值必须大于0。 | 8802e41f4b71Sopenharmony_ci| callback | Callback\<number> | 是 | 回调函数,返回frame参数的值。 | 8803e41f4b71Sopenharmony_ci 8804e41f4b71Sopenharmony_ci**示例:** 8805e41f4b71Sopenharmony_ci 8806e41f4b71Sopenharmony_ci```ts 8807e41f4b71Sopenharmony_ciaudioCapturer.on('markReach', 1000, (position: number) => { 8808e41f4b71Sopenharmony_ci if (position == 1000) { 8809e41f4b71Sopenharmony_ci console.info('ON Triggered successfully'); 8810e41f4b71Sopenharmony_ci } 8811e41f4b71Sopenharmony_ci}); 8812e41f4b71Sopenharmony_ci``` 8813e41f4b71Sopenharmony_ci 8814e41f4b71Sopenharmony_ci### off('markReach')<sup>8+</sup> 8815e41f4b71Sopenharmony_ci 8816e41f4b71Sopenharmony_cioff(type: 'markReach'): void 8817e41f4b71Sopenharmony_ci 8818e41f4b71Sopenharmony_ci取消监听标记到达事件。 8819e41f4b71Sopenharmony_ci 8820e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8821e41f4b71Sopenharmony_ci 8822e41f4b71Sopenharmony_ci**参数:** 8823e41f4b71Sopenharmony_ci 8824e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8825e41f4b71Sopenharmony_ci| :----- | :----- | :--- | :-------------------------------------------- | 8826e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'markReach'。 | 8827e41f4b71Sopenharmony_ci 8828e41f4b71Sopenharmony_ci**示例:** 8829e41f4b71Sopenharmony_ci 8830e41f4b71Sopenharmony_ci```ts 8831e41f4b71Sopenharmony_ciaudioCapturer.off('markReach'); 8832e41f4b71Sopenharmony_ci``` 8833e41f4b71Sopenharmony_ci 8834e41f4b71Sopenharmony_ci### on('periodReach')<sup>8+</sup> 8835e41f4b71Sopenharmony_ci 8836e41f4b71Sopenharmony_cion(type: 'periodReach', frame: number, callback: Callback<number>): void 8837e41f4b71Sopenharmony_ci 8838e41f4b71Sopenharmony_ci监听到达标记事件(当采集的帧数达到frame参数的值时触发,即按周期上报信息),使用callback方式返回结果。 8839e41f4b71Sopenharmony_ci 8840e41f4b71Sopenharmony_ci举例说明,如果frame设置为10,每当采集10帧数据时将上报信息,例如在第10帧、20帧、30帧,均会上报信息。 8841e41f4b71Sopenharmony_ci 8842e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8843e41f4b71Sopenharmony_ci 8844e41f4b71Sopenharmony_ci**参数:** 8845e41f4b71Sopenharmony_ci 8846e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8847e41f4b71Sopenharmony_ci| :------- | :----------------------- | :--- | :------------------------------------------ | 8848e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'periodReach'。 | 8849e41f4b71Sopenharmony_ci| frame | number | 是 | 触发事件的帧数。该值必须大于0。 | 8850e41f4b71Sopenharmony_ci| callback | Callback\<number> | 是 |回调函数,返回frame参数的值。 | 8851e41f4b71Sopenharmony_ci 8852e41f4b71Sopenharmony_ci**示例:** 8853e41f4b71Sopenharmony_ci 8854e41f4b71Sopenharmony_ci```ts 8855e41f4b71Sopenharmony_ciaudioCapturer.on('periodReach', 1000, (position: number) => { 8856e41f4b71Sopenharmony_ci if (position == 1000) { 8857e41f4b71Sopenharmony_ci console.info('ON Triggered successfully'); 8858e41f4b71Sopenharmony_ci } 8859e41f4b71Sopenharmony_ci}); 8860e41f4b71Sopenharmony_ci``` 8861e41f4b71Sopenharmony_ci 8862e41f4b71Sopenharmony_ci### off('periodReach')<sup>8+</sup> 8863e41f4b71Sopenharmony_ci 8864e41f4b71Sopenharmony_cioff(type: 'periodReach'): void 8865e41f4b71Sopenharmony_ci 8866e41f4b71Sopenharmony_ci取消监听标记到达事件。 8867e41f4b71Sopenharmony_ci 8868e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8869e41f4b71Sopenharmony_ci 8870e41f4b71Sopenharmony_ci**参数:** 8871e41f4b71Sopenharmony_ci 8872e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8873e41f4b71Sopenharmony_ci| :----- | :----- | :--- | :---------------------------------------------- | 8874e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'periodReach'。 | 8875e41f4b71Sopenharmony_ci 8876e41f4b71Sopenharmony_ci**示例:** 8877e41f4b71Sopenharmony_ci 8878e41f4b71Sopenharmony_ci```ts 8879e41f4b71Sopenharmony_ciaudioCapturer.off('periodReach'); 8880e41f4b71Sopenharmony_ci``` 8881e41f4b71Sopenharmony_ci 8882e41f4b71Sopenharmony_ci### on('stateChange')<sup>8+</sup> 8883e41f4b71Sopenharmony_ci 8884e41f4b71Sopenharmony_cion(type: 'stateChange', callback: Callback<AudioState\>): void 8885e41f4b71Sopenharmony_ci 8886e41f4b71Sopenharmony_ci监听状态变化事件(当AudioCapturer状态发生变化时触发),使用callback方式返回结果。 8887e41f4b71Sopenharmony_ci 8888e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8889e41f4b71Sopenharmony_ci 8890e41f4b71Sopenharmony_ci**参数:** 8891e41f4b71Sopenharmony_ci 8892e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8893e41f4b71Sopenharmony_ci| :------- | :------------------------- | :--- | :------------------------------------------ | 8894e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'stateChange'。 | 8895e41f4b71Sopenharmony_ci| callback | Callback\<[AudioState](#audiostate8)> | 是 | 回调函数,返回当前音频的状态。 | 8896e41f4b71Sopenharmony_ci 8897e41f4b71Sopenharmony_ci**示例:** 8898e41f4b71Sopenharmony_ci 8899e41f4b71Sopenharmony_ci```ts 8900e41f4b71Sopenharmony_ciaudioCapturer.on('stateChange', (state: audio.AudioState) => { 8901e41f4b71Sopenharmony_ci if (state == 1) { 8902e41f4b71Sopenharmony_ci console.info('audio capturer state is: STATE_PREPARED'); 8903e41f4b71Sopenharmony_ci } 8904e41f4b71Sopenharmony_ci if (state == 2) { 8905e41f4b71Sopenharmony_ci console.info('audio capturer state is: STATE_RUNNING'); 8906e41f4b71Sopenharmony_ci } 8907e41f4b71Sopenharmony_ci}); 8908e41f4b71Sopenharmony_ci``` 8909e41f4b71Sopenharmony_ci 8910e41f4b71Sopenharmony_ci### on('readData')<sup>11+</sup> 8911e41f4b71Sopenharmony_ci 8912e41f4b71Sopenharmony_cion(type: 'readData', callback: Callback\<ArrayBuffer>): void 8913e41f4b71Sopenharmony_ci 8914e41f4b71Sopenharmony_ci监听音频数据读入回调事件(当需要读取音频流数据时触发),使用callback方式返回结果。 8915e41f4b71Sopenharmony_ci 8916e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8917e41f4b71Sopenharmony_ci 8918e41f4b71Sopenharmony_ci**参数:** 8919e41f4b71Sopenharmony_ci 8920e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8921e41f4b71Sopenharmony_ci| :------- |:-----------------------| :--- |:--------------------------| 8922e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'readData'。 | 8923e41f4b71Sopenharmony_ci| callback | Callback\<ArrayBuffer> | 是 | 回调函数,返回读到的数据缓冲区。 | 8924e41f4b71Sopenharmony_ci 8925e41f4b71Sopenharmony_ci**错误码:** 8926e41f4b71Sopenharmony_ci 8927e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8928e41f4b71Sopenharmony_ci 8929e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8930e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8931e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8932e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8933e41f4b71Sopenharmony_ci 8934e41f4b71Sopenharmony_ci**示例:** 8935e41f4b71Sopenharmony_ci 8936e41f4b71Sopenharmony_ci```ts 8937e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8938e41f4b71Sopenharmony_ciimport { fileIo as fs } from '@kit.CoreFileKit'; 8939e41f4b71Sopenharmony_ci 8940e41f4b71Sopenharmony_ciclass Options { 8941e41f4b71Sopenharmony_ci offset?: number; 8942e41f4b71Sopenharmony_ci length?: number; 8943e41f4b71Sopenharmony_ci} 8944e41f4b71Sopenharmony_ci 8945e41f4b71Sopenharmony_cilet bufferSize: number = 0; 8946e41f4b71Sopenharmony_cilet path = getContext().cacheDir; 8947e41f4b71Sopenharmony_ci// 确保该沙箱路径下存在该资源 8948e41f4b71Sopenharmony_cilet filePath = path + '/StarWars10s-2C-48000-4SW.pcm'; 8949e41f4b71Sopenharmony_cilet file: fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE); 8950e41f4b71Sopenharmony_cilet readDataCallback = (buffer: ArrayBuffer) => { 8951e41f4b71Sopenharmony_ci let options: Options = { 8952e41f4b71Sopenharmony_ci offset: bufferSize, 8953e41f4b71Sopenharmony_ci length: buffer.byteLength 8954e41f4b71Sopenharmony_ci }; 8955e41f4b71Sopenharmony_ci fs.writeSync(file.fd, buffer, options); 8956e41f4b71Sopenharmony_ci bufferSize += buffer.byteLength; 8957e41f4b71Sopenharmony_ci} 8958e41f4b71Sopenharmony_ci 8959e41f4b71Sopenharmony_ciaudioCapturer.on('readData', readDataCallback); 8960e41f4b71Sopenharmony_ci 8961e41f4b71Sopenharmony_ciaudioCapturer.start((err: BusinessError) => { 8962e41f4b71Sopenharmony_ci if (err) { 8963e41f4b71Sopenharmony_ci console.error('Capturer start failed.'); 8964e41f4b71Sopenharmony_ci } else { 8965e41f4b71Sopenharmony_ci console.info('Capturer start success.'); 8966e41f4b71Sopenharmony_ci } 8967e41f4b71Sopenharmony_ci}); 8968e41f4b71Sopenharmony_ci``` 8969e41f4b71Sopenharmony_ci 8970e41f4b71Sopenharmony_ci### off('readData')<sup>11+</sup> 8971e41f4b71Sopenharmony_ci 8972e41f4b71Sopenharmony_cioff(type: 'readData', callback?: Callback\<ArrayBuffer>): void 8973e41f4b71Sopenharmony_ci 8974e41f4b71Sopenharmony_ci取消监听音频数据读入回调事件,使用callback方式返回结果。 8975e41f4b71Sopenharmony_ci 8976e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 8977e41f4b71Sopenharmony_ci 8978e41f4b71Sopenharmony_ci**参数:** 8979e41f4b71Sopenharmony_ci 8980e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8981e41f4b71Sopenharmony_ci| :------- |:-----------------------| :--- |:-------------------------------------------| 8982e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为:'readData'。 | 8983e41f4b71Sopenharmony_ci| callback | Callback\<ArrayBuffer> | 否 | 回调函数,返回读到的数据缓冲区。 | 8984e41f4b71Sopenharmony_ci 8985e41f4b71Sopenharmony_ci**错误码:** 8986e41f4b71Sopenharmony_ci 8987e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Audio错误码](errorcode-audio.md)。 8988e41f4b71Sopenharmony_ci 8989e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8990e41f4b71Sopenharmony_ci| ------- | --------------------------------------------| 8991e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | 8992e41f4b71Sopenharmony_ci| 6800101 | Parameter verification failed. | 8993e41f4b71Sopenharmony_ci 8994e41f4b71Sopenharmony_ci**示例:** 8995e41f4b71Sopenharmony_ci 8996e41f4b71Sopenharmony_ci```ts 8997e41f4b71Sopenharmony_ci// 取消该事件的所有监听 8998e41f4b71Sopenharmony_ciaudioCapturer.off('readData'); 8999e41f4b71Sopenharmony_ci 9000e41f4b71Sopenharmony_ci// 同一监听事件中,on方法和off方法传入callback参数一致,off方法取消对应on方法订阅的监听 9001e41f4b71Sopenharmony_cilet readDataCallback = (data: ArrayBuffer) => { 9002e41f4b71Sopenharmony_ci console.info(`read data: ${data}`); 9003e41f4b71Sopenharmony_ci}; 9004e41f4b71Sopenharmony_ci 9005e41f4b71Sopenharmony_ciaudioCapturer.on('readData', readDataCallback); 9006e41f4b71Sopenharmony_ci 9007e41f4b71Sopenharmony_ciaudioCapturer.off('readData', readDataCallback); 9008e41f4b71Sopenharmony_ci``` 9009e41f4b71Sopenharmony_ci 9010e41f4b71Sopenharmony_ci### getOverflowCount<sup>12+</sup> 9011e41f4b71Sopenharmony_ci 9012e41f4b71Sopenharmony_cigetOverflowCount(): Promise<number> 9013e41f4b71Sopenharmony_ci 9014e41f4b71Sopenharmony_ci获取当前录制音频流的过载音频帧数量。使用Promise异步回调。 9015e41f4b71Sopenharmony_ci 9016e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 9017e41f4b71Sopenharmony_ci 9018e41f4b71Sopenharmony_ci**返回值:** 9019e41f4b71Sopenharmony_ci 9020e41f4b71Sopenharmony_ci| 类型 | 说明 | 9021e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 9022e41f4b71Sopenharmony_ci| Promise<number>| Promise对象,返回音频流的过载音频帧数量。| 9023e41f4b71Sopenharmony_ci 9024e41f4b71Sopenharmony_ci**示例:** 9025e41f4b71Sopenharmony_ci 9026e41f4b71Sopenharmony_ci```ts 9027e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 9028e41f4b71Sopenharmony_ci 9029e41f4b71Sopenharmony_ciaudioCapturer.getOverflowCount().then((value: number) => { 9030e41f4b71Sopenharmony_ci console.info(`Get overflow count Success! ${value}`); 9031e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => { 9032e41f4b71Sopenharmony_ci console.error(`Get overflow count Fail: ${err}`); 9033e41f4b71Sopenharmony_ci}); 9034e41f4b71Sopenharmony_ci``` 9035e41f4b71Sopenharmony_ci 9036e41f4b71Sopenharmony_ci### getOverflowCountSync<sup>12+</sup> 9037e41f4b71Sopenharmony_ci 9038e41f4b71Sopenharmony_cigetOverflowCountSync(): number 9039e41f4b71Sopenharmony_ci 9040e41f4b71Sopenharmony_ci获取当前录制音频流的过载音频帧数量,同步返回数据。 9041e41f4b71Sopenharmony_ci 9042e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Capturer 9043e41f4b71Sopenharmony_ci 9044e41f4b71Sopenharmony_ci**返回值:** 9045e41f4b71Sopenharmony_ci 9046e41f4b71Sopenharmony_ci| 类型 | 说明 | 9047e41f4b71Sopenharmony_ci| ------------------- | ----------------------------- | 9048e41f4b71Sopenharmony_ci| number| 返回音频流的过载音频帧数量。| 9049e41f4b71Sopenharmony_ci 9050e41f4b71Sopenharmony_ci**示例:** 9051e41f4b71Sopenharmony_ci 9052e41f4b71Sopenharmony_ci```ts 9053e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 9054e41f4b71Sopenharmony_ci 9055e41f4b71Sopenharmony_citry { 9056e41f4b71Sopenharmony_ci let value: number = audioCapturer.getOverflowCountSync(); 9057e41f4b71Sopenharmony_ci console.info(`Get overflow count Success! ${value}`); 9058e41f4b71Sopenharmony_ci} catch (err) { 9059e41f4b71Sopenharmony_ci let error = err as BusinessError; 9060e41f4b71Sopenharmony_ci console.error(`Get overflow count Fail: ${error}`); 9061e41f4b71Sopenharmony_ci} 9062e41f4b71Sopenharmony_ci``` 9063e41f4b71Sopenharmony_ci 9064e41f4b71Sopenharmony_ci## ActiveDeviceType<sup>(deprecated)</sup> 9065e41f4b71Sopenharmony_ci 9066e41f4b71Sopenharmony_ci枚举,活跃设备类型。 9067e41f4b71Sopenharmony_ci 9068e41f4b71Sopenharmony_ci> **说明:** 9069e41f4b71Sopenharmony_ci> 9070e41f4b71Sopenharmony_ci> 从 API version 9 开始废弃,建议使用[CommunicationDeviceType](#communicationdevicetype9)替代。 9071e41f4b71Sopenharmony_ci 9072e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Device 9073e41f4b71Sopenharmony_ci 9074e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 9075e41f4b71Sopenharmony_ci| ------------- | ------ | ---------------------------------------------------- | 9076e41f4b71Sopenharmony_ci| SPEAKER | 2 | 扬声器。 | 9077e41f4b71Sopenharmony_ci| BLUETOOTH_SCO | 7 | 蓝牙设备SCO(Synchronous Connection Oriented)连接。 | 9078e41f4b71Sopenharmony_ci 9079e41f4b71Sopenharmony_ci## InterruptActionType<sup>(deprecated)</sup> 9080e41f4b71Sopenharmony_ci 9081e41f4b71Sopenharmony_ci枚举,中断事件返回类型。 9082e41f4b71Sopenharmony_ci 9083e41f4b71Sopenharmony_ci> **说明:** 9084e41f4b71Sopenharmony_ci> 9085e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。 9086e41f4b71Sopenharmony_ci 9087e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 9088e41f4b71Sopenharmony_ci 9089e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 9090e41f4b71Sopenharmony_ci| -------------- | ------ | ------------------ | 9091e41f4b71Sopenharmony_ci| TYPE_ACTIVATED | 0 | 表示触发焦点事件。 | 9092e41f4b71Sopenharmony_ci| TYPE_INTERRUPT | 1 | 表示音频打断事件。 | 9093e41f4b71Sopenharmony_ci 9094e41f4b71Sopenharmony_ci## AudioInterrupt<sup>(deprecated)</sup> 9095e41f4b71Sopenharmony_ci 9096e41f4b71Sopenharmony_ci音频监听事件传入的参数。 9097e41f4b71Sopenharmony_ci 9098e41f4b71Sopenharmony_ci> **说明:** 9099e41f4b71Sopenharmony_ci> 9100e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。无替代接口,与中断事件配套使用。 9101e41f4b71Sopenharmony_ci 9102e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 9103e41f4b71Sopenharmony_ci 9104e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 9105e41f4b71Sopenharmony_ci| --------------- | --------------------------- | ----| ------------------------------------------------------------ | 9106e41f4b71Sopenharmony_ci| streamUsage | [StreamUsage](#streamusage) | 是 | 音频流使用类型。 | 9107e41f4b71Sopenharmony_ci| contentType | [ContentType](#contenttypedeprecated) | 是 | 音频打断媒体类型。 | 9108e41f4b71Sopenharmony_ci| pauseWhenDucked | boolean | 是 | 音频打断时是否可以暂停音频播放(true表示音频播放可以在音频打断期间暂停,false表示相反)。 | 9109e41f4b71Sopenharmony_ci 9110e41f4b71Sopenharmony_ci## InterruptAction<sup>(deprecated)</sup> 9111e41f4b71Sopenharmony_ci 9112e41f4b71Sopenharmony_ci音频打断/获取焦点事件的回调方法。 9113e41f4b71Sopenharmony_ci 9114e41f4b71Sopenharmony_ci> **说明:** 9115e41f4b71Sopenharmony_ci> 9116e41f4b71Sopenharmony_ci> 从 API version 7 开始支持,从 API version 9 开始废弃。建议使用[InterruptEvent](#interruptevent9)替代。 9117e41f4b71Sopenharmony_ci 9118e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Audio.Renderer 9119e41f4b71Sopenharmony_ci 9120e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 9121e41f4b71Sopenharmony_ci| ---------- | ------------------------------------------- | ---- | ------------------------------------------------------------ | 9122e41f4b71Sopenharmony_ci| actionType | [InterruptActionType](#interruptactiontypedeprecated) | 是 | 事件返回类型。TYPE_ACTIVATED为焦点触发事件,TYPE_INTERRUPT为音频打断事件。 | 9123e41f4b71Sopenharmony_ci| type | [InterruptType](#interrupttype) | 否 | 打断事件类型。 | 9124e41f4b71Sopenharmony_ci| hint | [InterruptHint](#interrupthint) | 否 | 打断事件提示。 | 9125e41f4b71Sopenharmony_ci| activated | boolean | 否 | 获得/释放焦点。true表示焦点获取/释放成功,false表示焦点获得/释放失败。 | 9126