android - 如何在 Android 中接收 Audiorecord 的硬件时间戳?

标签 android audio audio-recording audiorecord nanotime

我需要检索 AudioRecord 类 读取缓冲区时的时间戳。我需要以毫秒为单位跟踪时间。我试图在读取缓冲区后添加时间戳检索,但是当我收到下一个缓冲区时,检索它所花费的时间可能会波动很大。有没有办法从回调中接收录制音频的时间?

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

是我目前正在尝试的。

最佳答案

音频由本地振荡器实时采样。一旦操作系统有空闲时间将 block 发送给您,就会将其发送给您。 我不确定,但我认为你无法获得所获取信号的绝对时间。 您可以做的是对记录的音频信号的 2 个事件之间的样本进行计数,并通过对样本进行计数并了解样本频率来获得精确的耗时。 希望这会有所帮助。

关于android - 如何在 Android 中接收 Audiorecord 的硬件时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281472/

相关文章:

android - 如何播放安卓通知声音

JavaScript 音频库

audio - Liquidsoap + JACK延迟

ios - AudioKit.renderToFile AKClipPlayer 同步问题。渲染文件与第一个剪辑位置不同步并且也被截断

android - SQLite 查询没有按预期工作

java - 应用程序无法在 Activity 之间传递值

java - 使用java录制网络广播流

javascript - 如何使用cordova媒体插件在android中暂停和恢复录音

android - 我应该为每个新请求创建新的 HttpClient 吗?

android - Facebook SDK Android : OnSuccess called but OnCancel not called