2

アプリの外にいるとき (ホーム ボタンまたは戻るボタンを押したとき)、バックグラウンドで音楽が再生され続けます。どうすればそれを止めることができますか?

public class MainActivity extends Activity implements OnClickListener {

MediaPlayer ourSong;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ourSong = MediaPlayer.create(MainActivity.this, R.raw.girissong);
    ourSong.start();

    // codes

}

@Override
public void onClick(View v) {

    // some code

         }

         }

}

このコードを作成しました。次のクラスに行くと停止し、次の曲が始まります

4

5 に答える 5

4

以下の 2 つのメソッドをクラスに配置して、他の画面とホーム ボタンにそれぞれ移動しながら音楽の再生を停止します。

@Override
public void onPause()
{
   super.onPause();
   if(ourSong.isPlaying())
   ourSong.stop();
   else
   return;
}

@Override
public void onStop()
{
   super.onStop();
  if(ourSong.isPlaying())
    ourSong.stop();
  else
   return;
}
于 2012-12-20T09:21:14.383 に答える
4

アクティビティの onPause メソッドをオーバーライドし、MediaPlayer で stop を呼び出します。

于 2012-12-20T09:18:40.227 に答える
2

onPauseで何をしたいのかを確認してください。例:

protected void onPause() {
     super.onPause();

     ourSong.stop();
 }
于 2012-12-20T09:19:02.087 に答える
2

onKeyDown()メソッドをオーバーライドしキーイベントがホーム キーまたは戻るボタンのメソッドであるかどうかを確認し、このメソッド内でメディア プレーヤー オブジェクトを停止してから解放する必要があります。 mp.stop(); mp.release();

于 2012-12-20T09:23:24.467 に答える
1

あなたはおそらく置くべきです

if (player != null && player.isPlaying()) {
    player.stop();
    player.release();
    player = null;
}

アクティビティの onStop() または onDestroy() メソッド内でも。

あなたがそれをonStop()オーディオに入れた場合、ホームボタンが押されたとき(または別のアクティビティが電話の呼び出し音を引き継いだとき)に停止します。

それを入れるとonDestroy()、システムがアプリケーションが使用しているリソースを必要とするまで再生し続けます。いずれにせよ、ユーザーが何らかの理由で停止ボタンを押さない場合に備えて、アプリが MediaPlayer リソースを保持しないようにすることをお勧めします。

于 2012-12-20T09:19:13.300 に答える