在我的应用程序中,我使用 SurfaceView 显示本地视频。然而,在视频之间切换时,我注意到一个奇怪的(罕见的)错误:它们都重叠。
屏幕截图:
有时旧视频(顶部黑色视频)保持静止,有时仍继续播放。 (无音频)
我该如何解决这个问题? 我之前使用的是VideoView,但仍然遇到这个问题。每次打开新视频时,都会重新创建我的 VideoFragment。我尝试在 fragment 的 onPause() 中释放视频,但仍然没有成功。
@Override
public void onPause()
{
super.onPause();
if (player != null && Video.getDownloaded())
{
if(player.isPlaying())
player.stop();
controller.hide();
player.release();
}
}
提前致谢,
~Pkmmte Xeleon
最佳答案
简单地说,SurfaceView
是一个奇怪的“小部件”。小心对待他们。
尝试重新组织您的 UI,以拥有单个 SurfaceView
(或 VideoView
,如果您回滚到该状态)。例如,它可以固定在操作栏选项卡下方,而其余内容则位于其下方的 fragment 内。在选项卡更改时,更新视频并替换主要 fragment 。
或者,如果您仅支持 API 级别 14+,请尝试使用 TextureView
。
关于java - Android SurfaceView 视频重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647881/