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