• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# IAudioCapture
2
3
4## 概述
5
6音频接口的包路径。
7
8AudioCapture音频录音接口。
9
10提供音频录音支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、录制音频帧数据等。
11
12**起始版本:** 4.1
13
14**起始版本:** 4.1
15
16**相关模块:**[HdiAudio](_hdi_audio_v20.md)
17
18
19## 汇总
20
21
22### Public 成员函数
23
24| 名称 | 描述 |
25| -------- | -------- |
26| [CaptureFrame](#captureframe) ([out] byte[] frame, [out] unsigned long replyBytes) | 从音频驱动中录制一帧输入数据(录音,音频上行数据)。  |
27| [GetCapturePosition](#getcaptureposition) ([out] unsigned long frames, [out] struct [AudioTimeStamp](_audio_time_stamp_v20.md) time) | Obtains the last number of input audio frames.  |
28| [CheckSceneCapability](#checkscenecapability) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v20.md) scene, [out] boolean supported) | 判断某个音频场景能力是否支持。  |
29| [SelectScene](#selectscene) ([in] struct [AudioSceneDescriptor](_audio_scene_descriptor_v20.md) scene) | 选择音频场景。  |
30| [SetMute](#setmute) ([in] boolean mute) | 设置音频的静音状态。  |
31| [GetMute](#getmute) ([out] boolean mute) | 获取音频的静音状态。  |
32| [SetVolume](#setvolume) ([in] float volume) | 设置一个音频流的音量。  |
33| [GetVolume](#getvolume) ([out] float volume) | 获取一个音频流的音量。  |
34| [GetGainThreshold](#getgainthreshold) ([out] float min, [out] float max) | 获取音频流增益的阈值。  |
35| [GetGain](#getgain) ([out] float gain) | 获取音频流的增益。  |
36| [SetGain](#setgain) ([in] float gain) | 设置音频流的增益。  |
37| [GetFrameSize](#getframesize) ([out] unsigned long size) | 获取一帧音频数据的长度(字节数)大小。  |
38| [GetFrameCount](#getframecount) ([out] unsigned long count) | 获取音频buffer中的音频帧数。  |
39| [SetSampleAttributes](#setsampleattributes) ([in] struct [AudioSampleAttributes](_audio_sample_attributes_v20.md) attrs) | 设置音频采样的属性参数。  |
40| [GetSampleAttributes](#getsampleattributes) ([out] struct [AudioSampleAttributes](_audio_sample_attributes_v20.md) attrs) | 获取音频采样的属性参数。  |
41| [GetCurrentChannelId](#getcurrentchannelid) ([out] unsigned int channelId) | 获取音频的数据通道ID。  |
42| [SetExtraParams](#setextraparams) ([in] String keyValueList) | 设置音频拓展参数。  |
43| [GetExtraParams](#getextraparams) ([out] String keyValueList) | 获取音频拓展参数。  |
44| [ReqMmapBuffer](#reqmmapbuffer) ([in] int reqSize, [out] struct AudioMmapBufferDescriptor desc) | 请求mmap缓冲区。  |
45| [GetMmapPosition](#getmmapposition) ([out] unsigned long frames, [out] struct [AudioTimeStamp](_audio_time_stamp_v20.md) time) | 获取当前mmap的读/写位置。  |
46| [AddAudioEffect](#addaudioeffect) ([in] unsigned long effectid) | 添加音频效果。  |
47| [RemoveAudioEffect](#removeaudioeffect) ([in] unsigned long effectid) | 移除音频效果。  |
48| [GetFrameBufferSize](#getframebuffersize) ([out] unsigned long bufferSize) | 获取缓冲区大小。  |
49| [Start](#start) () | 启动一个音频播放或录音处理。  |
50| [Stop](#stop) () | 停止一个音频播放或录音处理。  |
51| [Pause](#pause) () | 暂停一个音频播放或录音处理。  |
52| [Resume](#resume) () | 恢复一个音频播放或录音处理。  |
53| [Flush](#flush) () | 刷新音频缓冲区buffer中的数据。  |
54| [TurnStandbyMode](#turnstandbymode) () | 设置或去设置设备的待机模式。  |
55| [AudioDevDump](#audiodevdump) ([in] int range, [in] int fd) | 保存音频设备信息。  |
56| [IsSupportsPauseAndResume](#issupportspauseandresume) ([out] boolean supportPause, [out] boolean supportResume) | 判断声卡是否支持音频录制的暂停和恢复功能。  |
57
58
59## 成员函数说明
60
61
62### AddAudioEffect()
63
64```
65IAudioCapture::AddAudioEffect ([in] unsigned long effectid)
66```
67**描述**
68添加音频效果。
69
70**起始版本:** 4.1
71
72**参数:**
73
74| 名称 | 描述 |
75| -------- | -------- |
76| effectid | 添加的音频效果实例标识符。 |
77
78**返回:**
79
80成功返回值0,失败返回负值。
81
82
83### AudioDevDump()
84
85```
86IAudioCapture::AudioDevDump ([in] int range, [in] int fd )
87```
88**描述**
89保存音频设备信息。
90
91**起始版本:** 4.1
92
93**参数:**
94
95| 名称 | 描述 |
96| -------- | -------- |
97| range | 需要保存的信息范围(3 ~ 5),分为简要信息(3)、一般信息(4)、全量信息(5)。  |
98| fd | 保存到指定的目标文件。 |
99
100**返回:**
101
102成功返回值0,失败返回负值。
103
104
105### CaptureFrame()
106
107```
108IAudioCapture::CaptureFrame ([out] byte[] frame, [out] unsigned long replyBytes )
109```
110**描述**
111从音频驱动中录制一帧输入数据(录音,音频上行数据)。
112
113**起始版本:** 4.1
114
115**参数:**
116
117| 名称 | 描述 |
118| -------- | -------- |
119| capture | 调用当前函数的IAudioCapture指针对象  |
120| frame | 待存放输入数据的音频frame。  |
121| requestBytes | 待存放输入数据的音频frame大小(字节数)。  |
122| replyBytes | 指向要读取的音频数据的实际长度(以字节为单位)的指针。  |
123
124**返回:**
125
126成功返回值0,失败返回负值。
127
128
129### CheckSceneCapability()
130
131```
132IAudioCapture::CheckSceneCapability ([in] struct AudioSceneDescriptor scene, [out] boolean supported )
133```
134**描述**
135判断某个音频场景能力是否支持。
136
137**起始版本:** 4.1
138
139**参数:**
140
141| 名称 | 描述 |
142| -------- | -------- |
143| scene | 待判断的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v20.md)。  |
144| supported | 是否支持的状态保存到supported中,true表示支持,false表示不支持。 |
145
146**返回:**
147
148成功返回值0,失败返回负值。
149
150**参见:**
151
152[SelectScene](#selectscene)
153
154
155### Flush()
156
157```
158IAudioCapture::Flush ()
159```
160**描述**
161刷新音频缓冲区buffer中的数据。
162
163**起始版本:** 4.1
164
165**返回:**
166
167成功返回值0,失败返回负值。
168
169
170### GetCapturePosition()
171
172```
173IAudioCapture::GetCapturePosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
174```
175**描述**
176Obtains the last number of input audio frames.
177
178**起始版本:** 4.1
179
180**参数:**
181
182| 名称 | 描述 |
183| -------- | -------- |
184| capture | 调用当前函数的IAudioCapture指针对象  |
185| frames | 获取的音频帧数保存到frames中。  |
186| time | 获取的关联时间戳保存到time中,详请参考[AudioTimeStamp](_audio_time_stamp_v20.md)。  |
187
188**返回:**
189
190成功返回值0,失败返回负值。
191
192**参见:**
193
194[CaptureFrame](#captureframe)
195
196
197### GetCurrentChannelId()
198
199```
200IAudioCapture::GetCurrentChannelId ([out] unsigned int channelId)
201```
202**描述**
203获取音频的数据通道ID。
204
205**起始版本:** 4.1
206
207**参数:**
208
209| 名称 | 描述 |
210| -------- | -------- |
211| channelId | 获取的通道ID保存到channelId中。 |
212
213**返回:**
214
215成功返回值0,失败返回负值。
216
217
218### GetExtraParams()
219
220```
221IAudioCapture::GetExtraParams ([out] String keyValueList)
222```
223**描述**
224获取音频拓展参数。
225
226**起始版本:** 4.1
227
228**参数:**
229
230| 名称 | 描述 |
231| -------- | -------- |
232| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
233
234**返回:**
235
236成功返回值0,失败返回负值。
237
238
239### GetFrameBufferSize()
240
241```
242IAudioCapture::GetFrameBufferSize ([out] unsigned long bufferSize)
243```
244**描述**
245获取缓冲区大小。
246
247**起始版本:** 4.1
248
249**参数:**
250
251| 名称 | 描述 |
252| -------- | -------- |
253| bufferSize | 获取的缓冲区大小保存在bufferSize中,单位为字节。 |
254
255**返回:**
256
257成功返回值0,失败返回负值。
258
259
260### GetFrameCount()
261
262```
263IAudioCapture::GetFrameCount ([out] unsigned long count)
264```
265**描述**
266获取音频buffer中的音频帧数。
267
268**起始版本:** 4.1
269
270**参数:**
271
272| 名称 | 描述 |
273| -------- | -------- |
274| count | 一个音频buffer中包含的音频帧数,获取后保存到count中。 |
275
276**返回:**
277
278成功返回值0,失败返回负值。
279
280
281### GetFrameSize()
282
283```
284IAudioCapture::GetFrameSize ([out] unsigned long size)
285```
286**描述**
287获取一帧音频数据的长度(字节数)大小。
288
289**起始版本:** 4.1
290
291**参数:**
292
293| 名称 | 描述 |
294| -------- | -------- |
295| size | 获取的音频帧大小(字节数)保存到size中。 |
296
297**返回:**
298
299成功返回值0,失败返回负值。
300
301
302### GetGain()
303
304```
305IAudioCapture::GetGain ([out] float gain)
306```
307**描述**
308获取音频流的增益。
309
310**起始版本:** 4.1
311
312**参数:**
313
314| 名称 | 描述 |
315| -------- | -------- |
316| gain | 保存当前获取到的增益到gain中。 |
317
318**返回:**
319
320成功返回值0,失败返回负值。
321
322**参见:**
323
324[GetGainThreshold](#getgainthreshold)
325
326[SetGain](#setgain)
327
328
329### GetGainThreshold()
330
331```
332IAudioCapture::GetGainThreshold ([out] float min, [out] float max )
333```
334**描述**
335获取音频流增益的阈值。
336
337在具体的功能实现中,可以根据芯片平台的实际情况来进行处理:
338
339- 可以使用实际的增益值,例如增益的范围为-50db ~ 6db。
340
341- 也可以将增益范围设定为0.0~1.0,如果增益的范围为-50db ~ 6db, 则增益的映射关系为0.0表示静音(-50db),1.0表示最大增益(6db)。
342
343**起始版本:** 4.1
344
345**参数:**
346
347| 名称 | 描述 |
348| -------- | -------- |
349| min | 获取的音频增益的阈值下限保存到min中。  |
350| max | 获取的音频增益的阈值上限保存到max中。 |
351
352**返回:**
353
354成功返回值0,失败返回负值。
355
356**参见:**
357
358[GetGain](#getgain)
359
360[SetGain](#setgain)
361
362
363### GetMmapPosition()
364
365```
366IAudioCapture::GetMmapPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
367```
368**描述**
369获取当前mmap的读/写位置。
370
371**起始版本:** 4.1
372
373**参数:**
374
375| 名称 | 描述 |
376| -------- | -------- |
377| frames | 获取的音频帧计数保存到frames中。  |
378| time | 获取的关联时间戳保存到time中,详请参考[AudioTimeStamp](_audio_time_stamp_v20.md)。 |
379
380**返回:**
381
382成功返回值0,失败返回负值。
383
384
385### GetMute()
386
387```
388IAudioCapture::GetMute ([out] boolean mute)
389```
390**描述**
391获取音频的静音状态。
392
393**起始版本:** 4.1
394
395**参数:**
396
397| 名称 | 描述 |
398| -------- | -------- |
399| mute | 获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作。 |
400
401**返回:**
402
403成功返回值0,失败返回负值。
404
405**参见:**
406
407[SetMute](#setmute)
408
409
410### GetSampleAttributes()
411
412```
413IAudioCapture::GetSampleAttributes ([out] struct AudioSampleAttributes attrs)
414```
415**描述**
416获取音频采样的属性参数。
417
418**起始版本:** 4.1
419
420**参数:**
421
422| 名称 | 描述 |
423| -------- | -------- |
424| attrs | 获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中,详请参考[AudioSampleAttributes](_audio_sample_attributes_v20.md)。 |
425
426**返回:**
427
428成功返回值0,失败返回负值。
429
430**参见:**
431
432[SetSampleAttributes](#setsampleattributes)
433
434
435### GetVolume()
436
437```
438IAudioCapture::GetVolume ([out] float volume)
439```
440**描述**
441获取一个音频流的音量。
442
443**起始版本:** 4.1
444
445**参数:**
446
447| 名称 | 描述 |
448| -------- | -------- |
449| volume | 获取的音量保存到volume中,范围0.0~1.0。 |
450
451**返回:**
452
453成功返回值0,失败返回负值。
454
455**参见:**
456
457[SetVolume](#setvolume)
458
459
460### IsSupportsPauseAndResume()
461
462```
463IAudioCapture::IsSupportsPauseAndResume ([out] boolean supportPause, [out] boolean supportResume )
464```
465**描述**
466判断声卡是否支持音频录制的暂停和恢复功能。
467
468**起始版本:** 4.1
469
470**参数:**
471
472| 名称 | 描述 |
473| -------- | -------- |
474| supportPause | 是否支持暂停功能的状态保存到supportPause中,true表示支持,false表示不支持。  |
475| supportResume | 是否支持恢复功能的状态保存到supportResume中,true表示支持,false表示不支持。 |
476
477**返回:**
478
479成功返回值0,失败返回负值。
480
481
482### Pause()
483
484```
485IAudioCapture::Pause ()
486```
487**描述**
488暂停一个音频播放或录音处理。
489
490**起始版本:** 4.1
491
492**返回:**
493
494成功返回值0,失败返回负值。
495
496**参见:**
497
498[Resume](#resume)
499
500
501### RemoveAudioEffect()
502
503```
504IAudioCapture::RemoveAudioEffect ([in] unsigned long effectid)
505```
506**描述**
507移除音频效果。
508
509**起始版本:** 4.1
510
511**参数:**
512
513| 名称 | 描述 |
514| -------- | -------- |
515| effectid | 移除的音频效果实例标识符。 |
516
517**返回:**
518
519成功返回值0,失败返回负值。
520
521
522### ReqMmapBuffer()
523
524```
525IAudioCapture::ReqMmapBuffer ([in] int reqSize, [out] struct AudioMmapBufferDescriptor desc )
526```
527**描述**
528请求mmap缓冲区。
529
530**起始版本:** 4.1
531
532**参数:**
533
534| 名称 | 描述 |
535| -------- | -------- |
536| reqSize | 请求缓冲区的大小,单位:字节。  |
537| desc | 缓冲区描述符,详请参考[AudioMmapBufferDescripter](_audio_mmap_buffer_descripter_v20.md)。 |
538
539**返回:**
540
541成功返回值0,失败返回负值。
542
543
544### Resume()
545
546```
547IAudioCapture::Resume ()
548```
549**描述**
550恢复一个音频播放或录音处理。
551
552**起始版本:** 4.1
553
554**返回:**
555
556成功返回值0,失败返回负值。
557
558**参见:**
559
560[Pause](#pause)
561
562
563### SelectScene()
564
565```
566IAudioCapture::SelectScene ([in] struct AudioSceneDescriptor scene)
567```
568**描述**
569选择音频场景。
570
571- 选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备。
572  - 在媒体播放场景中,scene为media_speaker。
573  - 在语音通话免提场景中,scene为voice_speaker。
574
575- 只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game)。
576
577- 只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset)。
578
579**起始版本:** 4.1
580
581**参数:**
582
583| 名称 | 描述 |
584| -------- | -------- |
585| scene | 待设置的音频场景描述符,详请参考[AudioSceneDescriptor](_audio_scene_descriptor_v20.md)。 |
586
587**返回:**
588
589成功返回值0,失败返回负值。
590
591**参见:**
592
593[CheckSceneCapability](#checkscenecapability)
594
595
596### SetExtraParams()
597
598```
599IAudioCapture::SetExtraParams ([in] String keyValueList)
600```
601**描述**
602设置音频拓展参数。
603
604**起始版本:** 4.1
605
606**参数:**
607
608| 名称 | 描述 |
609| -------- | -------- |
610| keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
611
612**返回:**
613
614成功返回值0,失败返回负值。
615
616
617### SetGain()
618
619```
620IAudioCapture::SetGain ([in] float gain)
621```
622**描述**
623设置音频流的增益。
624
625**起始版本:** 4.1
626
627**参数:**
628
629| 名称 | 描述 |
630| -------- | -------- |
631| gain | 待设置的增益,最小为0.0,最大为1.0。 |
632
633**返回:**
634
635成功返回值0,失败返回负值。
636
637**参见:**
638
639[GetGainThreshold](#getgainthreshold)
640
641[GetGain](#getgain)
642
643
644### SetMute()
645
646```
647IAudioCapture::SetMute ([in] boolean mute)
648```
649**描述**
650设置音频的静音状态。
651
652**起始版本:** 4.1
653
654**参数:**
655
656| 名称 | 描述 |
657| -------- | -------- |
658| mute | 待设置的静音状态,true表示静音操作、false表示取消静音操作。 |
659
660**返回:**
661
662成功返回值0,失败返回负值。
663
664**参见:**
665
666[GetMute](#getmute)
667
668
669### SetSampleAttributes()
670
671```
672IAudioCapture::SetSampleAttributes ([in] struct AudioSampleAttributes attrs)
673```
674**描述**
675设置音频采样的属性参数。
676
677**起始版本:** 4.1
678
679**参数:**
680
681| 名称 | 描述 |
682| -------- | -------- |
683| attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道,详请参考[AudioSampleAttributes](_audio_sample_attributes_v20.md)。 |
684
685**返回:**
686
687成功返回值0,失败返回负值。
688
689**参见:**
690
691[GetSampleAttributes](#getsampleattributes)
692
693
694### SetVolume()
695
696```
697IAudioCapture::SetVolume ([in] float volume)
698```
699**描述**
700设置一个音频流的音量。
701
702音量的取值范围是0.0~1.0,如果音频服务中的音量等级范围是0 ~ 15, 则音量的映射关系为0.0(或0)表示静音,1.0(或15)表示最大音量等级。
703
704**起始版本:** 4.1
705
706**参数:**
707
708| 名称 | 描述 |
709| -------- | -------- |
710| volume | 待设置的音量,范围0.0~1.0。 |
711
712**返回:**
713
714成功返回值0,失败返回负值。
715
716
717### Start()
718
719```
720IAudioCapture::Start ()
721```
722**描述**
723启动一个音频播放或录音处理。
724
725**起始版本:** 4.1
726
727**返回:**
728
729成功返回值0,失败返回负值。
730
731**参见:**
732
733[Stop](#stop)
734
735
736### Stop()
737
738```
739IAudioCapture::Stop ()
740```
741**描述**
742停止一个音频播放或录音处理。
743
744**起始版本:** 4.1
745
746**返回:**
747
748成功返回值0,失败返回负值。
749
750**参见:**
751
752[Start](#start)
753
754
755### TurnStandbyMode()
756
757```
758IAudioCapture::TurnStandbyMode ()
759```
760**描述**
761设置或去设置设备的待机模式。
762
763**起始版本:** 4.1
764
765**返回:**
766
767设置设备待机模式成功返回值0,再次执行后去设置待机模式成功返回正值,失败返回负值。
768