2016-05-19 4 views
0

現在地をGoogleマップapiで確認しています。ロケーションを変更してサウンドを再生する

現在の場所に15メートル以上の値がある場合、私はサウンドを再生しています。音が複数回起動しているようだと、エコー効果

になり、私は mediaFile.start()を使用していますということですが起こって何

。私の宣言MediaFileが

答えて

0

については

は、ユーザーの現在のGPS値を取得し、サービスにonLocationChangeListener実装するサービスクラスを作成する必要があります。

public void onLocationChanged(Location location){ 
     //calculate distance values between initial location and current location 
    if(distance>15){ 
      play_sound(); 
    } 
} 

public void play_sound() { 
    // Initializing 
    mp = MediaPlayer.create(getApplicationContext(), R.raw.sound_file_name); 
    mp.start(); 
    Thread timer = new Thread() { 
     public void run() { 
      try { 
       sleep(500); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } finally { 
       mp.release(); 
      } 
     } 
    }; 
    timer.start(); 
} 
+0

私はあなたのコードを調べます。問題は、位置がその反対に変わるときに再生されないということではないので、私はタイマーを追加しようとします。エコーの問題が消えたら – mogren3000

関連する問題