@Override
public void onPrepared(MediaPlayer mp) {
try{
mediaPlayer.setDisplay(surfaceHolder);
mediaPlayer.start();
videoControllerView.start();
layoutProgressBar.setVisibility(View.INVISIBLE);
RequestsRB.putStartWatchingVideo(this, mCourseId, mToken, mLessons.get(currentVideoNum).getId());
}catch (Exception e){
Log.e("WatchVideoActivity=onPrepared", "ERRROR" + "");
if (mediaPlayer==null) Log.e("WatchVideoActivity=onPrepared", "DA1" + "");
if (mp==null) Log.e("WatchVideoActivity=onPrepared", "DA2" + "");
}
}
我得到了 NullPointer
if (mediaPlayer==null) Log.e("WatchVideoActivity=onPrepared", "DA1" + "");
粗略地说,它mediaPlayer是空的。并且 mp 不为空。好吧,它是一样的。我勒个去))。
请给我解释一下
顺便说一下 mediaPlayer 有 public static
好吧,首先,这不是一回事。mp 作为参数传递给您覆盖的此函数,并且很可能不为空,因为此过程会在播放器准备就绪时调用。但 mediaPlayer 并不清楚它是什么以及为什么。如果这是一个类字段,那么在调用此过程之前它没有被初始化,并且有必要在代码中查看它应该被初始化的位置以及如何初始化。