Итак, у меня есть приложение с ListView, которое воспроизводит аудио в одном из фрагментов.Проблема в том, что некоторые пользователи сообщают, что приложение перестает воспроизводить звук после определенного количества нажатий.Я знаю, что это проблема, связанная с неправильным выпуском MediaPlayer, но я не могу найти место, где я не выпускаю его.Надеюсь, что вы, ребята, можете помочь.
Здесь MediaPlayer используется в MyAudioFragment.java.Я совершенно уверен, что проблема заключается в этих строках кода.
MyAudioFragment.java
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if(MainActivity.mediaPlayer != null && MainActivity.mediaPlayer.isPlaying()){
MainActivity.mediaPlayer.release();
MainActivity.mediaPlayer = new MediaPlayer();
}
MainActivity.mediaPlayer = MediaPlayer.create(getContext(), MainActivity.hashMap.get(adapterView.getItemAtPosition(i)));
MainActivity.mediaPlayer.start();
}
});
Здесь я имею дело с MediaPlayer в MainActivity.java
//...
public static MediaPlayer mediaPlayer;
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
//Layout stuff
mediaPlayer = new MediaPlayer();
//Setting up fragment stuff
//...
}
@Override
public void onPause(){
super.onPause();
mediaPlayer.stop();
mediaPlayer.release();
}
@Override
public void onResume(){
super.onResume();
mediaPlayer = new MediaPlayer();
}
Редактировать: Возможно, я не выпускаю его"OnCompletion"?