• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Functions
2<!--Kit: Audio Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @songshenke-->
5<!--Designer: @caixuejiang; @hao-liangfei; @zhanganxiang-->
6<!--Tester: @Filger-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12
13## 导入模块
14
15```ts
16import { audio } from '@kit.AudioKit';
17```
18
19## audio.getAudioManager
20
21getAudioManager(): AudioManager
22
23获取音频管理器。
24
25**系统能力:** SystemCapability.Multimedia.Audio.Core
26
27**返回值:**
28
29| 类型                          | 说明         |
30| ----------------------------- | ------------ |
31| [AudioManager](arkts-apis-audio-AudioManager.md) | 音频管理器对象。 |
32
33**示例:**
34```ts
35import { audio } from '@kit.AudioKit';
36
37let audioManager = audio.getAudioManager();
38```
39
40## audio.createAudioRenderer<sup>8+</sup>
41
42createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback\<AudioRenderer>): void
43
44获取音频渲染器。使用callback异步回调。
45
46**系统能力:** SystemCapability.Multimedia.Audio.Renderer
47
48**参数:**
49
50| 参数名   | 类型                                            | 必填 | 说明             |
51| -------- | ----------------------------------------------- | ---- | ---------------- |
52| options  | [AudioRendererOptions](arkts-apis-audio-i.md#audiorendereroptions8)  | 是   | 配置渲染器。     |
53| callback | AsyncCallback<[AudioRenderer](arkts-apis-audio-AudioRenderer.md)> | 是   | 回调函数。当获取音频渲染器成功,err为undefined,data为获取到的音频渲染器对象;否则为错误对象。 |
54
55**示例:**
56
57```ts
58import { audio } from '@kit.AudioKit';
59
60let audioStreamInfo: audio.AudioStreamInfo = {
61  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
62  channels: audio.AudioChannel.CHANNEL_2, // 通道。
63  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
64  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
65};
66
67let audioRendererInfo: audio.AudioRendererInfo = {
68  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
69  rendererFlags: 0 // 音频渲染器标志。
70};
71
72let audioRendererOptions: audio.AudioRendererOptions = {
73  streamInfo: audioStreamInfo,
74  rendererInfo: audioRendererInfo
75};
76
77let audioRenderer: audio.AudioRenderer;
78
79audio.createAudioRenderer(audioRendererOptions,(err, data) => {
80  if (err) {
81    console.error(`AudioRenderer Created: Error: ${err}`);
82  } else {
83    console.info('AudioRenderer Created: SUCCESS');
84    audioRenderer = data;
85  }
86});
87```
88
89## audio.createAudioRenderer<sup>8+</sup>
90
91createAudioRenderer(options: AudioRendererOptions): Promise<AudioRenderer\>
92
93获取音频渲染器。使用Promise异步回调。
94
95**系统能力:** SystemCapability.Multimedia.Audio.Renderer
96
97**参数:**
98
99| 参数名  | 类型                                           | 必填 | 说明         |
100| :------ | :--------------------------------------------- | :--- | :----------- |
101| options | [AudioRendererOptions](arkts-apis-audio-i.md#audiorendereroptions8) | 是   | 配置渲染器。 |
102
103**返回值:**
104
105| 类型                                      | 说明             |
106| ----------------------------------------- | ---------------- |
107| Promise<[AudioRenderer](arkts-apis-audio-AudioRenderer.md)> | Promise对象,返回音频渲染器对象。 |
108
109**示例:**
110
111```ts
112import { audio } from '@kit.AudioKit';
113import { BusinessError } from '@kit.BasicServicesKit';
114
115let audioStreamInfo: audio.AudioStreamInfo = {
116  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
117  channels: audio.AudioChannel.CHANNEL_2, // 通道。
118  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
119  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
120};
121
122let audioRendererInfo: audio.AudioRendererInfo = {
123  usage: audio.StreamUsage.STREAM_USAGE_MUSIC, // 音频流使用类型:音乐。根据业务场景配置,参考StreamUsage。
124  rendererFlags: 0 // 音频渲染器标志。
125};
126
127let audioRendererOptions: audio.AudioRendererOptions = {
128  streamInfo: audioStreamInfo,
129  rendererInfo: audioRendererInfo
130};
131
132let audioRenderer: audio.AudioRenderer;
133
134audio.createAudioRenderer(audioRendererOptions).then((data) => {
135  audioRenderer = data;
136  console.info('AudioFrameworkRenderLog: AudioRenderer Created : SUCCESS');
137}).catch((err: BusinessError) => {
138  console.error(`AudioFrameworkRenderLog: AudioRenderer Created : ERROR : ${err}`);
139});
140```
141
142## audio.createAudioCapturer<sup>8+</sup>
143
144createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback<AudioCapturer\>): void
145
146获取音频采集器。使用callback异步回调。
147
148**系统能力:** SystemCapability.Multimedia.Audio.Capturer
149
150**需要权限:** ohos.permission.MICROPHONE
151
152当设置Mic音频源(即[SourceType](arkts-apis-audio-e.md#sourcetype8)为SOURCE_TYPE_MIC、SOURCE_TYPE_VOICE_RECOGNITION、SOURCE_TYPE_VOICE_COMMUNICATION、SOURCE_TYPE_VOICE_MESSAGE、SOURCE_TYPE_CAMCORDER)时需要该权限。
153
154**参数:**
155
156| 参数名   | 类型                                            | 必填 | 说明             |
157| :------- | :---------------------------------------------- | :--- | :--------------- |
158| options  | [AudioCapturerOptions](arkts-apis-audio-i.md#audiocaptureroptions8)  | 是   | 配置音频采集器。 |
159| callback | AsyncCallback<[AudioCapturer](arkts-apis-audio-AudioCapturer.md)> | 是   | 回调函数。当获取音频采集器成功,err为undefined,data为获取到的音频采集器对象;否则为错误对象。异常将返回error对象:<br>错误码6800301:表示参数校验异常、权限校验异常或系统处理异常(具体错误查看系统日志)。<br>错误码6800101:表示必选参数为空或参数类型错误。 |
160
161**示例:**
162
163```ts
164import { audio } from '@kit.AudioKit';
165
166let audioStreamInfo: audio.AudioStreamInfo = {
167  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
168  channels: audio.AudioChannel.CHANNEL_2, // 通道。
169  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
170  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
171};
172
173let audioCapturerInfo: audio.AudioCapturerInfo = {
174  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
175  capturerFlags: 0 // 音频采集器标志。
176};
177
178let audioCapturerOptions: audio.AudioCapturerOptions = {
179  streamInfo: audioStreamInfo,
180  capturerInfo: audioCapturerInfo
181};
182
183let audioCapturer: audio.AudioCapturer;
184
185audio.createAudioCapturer(audioCapturerOptions, (err, data) => {
186  if (err) {
187    console.error(`AudioCapturer Created : Error: ${err}`);
188  } else {
189    console.info('AudioCapturer Created : SUCCESS');
190    audioCapturer = data;
191  }
192});
193```
194
195## audio.createAudioCapturer<sup>8+</sup>
196
197createAudioCapturer(options: AudioCapturerOptions): Promise<AudioCapturer\>
198
199获取音频采集器。使用Promise异步回调。
200
201**系统能力:** SystemCapability.Multimedia.Audio.Capturer
202
203**需要权限:** ohos.permission.MICROPHONE
204
205当设置Mic音频源(即[SourceType](arkts-apis-audio-e.md#sourcetype8)为SOURCE_TYPE_MIC、SOURCE_TYPE_VOICE_RECOGNITION、SOURCE_TYPE_VOICE_COMMUNICATION、SOURCE_TYPE_VOICE_MESSAGE、SOURCE_TYPE_CAMCORDER)时需要该权限。
206
207**参数:**
208
209| 参数名  | 类型                                           | 必填 | 说明             |
210| :------ | :--------------------------------------------- | :--- | :--------------- |
211| options | [AudioCapturerOptions](arkts-apis-audio-i.md#audiocaptureroptions8) | 是   | 配置音频采集器。 |
212
213**返回值:**
214
215| 类型                                      | 说明                   |
216| ----------------------------------------- |----------------------|
217| Promise<[AudioCapturer](arkts-apis-audio-AudioCapturer.md)> | Promise对象,成功将返回音频采集器对象,异常将返回error对象:<br>错误码6800301:表示参数校验异常、权限校验异常或系统处理异常(具体错误查看系统日志)。<br>错误码6800101:表示必选参数为空或参数类型错误。 |
218
219**示例:**
220
221```ts
222import { audio } from '@kit.AudioKit';
223import { BusinessError } from '@kit.BasicServicesKit';
224
225let audioStreamInfo: audio.AudioStreamInfo = {
226  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_48000, // 采样率。
227  channels: audio.AudioChannel.CHANNEL_2, // 通道。
228  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE, // 采样格式。
229  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW // 编码格式。
230};
231
232let audioCapturerInfo: audio.AudioCapturerInfo = {
233  source: audio.SourceType.SOURCE_TYPE_MIC, // 音源类型:Mic音频源。根据业务场景配置,参考SourceType。
234  capturerFlags: 0 // 音频采集器标志。
235};
236
237let audioCapturerOptions:audio.AudioCapturerOptions = {
238  streamInfo: audioStreamInfo,
239  capturerInfo: audioCapturerInfo
240};
241
242let audioCapturer: audio.AudioCapturer;
243
244audio.createAudioCapturer(audioCapturerOptions).then((data) => {
245  audioCapturer = data;
246  console.info('AudioCapturer Created : SUCCESS');
247}).catch((err: BusinessError) => {
248  console.error(`AudioCapturer Created : ERROR : ${err}`);
249});
250```
251
252## audio.createAudioLoopback<sup>20+</sup>
253
254createAudioLoopback(mode: AudioLoopbackMode): Promise<AudioLoopback\>
255
256创建音频返听器。使用Promise异步回调。
257
258在使用createAudioLoopback接口之前,需先通过[isAudioLoopbackSupported](arkts-apis-audio-AudioStreamManager.md#isaudioloopbacksupported20)查询系统返听能力。
259
260
261**系统能力:** SystemCapability.Multimedia.Audio.Capturer
262
263**需要权限:** ohos.permission.MICROPHONE
264
265**参数:**
266
267| 参数名  | 类型                                           | 必填 | 说明             |
268| :------ | :--------------------------------------------- | :--- | :--------------- |
269| mode | [AudioLoopbackMode](arkts-apis-audio-e.md#audioloopbackmode20) | 是   | 音频返听模式。 |
270
271**返回值:**
272
273| 类型                                      | 说明                   |
274| ----------------------------------------- |----------------------|
275| Promise<[AudioLoopback](arkts-apis-audio-AudioLoopback.md)> | Promise对象,成功将返回音频返听器对象,异常将返回error对象。 |
276
277**错误码:**
278
279以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Audio错误码](errorcode-audio.md)。
280
281| 错误码ID | 错误信息 |
282| ------- | -------------------------------|
283|     201 | Permission denied.             |
284|     801 | Unsupported API.               |
285| 6800101 | Parameter verification failed. |
286| 6800104 | Loopback mode is unsupported.  |
287
288**示例:**
289
290```ts
291import { audio } from '@kit.AudioKit';
292import { BusinessError } from '@kit.BasicServicesKit';
293
294let audioLoopback: audio.AudioLoopback;
295
296audio.createAudioLoopback(audio.AudioLoopbackMode.HARDWARE).then((data) => {
297  audioLoopback = data;
298  console.info('AudioLoopback Created : SUCCESS');
299}).catch((err: BusinessError) => {
300  console.error(`AudioLoopback Created : ERROR : ${err}`);
301});
302```
303