2014-02-16 54 views
0

我正在開發一個對時間敏感的Android應用程序,我希望記錄特定音頻樣本時的精確時間戳。我正在使用AudioRecord.startRecording()。在Android中錄製音頻時捕獲時間戳

我希望在硬件處理音頻時準確記錄時間戳以避免任何錯誤。是否有可能實現這種精度,如果是這樣,我應該如何繼續。

任何在這方面的指針,高度讚賞。

回答

2

您可以使用系統時間用於時間戳象下面這樣:

int bufferReadResult = audioRecord.read(buffer, 0,blockSize); 
      long startTime = System.nanoTime()/ 1000; 

你可以指望兩個事件之間的樣本上錄製的音頻信號,並獲得精確經過的時間,通過計算樣本和知道樣本頻率。 AFAIK,你不能得到獲取信號的絕對時間。因爲音頻是由本地振盪器實時採樣的。一旦操作系統有空閒時間發送給你,一個塊就會發送給你。我不確定這一點。