0

我在 Android 应用程序中有一个全屏播放的视频。我添加了一个按钮,允许用户调出“分享”对话框以分享到社交媒体、短信或电子邮件。但是,当用户选择时,例如 Facebook,视频将停止播放。是否可以在用户执行共享时强制视频继续在背景中播放/渲染并打开声音?

分享代码如下:

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));
    }
4

1 回答 1

1

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

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

如果您仍然必须使用外部对话方法,您将不得不离开VideoView并自己使用MediaPlayer. 这并不像听起来那么可怕,您可以从源代码中看到,大部分VideoView只是将其连接到MediaPlayer回调并尝试在创建或销毁表面时管理状态。

于 2015-02-18T05:04:15.300 回答