Android 调用videoview播放视频时有时会弹出这个“抱歉无法播放此视频”的弹窗,这时播放就会停止,然后一直等待用户手动点击确定。
有时候需要阻止这个弹窗或者给videoview一个机会,让它再来几次,或者再长时间循环播放时不让videoview因为一些莫名的原因停止播放,这是就需要做一些处理:
private VideoView topVideoView;
private MediaPlayer mMediaPlayer;
private int errorTime = 1;
topVideoView = (VideoView) findViewById(R.id.video);
topVideoView.setVideoURI(Uri.parse("android.resource://com.example.myapp/" + R.raw.testvideo));
topVideoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mMediaPlayer = mp;
mp.start();
mp.setLooping(true);
if (logOn) {
Log.e(TAG, "topVideoView.setOnPreparedListener -mp.start()");
}
}
});
topVideoView.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// TODO Auto-generated method stub
if (errorTime < 6) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
startTest();
}
}, 2000);
errorTime++;
return true;
}
return false;
}
});
这样就给videoview几次机会再出现错误的时候不弹窗,重复加载errorTime次,如果还失败的话,再弹出弹窗。