2016-08-10 1 views
1

Я уже создал механизм, который определяет положение на картах и ​​вычисляет его расстояние от пользователя (в метрах).Как играть в 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 метров.

Я знаю, почему это происходит точно, но я не могу найти правильный способ сделать это.

Может ли кто-нибудь мне помочь?

Заранее благодарен!

ответ

1
@Override 
public void onLocationChanged(Location location) { 
    try { 
      int a = 0; 
      float dis = calcdist(location.getLatitude(),location.getLongitude,lat,lng); 
      if(dis <= 30) { 

      int a = a+1; //add 1 if you are in the circle 

      if(a = 1) { //if a=1 it will do the rest 
        MediaPlayer mp = MediaPlayer.create(this,R.raw.sound); 
        mp.setLooping(false); 
        mp.start(); 
       } else { 
        mp.stop(); 
       } 
      } 

      //if you are not int he circle 

      if(dis > 30) { 
       int a = 0; 
      } 

     } catch (Exception e) { 
     Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show(); 
     } 
    } 

Как насчет этого? Он будет установлен только в том случае, если вы уже в окружении 30 метров. Если да, это позволит вам воспроизводить этот звук, если он не сделает ничего. Я сожалею о своем английском и надеюсь, что помог вам.