Androidアプリで、画面をまたいでBGMを鳴らしたいです。
各画面は、遷移時にfinish();で終了させているので、BGMも
途切れてしまいます。
どうしたらいいでしょうか?
編集・追記が遅れてすみません!
なかなか時間が取れなくて・・・。
lang
1public class SelectActivity extends AppCompatActivity { 2 3 MediaPlayer p; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_select); 9 10 // 音楽の読み込み 11 p = MediaPlayer.create(getApplicationContext(), R.raw.sound); 12 // 連続再生設定 13 p.setLooping(true); 14 15 } 16 17 @Override 18 protected void onResume(){ 19 20 super.onResume(); 21 p.start(); // 再生 22 23 } 24 25 @Override 26 protected void onPause() { 27 super.onPause(); 28 p.pause();//一時停止 29 } 30 31 @Override 32 protected void onDestroy() { 33 super.onDestroy(); 34 p.release();// メモリの解放 35 p = null; // 音楽プレーヤーを破棄 36 } 37 38 // ボタンがタッチされた時の処理 39 public void onButton(View v){ 40 41 Intent intent = new Intent(this, Hogehoge.class); 42 43 startActivity(intent); 44 45 finish(); 46 } 47}
仕様としては、
1.画面ごとにfinish()で前画面を消したい
2.アプり全体が終了したときは、音楽を消したいから、onDestroy()の
オーバーライドで、mediapleyerを破棄したい
3.複数画面でBGMを共有したい
なのですが、うーん両立難しいですかね・・・。
mediapleyerをアクティビティ間で受け渡せたら・・・。
android Serviceによる方法も調べていますが・・・。