В моем приложении список некоторых звуков. Коснувшись любого из них, пользовательское всплывающее окно 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 сработало.