0

我有一个带有 RelativeLayout 的 android 应用程序,我以编程方式向其中添加了多个 VideoView,所有这些都同时播放。VideoViews 可以通过拖动来移动,并且可以移动它们以使它们重叠。

问题是我找不到在运行时更改它们的 z 顺序的方法。.bringToFront() 将视图置于前面以接收触摸事件,但实际视频的顺序保持不变。

我尝试通过 .removeChild() 删除和重新添加 videoView,但是这会停止并重置视频。

有没有办法改变视频的 z 顺序?“hacky”方式也可以,例如删除广告重新添加视图而不停止和重置视频。

谢谢

PS这是一个流媒体视频,所以重新启动视频到相同的位置是行不通的,会有太大的延迟。

编辑:即使人们建议多个 VideoViews 不应该工作,他们确实工作得很好,甚至重叠,至少在我的 Nexus S,ICS 4.0.3

编辑 2:实际上,不是很好,第二个视频有时会闪烁,但这很好。第3和第4个视频不闪烁,有点奇怪

4

2 回答 2

1

文件说,SurfaceView 的 Z 顺序是在它们附加到窗口之前确定的,并且它们的顺序一旦附加就不会改变。由于 VideoView 也是 SurfaceView,我认为不可能做到这一点。

于 2013-01-08T08:58:14.140 回答
0

VideoViews使用SurfaceView,女巫是Z-ordered windows,但你不能有多个SurfaceView z-ordered,因为每个SurfaceView都会在窗口上打一个洞。如果在同一区域添加多个视频,视频将无法正常播放。我曾经将视频从屏幕上翻译出来以保持其状态。在 google play 上寻找 EcoNews aap。

于 2012-09-26T12:55:31.820 回答