0

这是我的第一个问题。它在media.release()行中提供NullPointerException。精确的输出是NullPointerException异常(@ ProgressDetailRecyclerViewAdapter $ 5:onCompletion:308){主}Android MediaPlayer OnCompletion空指针异常

​​
+0

变化'mediaPlayer.release()内;''到mp.release();' –

回答

0

试试这个

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       mp.release(); //line 308 
       mp= null; 
      } 
     }); 
+0

嘿快学习者,mp.stop()是否需要上面的mp.release() –

+0

你打电话给mp.stop(); ? –

0

获取传递到您的onCompletion方法的变量命名为mp,不mediaPlayer。可能你的mediaPlayer变量已被初始化为零,导致错误。更改代码以:

@Override 
public void onCompletion(MediaPlayer mp) { 
    mp.release(); //line 308 
    mp = null; 
} 
+0

嘿Jokab,mp.stop()是必需的或不是上面的mp.release() –

+0

@UpendraSinghChauhan在你的代码中没有'mp.stop'。我不明白你的意思。 – Jokab

+0

是的,这不是写在我的问题,但我要求在释放资源(mp.release)之前mp.stop()是否需要。这是一个很好的做法,这是我想知道的。我是android开发新手。 –

0
@Override 
      public void onCompletion(MediaPlayer **mp**) { 
       **mediaPlayer**.release(); //line 308 
       mediaPlayer = null; 
      } 

使用正确的对象MP代替MEDIAPLAYER这种方法

+0

Hey Uma,mp.stop()是必需的或不是上面的mp.release() –