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

Android中切换URI时VideoView导致应用冻结问题排查

VideoView多次切换视频冻结的问题排查与修复方案

你当前的切换方式存在明显问题:每次切换视频时没有正确释放前一个视频的播放资源,底层关联的MediaPlayer实例未被彻底回收,多次切换后会导致系统资源占用过高,最终引发应用无响应(ANR)。

修复方案:切换前先释放资源

VideoView提供了stopPlayback()方法,专门用于停止播放并释放底层MediaPlayer的所有资源,包括音频、视频解码器等。在每次设置新URI前调用这个方法,就能避免资源累积问题。

修改后的切换代码如下:

切换到第二个视频(Button2点击事件)

_videoView.stopPlayback();
_videoView.setVideoURI(secondURI);
_videoView.requestFocus();
_videoView.start();

切换回第一个视频(Button1点击事件)

_videoView.stopPlayback();
_videoView.setVideoURI(firstURI);
_videoView.requestFocus();
_videoView.start();

额外说明

stopPlayback()是VideoView官方推荐的资源释放方式,它会彻底销毁当前关联的MediaPlayer实例,确保前一个视频的所有资源被回收。如果修改后仍有偶发问题,可以尝试在stopPlayback()后添加100-200毫秒的延迟再设置新URI,但绝大多数情况下,直接调用上述代码就能解决多次切换后的冻结问题。

内容的提问来源于stack exchange,提问作者Elliptica

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:40:36