如何計算Android中的AudioRecord所用的時間?計算來自AudioRecord的經過時間
我想要做的是類似於:figure 5(Second graph)。爲了進一步解釋我自己,我正在實時錄製聲音,然後在特定時間內繪製出音調並計算緩衝數據。
如何計算Android中的AudioRecord所用的時間?計算來自AudioRecord的經過時間
我想要做的是類似於:figure 5(Second graph)。爲了進一步解釋我自己,我正在實時錄製聲音,然後在特定時間內繪製出音調並計算緩衝數據。
只要計算一下,你就知道你記錄的數據的大小,你也應該知道採樣率和通道數量。所以Michael發表的評論是正確的。
我跟隨了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
乘法少於邁克爾的評論。
如果你的應用程序知道它正在使用哪一個記錄設置(採樣率,通道數量......),那麼計算原始PCM記錄的長度應該是將記錄的累積大小數據由音頻幀大小乘以採樣率(例如,對於44.1kHz 16位立體聲PCM記錄,爲'dataSize /(2 * 2 * 44100)')。 – Michael 2013-03-05 15:16:23