如何在使用Share时允许VideoView继续播放? Android的

时间:2015-02-18 04:10:06

标签: android android-videoview android-video-player android-sharing

我在Android应用程序中播放全屏视频。我添加了一个按钮,允许用户调出"分享"用于分享社交媒体,短信或电子邮件的对话框。然而,当用户选择例如Facebook时,视频将停止播放。在用户执行共享时,是否可以强制视频在后台继续播放/渲染,声音为ON?

要分享的代码如下:

public static void share(Activity activity, String subject, String body, String title)
    {
        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, body);    
        activity.startActivity(Intent.createChooser(shareIntent, title));
    }

1 个答案:

答案 0 :(得分:1)

VideoView在生命周期方面非常挑剔,它会在托管它的活动暂停时停止播放视频。显示意图选择器对话框可有效暂停您的活动。

首选方法(针对用户体验和处理您的问题)将使用ShareActionProvider来允许用户选择共享目标。这是一个弹出列表,通常锚定在操作栏上,这是一种显示这些选项的更现代的方法。作为额外的好处,弹出窗口不会导致您的活动暂停,因此视频不应该停止。

如果您仍然必须使用外部对话方式,则必须离开VideoView并使用MediaPlayer自行实施视频表面。这并不像听起来那么可怕,你可以从source code看到大多数VideoView只是将它连接到MediaPlayer回调并尝试在表面处理状态被创造或毁灭。