我有一个线程,其中程序通过蓝牙不断获得用户与另一部手机的距离。
我选择实施文字转语音功能,其中当用户移动仪表更近/更远时,程序将“说话”。我已经能够达到距离,但问题是我不知道如何检查距离是否已经移动了至少1米/更远。例如:
Initial distance: 0.81 meters
当值增加/减少大约1米时,应激活TTS功能。
Should activate TTS when distance becomes: 1.81, 2.85, 3.90
请注意,第二个值2.85
距离最后一个距离1.81
不远1米,因为获得的距离“跳跃”意味着如果您显示距离并开始走开,它将看起来类似对此:
Distance: 1.01, 1.86, 2.31, 3.29, ...
我尝试了各种方法,但我似乎无法做到。任何帮助将不胜感激!
答案 0 :(得分:0)
请试试这个
int initDist = x;
int newDist = y;
int diff = newDist - initDist;
if(diff >= 1){
// activate TTS here;
initDist = newDist;
}
答案 1 :(得分:0)
您可以使用以下代码:
int initialDistance = x;//declare it global
int newDistance = y;
if(Math.abs(newDistance -initialDistance )>=1) {
//TTS;
initialDistance = newDistance;
}