Android - Как приостановить воспроизведение музыки c, когда нажата кнопка «Домой» - PullRequest
0 голосов
/ 29 апреля 2020

В моем приложении список некоторых звуков. Коснувшись любого из них, пользовательское всплывающее окно alertDialog позволяет пользователю воспроизводить и искать звук.

public class Tab1 extends Fragment
{
    ...
    myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                playAudio audio = new playAudio(context, songPath);
                audio.show();
            }
    });
}

для воспроизведения звука Я использовал MediaPlayer в классе playAudio (playAudio. java).

public class playAudio extends Dialog 
{
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.play_audio)
        MediaPlayer mp = new MediaPlayer();

        btnPlay.setOnClickListener(new View.OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {                  
                mp.setDataSource(songPath);
                mp.prepare();
                mp.start();
            }
        });
    }
}

Вот проблема: когда в моем alertDialog воспроизводится звук, и пользователь нажимает кнопку home, звук не приостанавливается. Я знаю, что можно запускать и приостанавливать звук с помощью onPause () и onResume () методы в MainActivity, но я не знаю, как мне передать mp (мой объект медиаплеера) в MainActivity. или есть какое-то другое решение для паузы musi c, когда нажата домашняя кнопка?

@Override
protected void onPause() {
    mp.pause();
    super.onPause();
}

@Override
protected void onResume() {
    mp.start();
    super.onResume();
}

РЕДАКТИРОВАТЬ: Я не знаю, хорошо это делать или нет, но я определил mp publi c stati c и использую его в своей MainActivity в onResume и onPause.it сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...