Android AudioRecord初始化延迟

Android AudioRecord初始化延迟,第1张

概述这是正在处理的相关代码的示例:AudioRecordrecorder=setupAudio();recorder.startRecording();SetupAudio方法:publicAudioRecordsetupAudio(){AudioRecordrecorder;minBufferSizeInBytes=AudioRecord.getMinBufferSize(RECORD

这是正在处理的相关代码的示例:

AudioRecord recorder = setupAudio();recorder.startRecording();

SetupAudio方法:

public AudioRecord setupAudio() {        AudioRecord recorder;        minBufferSizeInBytes = AudioRecord.getMinBufferSize(                RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,                AudioFormat.ENCoding_PCM_16BIT);        Log.e("MoverAudio","BufferSize: " + minBufferSizeInBytes);        recorder = new AudioRecord(MediaRecorder.AudioSource.CAMCORDER,                RECORDER_SAMPLERATE, AudioFormat.CHANNEL_IN_MONO,                AudioFormat.ENCoding_PCM_16BIT, minBufferSizeInBytes);        return recorder;    }

RECORDER_SAMPLERATE = 8000;

我试图找出是否有任何方法可以缩短初始化时间.

目前,我正在3种设备上对其进行即时测试,结果如下:

银河S3

> setupAudio:〜200ms
> startRecording():〜280ms

galaxy S3 mini

> setupAudio:〜10ms
> startRecording():〜290ms

galaxy Nexus

> setupAudio:〜10ms
> startRecording():〜235ms

缓冲区大小:

>连结:704
> s3:1024
> s3 mini:640

但是,仅来自银河系联系的数据可用.
对于我的应用程序,我必须能够尽快获取音频数据.使用当前值,只有Nexus在可接受的时间内.

S3 mini看起来速度较快,因为它仅比Nexus花费更多,但是前200毫秒的示例被列为0,因此它不可用.

根据我对收集到的数据进行分析后的了解,S3和S3 mini上的音频似乎已经过某种程度的滤波,因为所得到的FFT更加干净,低频声音总是不那么明显.
这是S3mini和galaxy Nexus录制的音频的示例:

http://img41.imageshack.us/img41/4177/ox7h.png
S3迷你

http://img690.imageshack.us/img690/8717/iya6.png
galaxy Nexus

解决方法:

如果请求长缓冲区,则必须等待 *** 作系统以当前采样率填充它.如果您要求的采样率不是硬件ADC正在运行的采样率,则必须另外等待重采样器滤波器的延迟.不同的AndroID设备和 *** 作系统版本可能支持不同的最小缓冲区大小和本机硬件采样率.

隐藏延迟的一种技术是在应用程序的生命周期中尽早开始录制,并不断丢弃音频样本,直到应用程序需要它们为止.这样就没有启动开销.

补充:在某些设备/ *** 作系统版本上,数据可能确实会以某种硬件采样率(例如在44.1k或48kHz时为4096)捕获到更长的OS驱动程序缓冲区中,并且仅在填充了其中一些缓冲区之后,才转换为另一个采样速率,然后切成较短的请求缓冲区长度,然后音频命令开始向应用发送数据.要绕过,即使有可能,您可能需要修改 *** 作系统并编写自己的ADC驱动程序.但是,请尝试使用较高的采样率(44.1k或48k),并首先请求较短的缓冲区.

总结

以上是内存溢出为你收集整理的Android AudioRecord初始化延迟全部内容,希望文章能够帮你解决Android AudioRecord初始化延迟所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存