错误代码(200,-82),媒体错误对于Android中的渐进式播放无效
下面的代码用于播放我的远程视频:错误代码(200,-82),媒体错误对于Android中的渐进式播放无效,android,android-videoview,Android,Android Videoview,下面的代码用于播放我的远程视频: Uri uri = Uri.parse(URLPath); vv.setVideoURI(uri); vv.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { //play next one } }); vv.setOnErrorListener(new OnErrorListener() { @Ov
Uri uri = Uri.parse(URLPath);
vv.setVideoURI(uri);
vv.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
//play next one
}
});
vv.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
return false;
}
});
它适用于我的大多数设备。但它在某些设备上不起作用(如三星Galaxy S2)。
我得到错误代码
错误(200,-82)
我发现它是
MEDIA\u ERROR\u NOT\u VALID\u用于渐进式播放
。
这是什么意思?如何避免呢 正如博士所说: 视频是流式传输的,其容器对于渐进式传输无效 播放,即视频的索引(例如moov atom)不在 档案 MediaPlayer在播放视频时经常会变为错误状态,然后提示“无法播放此视频”对话框,因此您必须在重置MediaPlayer引擎后通过记住播放时间和重放视频来处理这些错误 您可以在代码中实现
OnErrorListener
,以处理此类错误,如下所示:
private MediaPlayer.OnErrorListener mOnErrorListener = new MediaPlayer.OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
Toast.makeText(PlayerActivity.this, "MEDIA_ERROR_SERVER_DIED",
Toast.LENGTH_SHORT).show();
return true;
case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
Toast.makeText(PlayerActivity.this,
"MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK",
Toast.LENGTH_SHORT).show();
break;
case MediaPlayer.MEDIA_ERROR_UNKNOWN:
Toast.makeText(PlayerActivity.this, "MEDIA_ERROR_UNKNOWN",
Toast.LENGTH_SHORT).show();
break;
}
setProgressContainer(true, getString(R.string.msg_handle_error));
int position=mVideoView.getCurrentPosition();
if(position>0){
mCurPosition=position;
}
mVideoView.setVideoPath(mCurrentMediaUrl,position);
return true;
}
};
另一个问题,此错误是由不同的设备或不同的Android版本引起的?这是一种在收到此错误时执行操作并记录日志的好方法,但是,它不会在对话框出现之前捕获错误。不确定你是否能做到。媒体文件是什么。mp4、.3gp?