播放视频的时候 会有一个等待时间 这个时候我们需要用一个loading来显示出来
当准备完毕的时候播放发现视频图像出不来 需要默认设置一个黑色 然后再调整透明
videoUrl = Uri.parse(data);
mediaController = new MediaController(mContext);
mediaController.setPadding(560,0,560,0);
mVideo.setMediaController(mediaController);
mediaController.setVisibility(VISIBLE);
mVideoRoot.setVisibility(VISIBLE);
mWebView.setVisibility(INVISIBLE);
mVideoLoading.setVisibility(VISIBLE);
mVideo.setAlpha(0);
mVideo.setVideoURI(videoUrl);
Log.e(TAG, "handler: mVideo="+mVideo );
// Bitmap netVideoBitmap = getNetVideoBitmap(videoUrl.toString());
// if (netVideoBitmap != null){
// mVideo.setBackground(new BitmapDrawable(getResources(),netVideoBitmap));
// }
mVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mVideo.setAlpha(1);
mVideoLoading.setVisibility(GONE);
mVideo.setBackgroundColor(Color.BLACK);
Log.e(TAG, "onPrepared: ");
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
Log.e(TAG, "onInfo: " );
mVideo.setBackgroundColor(Color.TRANSPARENT);
}
return true;
}
});
playComplete = false;
mVideo.start();
}
});
mVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.e(TAG, "onCompletion: close video mp= "+mp );
// mVideo.stopPlayback();
mVideo.pause();
// mVideo.suspend();
mVideo.setVideoURI(videoUrl);
playComplete = true;
}
});
mVideo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.e(TAG, "onClick: isPlaying()="+ mVideo.isPlaying() );
if (!mVideo.isPlaying()){
mVideo.resume();
playComplete = false;
}
}
});
}