【问题标题】:Playing video when activity is hidden隐藏活动时播放视频
【发布时间】:2011-06-28 19:56:19
【问题描述】:

想一想“Pandora for Android”就很容易理解这方面的一个例子。

我的活动有一个 VideoView 正在播放课堂上的讲座。 我希望能够从这个 Activity 切换到另一个 Activity(在我的应用程序中,或切换到不同的应用程序(主屏幕、其他应用程序))而不会中断。

使用 Pandora 示例,我可以在播放音乐时转到“切换电台”视图,然后我可以转到主屏幕并继续在手机上无缝导航。

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

【问题讨论】:

    标签: android video android-videoview


    【解决方案1】:

    一般的处理方式(以及 Pandora 的处理方式)是在后台线程上播放来自服务的音乐。 VideoView 在这种情况下不能使用,因为它是一个视图并且与一个活动相关联。

    我会从 Android VideoView 代码开始并将其分成两部分,一部分用于处理 UI,另一部分用于视频播放。

    在后台服务中运行 MediaPlayer,当您的视频活动显示时,让服务调用 MediaPlayer.setDisplay() 与您的视频视图表面,并在您的视频视图被隐藏时调用 MediaPlayer.setDisplay() 为 null。

    显然,这比直接使用 VideoView 复杂得多,并且需要启动服务并与 UI 协调。您也可以只在后台线程而不是服务中运行 MediaPlayer。

    【讨论】:

    • 有人搞定这个工作吗?我正在尝试,并且在 Activity 进入后台时无法将 Surface 与播放器分离。
    • 每当活动离开时,媒体播放器都会开始大喊“错误(1,-2147483648)”。 setDisplay(null) 没有帮助,setSurface(null) 也没有。
    • @dhaag23 你能举个小例子,这样会很有用
    • 好概念。我会尝试做一个可以工作的演示,但我希望有人能打败我。
    • @HaykSaakian 或其他任何人,有什么例子可以看吗?我在从概念到代码的过程中遇到了麻烦。
    猜你喜欢
    • 2020-11-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多