当活动被隐藏时播放视频

6

一个例子可以最容易地理解为“Pandora for Android”。

我的活动有一个VideoView播放课堂讲座。我希望能够在不中断的情况下从这个活动切换到另一个活动(在我的应用程序中,或者切换到另一个应用程序(主屏幕,其他一些应用程序))。

使用Pandora的例子,我可以在播放音乐时转到“切换电台”视图,然后回到主屏幕并继续在手机上导航,而不会产生任何中断。

这对于视频还是仅适用于音频?我是否可以只播放视频文件的音频,然后轻松切换回来?

1个回答

4
一般来说(Pandora也是这样处理的),将音乐从服务上的后台线程播放。在此情况下,无法使用VideoView,因为它是一个视图,与活动绑定在一起。
我建议从Android VideoView代码开始,并将其分成两部分,一部分用于处理UI,另一部分用于视频播放。
在后台服务中运行MediaPlayer,当您的视频活动显示时,让服务调用MediaPlayer.setDisplay()并传入您的视频视图表面,并在隐藏视频视图时使用null调用MediaPlayer.setDisplay()。
显然,这比直接使用VideoView要复杂得多,并需要启动服务并协调UI。您也可以只在后台线程而不是服务中运行MediaPlayer。

有人成功了吗?我正在尝试,但在Activity进入后台时无法将Surface从播放器中分离。 - Rawler
每当该活动离开时,媒体播放器就会开始大声喊叫“错误(1,-2147483648)”。setDisplay(null)毫无作用,setSurface(null)也不行。 - Rawler
@dhaag23,你能给一个小例子吗?这样会非常有用。 - AndroidOptimist
好的概念。我会尝试制作一个可工作的演示,但我希望有人能比我更快地完成它。 - Hayk Saakian
@HaykSaakian或其他人,有没有任何示例可以参考?我在从概念到代码的转换中遇到了麻烦。 - Jamey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接