Android:MediaPlayer在几场比赛后停止播放

时间:2018-06-17 04:29:22

标签: java android android-mediaplayer

我有一个带有ListView的应用程序,可以在其中一个片段中播放音频。问题是,有些用户报告应用程序在一定量的点击后停止播放音频。我知道这是一个与MediaPlayer无法正确发布有关的问题,但我找不到一个我没有发布它的地方。希望你们能帮忙。

这是MyAudioFragment.java中使用MediaPlayer的地方。我很确定这个问题位于这些代码行中。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            if(MainActivity.mediaPlayer != null){
                MainActivity.mediaPlayer.release();
                MainActivity.mediaPlayer = new MediaPlayer();
            }
            MainActivity.mediaPlayer = MediaPlayer.create(getContext(), MainActivity.hashMap.get(adapterView.getItemAtPosition(i)));
            MainActivity.mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    mediaPlayer.release();
                }
            });
            MainActivity.mediaPlayer.start();
        }
    });

以下是我在MainActivity.java中处理MediaPlayer的地方:

//...
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();
}

我在哪里没有正确发布?谢谢你的帮助。

0 个答案:

没有答案