Android Studio离线播放本地视频报错(1, -2147483648)求助
解决Android VideoView播放raw资源视频报错(1, -2147483648)
错误原因分析
这个错误通常和以下几点有关:
- 视频格式/编码不被Android系统支持
- 资源路径写法不正确
- 视频文件损坏或导入不完整
解决方案
1. 确认视频格式兼容性
Android原生MediaPlayer支持的视频格式有限,优先使用**MP4(H.264视频编码 + AAC音频编码)**格式。如果你的视频不是这个格式,用转码工具(比如HandBrake)重新编码后再导入到res/raw文件夹。
2. 修正资源路径与加载方式
你的代码中使用setVideoPath加载资源Uri可能存在解析问题,改用setVideoURI并正确构造资源Uri:
VideoView v1 = findViewById(R.id.vv1); // 构造正确的资源Uri Uri videoUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video1); v1.setVideoURI(videoUri); MediaController mc = new MediaController(this); v1.setMediaController(mc); mc.setAnchorView(v1); // 添加错误监听,获取更详细信息 v1.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Log.e("VideoError", "Error code: " + what + ", extra: " + extra); return false; } }); v1.start();
3. 检查视频文件完整性
- 删除
res/raw中的视频文件,重新导入,确保导入过程中没有中断或文件损坏。 - 直接在电脑上播放该视频,确认文件本身可以正常播放。
4. 确保布局中的VideoView配置正确
检查activity_maths_chap1.xml中的VideoView是否有正确的宽高设置,避免因尺寸问题导致播放失败:
<VideoView android:id="@+id/vv1" android:layout_width="match_parent" android:layout_height="wrap_content" />
内容的提问来源于stack exchange,提问作者Arooba Siddiqui
相关产品推荐
相关产品推荐

