android audio - 计算两个设备之间的距离
Posted
技术标签:
【中文标题】android audio - 计算两个设备之间的距离【英文标题】:android audio - calculating the distance between two devices 【发布时间】:2012-05-19 17:08:34 【问题描述】:我很难用声音计算两部安卓手机之间的距离。
-主要想法是让两部手机同时同步,让手机 A 向手机 B 发送一条消息,让他知道他很快就会播放声音。注意此时手机A保存。
-然后手机 B 向手机 A 发送“ok,你可以继续”,同时它开始录制接下来的 1 秒左右。
-然后手机 A 得到“ok”并开始播放 1000Hz 的声音。
-Mobile B 检测到该频率并将其当前时间发送到 mobileA
现在我们有了计算距离的所有信息。问题是理论上这一切都很好,但是当我实现这个时,我在等式中添加了很多随机时间。
主要问题是我无法指出移动 B 获得良好频率的绝对时间。
我尝试不记录整个 1000 毫秒,而是记录很多(12~24 毫秒)的“迷你”块,而是移动设备在 recorder_.startRecording()/recorder_.read()/recorder_.stop() 命令上花费的时间太多了,我错过了很多毫秒的频率(每个毫秒等于 30 厘米,所以我不能努力很多错误......)
谁能告诉我我做错了什么或指导我找到更好的方法?
主要问题是录音设备无法指向他记录想要的频率的实际时间.....
先谢谢了,
提供。
【问题讨论】:
声音太快了,无法正常工作。 嗯,还有其他选择吗...?我很确定这是可行的.. ... 但事实并非如此。即使您的手机运行具有可预测周期的实时操作系统,网络也不会以这种方式运行,尤其是无线网络。没有可用于比较声音的外部参考,这就是为什么您无法在短距离内获得良好测量结果的原因。然而,由于扬声器的音量,您可以做的只是短距离。你唯一能做的就是测量距离的变化。例如,如果您每 200 毫秒发出 100 毫秒的脉冲哔声,开始时将手机放在一起,然后分开。然后,您可以测量时间差异。 好吧..再一次,这可以做到。我不是来争论的,只要看看这个链接:youtube.com/watch?v=cMFR-Vwg924 【参考方案1】:请查看 API 19 中引入的新音频功能。
【讨论】:
您指的是哪些功能?一个链接就好了以上是关于android audio - 计算两个设备之间的距离的主要内容,如果未能解决你的问题,请参考以下文章
Android 9 Audio系统笔记:AudioPolicy&AudioFlinger初始化
Android 10 Audio系统:REMOTE_SUBMIX 实现原理