ある一定の距離内(半径1キロ)にはいったら音が鳴るような仕組みを作りたいと思っています。
Java
1private void setLocation(Location location) { 2 LatLng myLocation = new LatLng(location.getLatitude(), location.getLongitude()); 3 mMap.addMarker(new MarkerOptions().position(myLocation).title("now Location")); 4 mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 10)); 5 6 if (-0.0090133729 + i1 < location.getLatitude() && location.getLatitude() < i1 + 0.0090133729 && k1 - 0.0109664047 < location.getLongitude() && location.getLongitude() < k1 + 0.0109664047) { 7 audioPlay(); 8 } 9 } 10 11 12 private boolean audioSetup() { 13 boolean fileCheck = false; 14 15 // rawにファイルがある場合 16 mediaPlayer = MediaPlayer.create(this, R.raw.n44); 17 // 音量調整を端末のボタンに任せる 18 19 20 setVolumeControlStream(AudioManager.STREAM_MUSIC); 21 fileCheck = true; 22 23 return fileCheck; 24 } 25 26 private void audioPlay() { 27 28 if (mediaPlayer == null) { 29 // audio ファイルを読出し 30 if (audioSetup()) { 31 Toast.makeText(getApplication(), "Rread audio file", Toast.LENGTH_SHORT).show(); 32 } else { 33 Toast.makeText(getApplication(), "Error: read audio file", Toast.LENGTH_SHORT).show(); 34 return; 35 } 36 } else { 37 // 繰り返し再生する場合 38 mediaPlayer.stop(); 39 mediaPlayer.reset(); 40 // リソースの解放 41 mediaPlayer.release(); 42 } 43 44 // 再生する 45 mediaPlayer.start(); 46 47 // 終了を検知するリスナー 48 mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 49 @Override 50 public void onCompletion(MediaPlayer mp) { 51 Log.d("debug", "end of audio"); 52 audioStop(); 53 } 54 }); 55 } 56 57 private void audioStop() { 58 // 再生終了 59 mediaPlayer.stop(); 60 // リセット 61 mediaPlayer.reset(); 62 // リソースの解放 63 mediaPlayer.release(); 64 65 mediaPlayer = null; 66 } 67
audioStopに関してはまだ条件を書いていません。
mediaplayerを使って音声を鳴らす方法を探しましたが、ボタンを押すというアクションの後に鳴るものしか見つからず、困っています。
プログラミング初心者なので初歩的なミスかもしれませんが、ご回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/06 18:10
2018/02/08 07:38