1

如何计算Android中的AudioRecord所用的时间?计算来自AudioRecord的经过时间

我想要做的是类似于:figure 5(Second graph)。为了进一步解释我自己,我正在实时录制声音,然后在特定时间内绘制出音调并计算缓冲数据。

+3

如果你的应用程序知道它正在使用哪一个记录设置(采样率,通道数量......),那么计算原始PCM记录的长度应该是将记录的累积大小数据由音频帧大小乘以采样率(例如,对于44.1kHz 16位立体声PCM记录,为'dataSize /(2 * 2 * 44100)')。 – Michael 2013-03-05 15:16:23

回答

1

只要计算一下,你就知道你记录的数据的大小,你也应该知道采样率和通道数量。所以Michael发表的评论是正确的。

0

我跟随了Michael的评论,并在录制后成功计算了以秒为单位的音频长度。

int SAMPLE_RATE_IN_HZ = 44100; 
    int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT; // Guaranteed to be supported by devices 
    int CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO; // Is guaranteed to work on all devices 

    File audioFile = yourRecordingLogicHere(); 
    long audioLengthInSeconds = audioFile.length()/(2 * SAMPLE_RATE_IN_HZ); 

我记录在单声道这就是为什么有一个*2乘法少于迈克尔的评论。