Я уже создал механизм, который определяет положение на картах и вычисляет его расстояние от пользователя (в метрах).Как играть в MediaPlayer один раз в onLocationChanged в Java Android?
Я хочу воспроизвести необработанный аудиофайл, если эта позиция находится в желании (в моем случае в 30 метрах).
Я уже сделал этот код в моем onLocationChanged()
@Override
public void onLocationChanged(Location location) {
try {
float dis = calcdist(location.getLatitude(),location.getLongitude,lat,lng);
if(dis <= 30) {
MediaPlayer mp = MediaPlayer.create(this,R.raw.sound);
mp.setLooping(false);
mp.start();
} else {
mp.stop();
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
}
}
Теперь проблема есть, когда пользователь получить ход, его огонь вверх, что функция снова и воспроизводить звук снова и снова, пока расстояние не более чем 30 метров.
Я знаю, почему это происходит точно, но я не могу найти правильный способ сделать это.
Может ли кто-нибудь мне помочь?
Заранее благодарен!