在 Android 中录制音频时捕获时间戳

Posted

技术标签:

【中文标题】在 Android 中录制音频时捕获时间戳【英文标题】:Capture Timestamp while recording audio in Android 【发布时间】:2014-02-16 10:09:07 【问题描述】:

我正在开发一个对时间敏感的 android 应用程序,我想在录制特定音频样本时记录精确的时间戳。我正在使用 AudioRecord.startRecording()。

我希望在硬件处理音频时准确记录时间戳以避免任何错误。是否有可能达到这种准确性,如果可以,我应该如何进行。

高度赞赏这方面的任何指针。

【问题讨论】:

【参考方案1】:

您可以使用系统时间作为时间戳,如下所示:

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

您可以在记录的音频信号上计算 2 个事件之间的样本,并通过对样本进行计数并了解样本频率来获得精确的经过时间。 AFAIK,您无法获得获取信号的绝对时间。因为,音频由本地振荡器实时采样。一旦操作系统有空闲时间将其发送给您,就会将其发送给您。我不确定。

【讨论】:

以上是关于在 Android 中录制音频时捕获时间戳的主要内容,如果未能解决你的问题,请参考以下文章

Android 相机预览帧时间戳

在IOS中录制带有实时时间戳水印的视频,最好使用appcelerator

如何使用FFmpeg进行时间戳定位

Android/Firebase - 在 GCM 事件中解析时间戳时出错 - 时间戳为空

使用麦克风录制时,SDL 音频捕获未检测到任何音频

比较应该是相同的 AAC 音频文件 - 时间戳?