質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

5768閲覧

Android Studio MediaPlayerの終了とonPauseについて

CeliaFortune

総合スコア12

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/02/06 14:03

編集2017/02/06 14:12

###Android Studio MediaPlayerの終了とonPauseについて
全てのアクティビティで同じBGMを再生したいのですが、
onPause onDestroyで止めなければアクティビティまたいで再生 しかしアプリ閉じても止まらない
onPause onDestroyで止めるとアプリ閉じると止まる でもアクティビティ変わるごとに止まってしまいます
アクティビティごとにstopとstartを繰り返すと一応全てのアクティビティで再生されるのですが、アクティビティを切り替えるたびに最初から再生されてしまいます

全てのアクティビティで途切れることなく同じBGMを再生し、かつ戻るボタン、ホームボタンでアプリが終了した時にBGMを止める方法があればご教授願います
###該当のソースコード

class SoundBase extends Activity { static protected MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mp == null) { mp = MediaPlayer.create(this, R.raw.bgm); mp.setLooping(true); } } protected void mpStart() { if (!mp.isPlaying()) { mp = MediaPlayer.create(this, R.raw.bgm); mp.setLooping(true); mp.start(); } } protected void mpStop() { if (mp.isPlaying()) { mp.stop(); } } void mpSeek(int i){ mp.seekTo(i); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ActivityじゃなくてApplicationクラスを継承するとかどうですかね。やったことないので保証しませんが。あとはServiceでうまく作るとか。

Applicationクラスの継承に関する参考サイト

投稿2017/02/06 14:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CeliaFortune

2017/02/07 03:52

アプリケーション、サービスともに結局アクティビティ側でスタート、ストップを選択しなければならないので、駄目でした(もしうまい方法があれば教えてください) アプリがバックグラウンドに回ったことを検知するメソッドなどはないのでしょうか? メディアプレーヤーのgetCurrentで現在の再生位置を保存、インテント先でtoSeekで続きから再生し、 あたかも流れ続けているように試みましたが、かなりぶつ切れになってしまいます
退会済みユーザー

退会済みユーザー

2017/02/07 13:05

Androidではアプリがバックグラウンドに回った時に呼ばれるメソッドはないみたいです。下記参考サイトでややこしい実装をしてバックグラウンドに回ったかどうかを判定してますね。 http://qiita.com/datsnet/items/292dcc35550d0e5c0512 後は、Activity一つで画面遷移を全部FragmentにしてActivityのonResumeとonPauseでMediaPlayerの再生、停止を切り替えるとか。Fragmentは癖があるし、ある程度作り込んでいる状態でFragmentに置き換えるのは面倒ですが・・・
jun74

2019/12/01 13:43

Serviceの開始で再生、Serviceの終了で停止するようにして、Activityで音楽スタートしたいときにService開始して、停止したいときにService終了するだけかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問