java Android SurfaceView视频重叠
在我的应用程序中,我使用SurfaceView显示本地视频。然而,我在切换视频时注意到一个奇怪(罕见)的错误:它们都重叠
屏幕截图:
有时旧视频(顶部黑色视频)保持静止,有时仍继续播放。(没有音频)
我该怎么解决这个问题? 我以前使用过VideoView,但仍然存在这个问题。每次打开新视频时,我的视频片段都会被重新创建。我试着在片段的onPause()中发布视频,但仍然没有成功
@Override
public void onPause()
{
super.onPause();
if (player != null && Video.getDownloaded())
{
if(player.isPlaying())
player.stop();
controller.hide();
player.release();
}
}
提前谢谢
~Pkmmte-Xeleon
# 1 楼答案
简单地说,
SurfaceView
是一个奇怪的“小部件”。小心对待他们尝试重新组织您的UI,使其具有一个
SurfaceView
(或者VideoView
,如果您回滚到该界面)。例如,它可以固定在操作栏选项卡下方,而其余内容则在其下方的一个片段中。在选项卡更改时,更新视频并替换主片段或者,如果您只支持API级别14+,请尝试
TextureView
# 2 楼答案
我使用surfaceView作为视频或在表面上绘制东西的表面。 当我非常快地切换活动时,例如切换到活动B并非常快地切换回来,有两个表面重叠
dumpsys SurfaceFlinger,输出中有两个surfaceview
我试图修改surfaceflinger,当destroy surface调用时,即使它与layerbase分离,也要销毁它
这个问题就这样解决了