Android: MediaPlayer не выходит должным образом - PullRequest
0 голосов
/ 28 мая 2018

Итак, у меня есть приложение с 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"?

1 Ответ

0 голосов
/ 28 мая 2018

На onCompletion вы должны сделать release ();

...