首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误码(200,-82),Android中MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK

错误码(200,-82),Android中MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK
EN

Stack Overflow用户
提问于 2012-05-28 17:08:10
回答 1查看 1.4K关注 0票数 1

下面的代码是用于播放我的远程视频的:

代码语言:javascript
复制
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)。

我得到错误代码Error (200,-82)

我发现它是MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK。这是什么意思?

如何避免呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-28 17:14:13

正如doc所说的,MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK

视频是流式传输的,其容器对于渐进式回放无效,即视频的索引(例如moov atom)不在文件的开头。

在播放视频时,MediaPlayer经常会变成错误状态,然后提示“无法播放此视频”对话框,因此您必须在重置MediaPlayer引擎后,通过记住播放时间并重新播放视频来处理这些错误。

您可以在代码中实现OnErrorListener来处理此类错误,如下所示:

代码语言:javascript
复制
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;
         }

}; 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10782038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档