【问题标题】:Calculate elapsed time from AudioRecord从 AudioRecord 计算经过的时间
【发布时间】:2013-03-05 15:03:51
【问题描述】:

如何在Android中计算从AudioRecord经过的时间?

我正在尝试做的与此类似:figure 5(Second graph)。为了进一步解释我自己,我正在实时录制声音,然后绘制音高并在一定时间内计算缓冲数据。

【问题讨论】:

  • 如果您的应用知道它正在使用哪些录音设置(采样率、通道数……)——它应该知道——那么计算原始 PCM 录音的长度应该是除以录制数据的累积大小乘以音频帧大小乘以采样率(例如,dataSize / (2*2*44100) 用于 44.1 kHz 16 位立体声 PCM 录制)。

标签: android audio audio-recording audiorecord android-audiorecord


【解决方案1】:

只需计算一下,您就知道记录数据的大小,还应该知道采样率和通道数。所以迈克尔发表的评论是正确的。

【讨论】:

    【解决方案2】:

    我按照迈克尔的评论,在录制后成功计算了音频长度,以秒为单位。

        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 的乘法比 Michael 的评论少一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 2016-04-25
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多