1
我已經制定了一種機制,可以檢測地圖中的位置並計算與用戶的距離(以米爲單位)。如何在Java Android的onLocationChanged中播放MediaPlayer一次?
我想播放原始音頻文件,如果這個位置是在期望的距離(在我的情況下在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米。
我知道它爲什麼會發生,但我找不到正確的方法來做到這一點。
任何人都可以幫助我嗎?
在此先感謝!