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&lt;void&gt;): 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&lt;void&gt; | 是   | 回调函数。当音频参数设置成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;string&gt;): 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&lt;string&gt; | 是   | 回调函数。当获取指定音频参数值成功,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&lt;string&gt;
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&lt;string&gt; | 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&lt;void&gt;): 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&lt;void&gt;           | 是   | 回调函数。当设置指定流的音量成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的最小音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的最大音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;void&gt;): 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&lt;void&gt;           | 是   | 回调函数。当设置指定音量流静音成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt;        | 是   | 回调函数。当获取指定音量流是否被静音成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt;        | 是   | 回调函数。当获取指定音量流是否为活跃状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;void&gt;): 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&lt;void&gt;       | 是   | 回调函数。当设置铃声模式成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;AudioRingMode&gt;): 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&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调函数。当获取铃声模式成功,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&lt;AudioRingMode&gt;
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&lt;[AudioRingMode](#audioringmode)&gt; | 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&lt;AudioDeviceDescriptors&gt;): 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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调函数。当获取音频设备列表成功,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&lt;AudioDeviceDescriptors&gt;
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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 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&lt;void&gt;): 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&lt;void&gt;             | 是   | 回调函数。当设置设备激活状态成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt;          | 是   | 回调函数。当获取指定设备的激活状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;void&gt;): 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&lt;void&gt; | 是   | 回调函数。当设置麦克风静音状态成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt; | 是   | 回调函数。当获取麦克风静音状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;[AudioVolumeGroupManager](#audiovolumegroupmanager9)&gt; | 是   | 回调函数。当获取音频组管理器成功,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&lt; [AudioVolumeGroupManager](#audiovolumegroupmanager9) &gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的最小音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;): 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&lt;number&gt;         | 是   | 回调函数。当获取指定流的最大音量成功,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&lt;number&gt;
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&lt;number&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt;        | 是   | 回调函数。当获取指定音量流是否被静音成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;AudioRingMode&gt;): 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&lt;[AudioRingMode](#audioringmode)&gt; | 是   | 回调函数。当获取铃声模式成功,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&lt;AudioRingMode&gt;
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&lt;[AudioRingMode](#audioringmode)&gt; | 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&lt;void&gt;): 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&lt;void&gt; | 是   | 回调函数。当设置麦克风静音状态成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt; | 是   | 回调函数。当获取麦克风静音状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;MicStateChangeEvent&gt;): 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&lt;number&gt;): 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&lt;number&gt;           | 是   | 回调函数。当获取音量增益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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;
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&lt;number&gt; | 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&lt;number&gt;
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&lt;number&gt; | 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&lt;AudioRendererChangeInfoArray&gt;): 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&lt;AudioRendererChangeInfoArray&gt;
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&lt;AudioCapturerChangeInfoArray&gt;): 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&lt;AudioCapturerChangeInfoArray&gt;
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&lt;AudioRendererChangeInfoArray&gt;): 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&lt;AudioCapturerChangeInfoArray&gt;): 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&lt;boolean&gt;): 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&lt;boolean&gt;        | 是   | 回调函数。当获取指定音频流是否为活跃状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;AudioEffectInfoArray&gt;): 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&lt;AudioEffectInfoArray&gt;
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&lt;AudioDeviceDescriptors&gt;): 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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 是   | 回调函数。当获取音频设备列表成功,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&lt;AudioDeviceDescriptors&gt;
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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt; | 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&lt;void&gt;): 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&lt;void&gt;             | 是   | 回调函数。当设置通信设备激活状态成功,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&lt;void&gt;
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&lt;void&gt; | 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&lt;boolean&gt;): 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&lt;boolean&gt;                         | 是   | 回调函数。当获取指定通信设备的激活状态成功,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&lt;boolean&gt;
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&lt;boolean&gt; | 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&lt;AudioDeviceDescriptors&gt;): 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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;  | 是   | 回调函数。当获取优先级最高的输出设备成功,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&lt;AudioDeviceDescriptors&gt;
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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;   | 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&lt;AudioDeviceDescriptors&gt;): 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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;  | 是   | 回调函数。当获取优先级最高的输入设备成功,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&lt;AudioDeviceDescriptors&gt;
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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;   | 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&lt;number&gt;        | 是   | 否   | 支持的采样率。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device|
5319e41f4b71Sopenharmony_ci| channelCounts<sup>9+</sup>    | Array&lt;number&gt;        | 是   | 否   | 支持的通道数。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device|
5320e41f4b71Sopenharmony_ci| channelMasks<sup>9+</sup>     | Array&lt;number&gt;        | 是   | 否   | 支持的通道掩码。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device|
5321e41f4b71Sopenharmony_ci| displayName<sup>10+</sup>     | string                     | 是   | 否   | 设备显示名。 <br> **系统能力:** SystemCapability.Multimedia.Audio.Device|
5322e41f4b71Sopenharmony_ci| encodingTypes<sup>11+</sup>    | Array&lt;[AudioEncodingType](#audioencodingtype8)&gt;                     | 是   | 否   | 支持的编码类型。 <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&lt;void&gt;
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&lt;void&gt; | 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&lt;void&gt;
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&lt;void&gt; | 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&lt;number&gt;): 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&lt;number&gt; | 是     |回调函数。当获取应用基于音频流的最小音量成功,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&lt;number&gt;
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&lt;number&gt;| 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&lt;number&gt;): 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&lt;number&gt; | 是     |回调函数。当获取应用基于音频流的最大音量成功,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&lt;number&gt;
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&lt;number&gt;| 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&lt;number&gt;): 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&lt;number&gt; | 是     |回调函数。当获取当前播放音频流的欠载音频帧数量成功,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&lt;number&gt;
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&lt;number&gt;| 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&lt;AudioDeviceDescriptors&gt;): 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&lt;AudioDeviceDescriptors&gt;
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&lt;[AudioDeviceDescriptors](#audiodevicedescriptors)&gt;| 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&lt;void&gt;
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&lt;void&gt; | 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&lt;number&gt;): 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&lt;number&gt;): 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&lt;number&gt;): 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&lt;number&gt;): 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&lt;number&gt;
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&lt;number&gt;| 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