我在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));
}
答案 0 :(得分:1)
VideoView
在生命周期方面非常挑剔,它会在托管它的活动暂停时停止播放视频。显示意图选择器对话框可有效暂停您的活动。
首选方法(针对用户体验和处理您的问题)将使用ShareActionProvider来允许用户选择共享目标。这是一个弹出列表,通常锚定在操作栏上,这是一种显示这些选项的更现代的方法。作为额外的好处,弹出窗口不会导致您的活动暂停,因此视频不应该停止。
如果您仍然必须使用外部对话方式,则必须离开VideoView
并使用MediaPlayer
自行实施视频表面。这并不像听起来那么可怕,你可以从source code看到大多数VideoView
只是将它连接到MediaPlayer
回调并尝试在表面处理状态被创造或毁灭。