【发布时间】:2015-10-17 00:32:03
【问题描述】:
我正在编写一个显示过场动画的应用程序。目前,它的工作方式是(因为表面视图/视频视图通常不能相互叠加)我在应用程序运行时从布局中删除了 VideoView。然后,当我想显示一个过场动画时,我将 VideoView 添加回布局中,一旦动画准备好播放,删除 SurfaceView(如果操作正确,在视频开始之前没有“黑色闪光”。这个工作成功。)但是,当视频结束时,我可以做以下两件事之一:
- 删除 VideoView,然后将 SurfaceView 添加回布局。这会导致在重新添加 SurfaceView 时屏幕上出现黑色闪烁。
- 重新添加 SurfaceView,然后在 SurfaceView 准备好呈现后移除 VideoView。
同样,我选择了第二个选项来消除屏幕上的黑色闪光。但是,这会导致不同的问题。出于某种原因,在 VideoView 开始播放后,如果在其画布上添加 SurfaceView 的顶部,则会出现从上到下沿屏幕向下延伸的深色垂直条纹。
移除 VideoView 后,条纹就会消失。然而,可以理解的是,在 SurfaceView 被添加回来和 VideoView 被从布局中删除之间大约有四分之一秒左右的延迟时间。在此期间,条纹清晰可见。
有没有办法解决这个问题?
请注意,我正在使用 Vitamio 渲染 AVI 视频。
【问题讨论】:
标签: android surfaceview android-videoview vitamio