切换选项卡时保持VideoView(Android ICS+;)播放

切换选项卡时保持VideoView(Android ICS+;)播放,android,android-videoview,Android,Android Videoview,手机只支持安卓4.0+,没有其他第三方库 应用程序使用ActionBar的导航选项卡。其中一个选项卡包含ICS的stock VideoView控件,该控件从源流式传输实时视频。我想让VideoView在用户切换选项卡查看信息时继续播放(称之为InformationView) 在平板电脑上,我没有这个问题,因为屏幕更大,我让VideoView始终在屏幕上。 在手机上,屏幕较小,因此必须使用tab键 我知道VideoView可能依赖于可见表面来绘制视频帧。当用户切换选项卡时,曲面不可用于VideoV

手机只支持安卓4.0+,没有其他第三方库

应用程序使用ActionBar的导航选项卡。其中一个选项卡包含ICS的stock VideoView控件,该控件从源流式传输实时视频。我想让VideoView在用户切换选项卡查看信息时继续播放(称之为InformationView)

在平板电脑上,我没有这个问题,因为屏幕更大,我让VideoView始终在屏幕上。 在手机上,屏幕较小,因此必须使用tab键

我知道VideoView可能依赖于可见表面来绘制视频帧。当用户切换选项卡时,曲面不可用于VideoView,因此它会自动停止

我可能可以通过使用包含InformationView和VideoView的大滚动视图来解决这个问题

有没有办法强迫它继续播放(可能是通过画到一个看不见的表面),或者有没有第三方库通过使用巨大的滚动视图来模拟“tab”行为,这样我就不必编写更多的代码


请注意,这与此处描述的多个视频视图问题不同:

好的解决方案是在切换选项卡时隐藏包含视频视图的片段,因此始终可以绘制“曲面”视频视图。

您可以自定义视频视图相同的默认值,但不同的是,您应该控制支架曲面,oncreatSurface,onchangeSurface()。

这个概念的更好实现不是使用stock
VideoView
小部件,它实际上只是一个
SurfaceView
和一个
MediaPlayer
的结合,而是将这两个分开并分别使用。如果应用程序直接控制
MediaPlayer
,则即使曲面消失,is也可以继续播放音频曲目

将您的
活动
片段
作为一个
SurfaceHolder.Callback
实例附加到
SurfaceView
将允许您知道曲面何时可用于绘制。然后,应用程序将使用
MediaPlayer
方法
setDisplay()
setSurface()
在视图层次结构中每个回调都可用时附加和分离视频表面

您还可能会发现
VideoView
的源代码有助于()实现您自己的实现,从而实现类似的目标