Я хочу остановить медиаплеер при нажатии кнопки home в Android

Когда я не в своем приложении (при нажатии кнопки "Домой" или "Назад"), музыка продолжает играть в фоновом режиме. Как я могу это остановить?

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

         }


         }

}

Я сделал этот код, и он должен остановиться, когда я пойду в следующий класс и начнется следующая песня

5 ответов

Решение

Поместите два следующих метода в свой класс для остановки воспроизведения музыки при переходе к другим экранам и кнопке "Домой" соответственно....

@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;
}

Переопределите метод onPause действия и остановите вызов на MediaPlayer.

Вы должны переопределить метод onKeyDown() и проверить keyevent, если это домашний ключ или кнопка возврата, и внутри этого метода остановите ваш медиаплеер, затем отпустите его. mp.stop (); mp.release ();

Проверьте, что вы хотите сделать на onPause. Пример:

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

     ourSong.stop();
 }

Вы, вероятно, должны поставить

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

внутри вашего метода onStop() или onDestroy() вашей деятельности.

Если вы положите его в onStop() звук останавливается при нажатии кнопки "Домой" (или в любое другое время, когда звонит телефон, возможно).

Если вы положите его в onDestroy() он будет продолжать играть до тех пор, пока система не будет нуждаться в ресурсах, которые использует ваше приложение. В любом случае это хорошая идея, чтобы ваше приложение не удерживало ресурсы MediaPlayer, если пользователь по какой-либо причине не нажимает кнопку остановки.

Другие вопросы по тегам