You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VideoView中处理4**系列错误码?extra=-1005是否等价于404?

VideoView onErrorListener 错误码解析与404场景处理

-1005错误码的本质

extra = -1005对应的是Android MediaPlayer的MEDIA_ERROR_SERVER_DIED常量,意思是播放过程中与服务器的连接意外中断,这和HTTP 404(请求的资源不存在)是完全不同的错误类型,两者触发场景没有关联。

对应404的错误码情况

当what参数为MEDIA_ERROR_UNKNOWN(数值为1)时,extra可能会携带HTTP响应状态码,其中就包括404——这就是你要找的等价于404的场景,代表请求的视频资源不存在。

实际处理代码示例

在回调里可以这样针对性处理:

mVideoView.setOnErrorListener((mediaPlayer, what, extra) -> {
    if (what == MediaPlayer.MEDIA_ERROR_UNKNOWN && extra == 404) {
        // 处理视频资源不存在(404)的逻辑,比如提示用户视频无效
    } else if (extra == -1005) {
        // 处理服务器连接中断的逻辑,比如提示用户网络异常
    }
    return true; // 拦截系统默认错误提示,使用自定义处理逻辑
});

补充说明

需要注意的是,MediaPlayer并不一定会把所有HTTP错误都通过extra传递出来。如果想要更可靠地捕获404这类资源不存在的问题,建议在传入VideoView之前,先通过一个简单的网络请求(比如HEAD请求)校验URL的有效性,这样能提前过滤无效链接,避免进入播放错误流程。

内容的提问来源于stack exchange,提问作者A.Mayank Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:15:31