【发布时间】:2013-03-04 22:28:14
【问题描述】:
想法是Phone A同时发送声音信号和蓝牙信号,Phone B会计算这两个信号之间的延迟。
在实践中,我得到的结果不一致,延迟时间从 90 毫秒到 160 毫秒。 我尝试尽可能优化两端。
在输出端:
音调生成一次
蓝牙和音频输出各有自己的线程
蓝牙仅在 AudioTrack.write 之后输出,并且 AudioTrack 处于流模式,因此它
应该在写入完成之前开始输出。
在接收端:
又是两个单独的线程
在每个 AudioRecord.read 之前记录系统时间
抽样规格:
44.1khz
读取整个缓冲区
使用 fft 一次采样 100 个样本
考虑到自初始 read() 以来转换了多少样本
【问题讨论】:
-
如果您澄清并扩展您的问题,您可能会得到更好的答复。很难说你到底在问什么。
-
声音以 331 米/1000 毫秒或 3.31 米/10 毫秒传播。是什么让您认为您可以使用商用设备计时蓝牙信号和音频信号的到达时间?
-
这个商业设备的工作频率为 1.4 ghz,在光传播 1 英尺之前将运行 4 个 cpu 周期。周期不等于命令,但我正在计时非常慢的声音延迟(每英尺 1 毫秒)~1400000 个 cpu 周期
标签: android bluetooth fft audiorecord audiotrack