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乘法少於邁克爾的評論。