Android 让WebView仍在后台播放视频
我希望在后台播放来自youtube的视频。要流式播放任何youtube视频,我只需执行以下操作:Android 让WebView仍在后台播放视频,android,xamarin.android,Android,Xamarin.android,我希望在后台播放来自youtube的视频。要流式播放任何youtube视频,我只需执行以下操作: webView = FindViewById<WebView>(Resource.Id.test); WebSettings settings = webView.Settings; settings.JavaScriptEnabled = true; webView.SetWebChromeClient(new WebC
webView = FindViewById<WebView>(Resource.Id.test);
WebSettings settings = webView.Settings;
settings.JavaScriptEnabled = true;
webView.SetWebChromeClient(new WebChromeClient());
webView.LoadUrl("https://www.youtube.com/embed/jjaXCxKudIo"); // after embed las part of link after = sign
webView=findviewbyd(Resource.Id.test);
WebSettings=webView.settings;
settings.JavaScriptEnabled=true;
SetWebChromeClient(新的WebChromeClient());
webView.LoadUrl(“https://www.youtube.com/embed/jjaXCxKudIo"); // 后嵌入链接的las部分后=符号
但是,将活动置于背景会停止视频。返回后,视频将重新开始
这不是我想要的。我希望视频继续播放,但不可见(但仍然可以听到)
我试着将webview推到一个服务中,但这也不起作用。
我尝试将webview放入android通知栏中的通知中,但无法像这样初始化webview:
RemoteViews contentView = new RemoteViews(PackageName, Resource.Layout.Notificaion);
WebView webView = contentView.FindViewById<WebView>(Resource.Id.test);
WebSettings settings = webView.Settings;
settings.JavaScriptEnabled = true;
webView.SetWebChromeClient(new WebChromeClient());
webView.LoadUrl("https://www.youtube.com/embed/jjaXCxKudIo"); // after embed las part of link after = sign
RemoteViews contentView=新的远程视图(PackageName、Resource.Layout.Notificaion);
WebView WebView=contentView.findviewbyd(Resource.Id.test);
WebSettings=webView.settings;
settings.JavaScriptEnabled=true;
SetWebChromeClient(新的WebChromeClient());
webView.LoadUrl(“https://www.youtube.com/embed/jjaXCxKudIo"); // 后嵌入链接的las部分后=符号
这不起作用,因为contentview没有“findviewbyid”的属性
有人知道如何做到这一点吗
谢谢:)如果您使用android 8.0之前的系统,您可以定义一个自定义webview,然后像下面的代码一样重写OnWindowVisibilityChanged()方法
class MediaWebView : WebView
{
public MediaWebView(Context context) : base(context)
{
}
protected override void OnWindowVisibilityChanged([GeneratedEnum] ViewStates visibility)
{
// base.OnWindowVisibilityChanged(visibility);
if (visibility !=ViewStates.Gone) base.OnWindowVisibilityChanged(visibility);
}
}
Android 8.0或更高版本的Android 8.0无法实现。如果您使用Android 8.0之前的系统,您可以定义自定义webview,然后覆盖OnWindowVisibilityChanged()方法,如以下代码所示
class MediaWebView : WebView
{
public MediaWebView(Context context) : base(context)
{
}
protected override void OnWindowVisibilityChanged([GeneratedEnum] ViewStates visibility)
{
// base.OnWindowVisibilityChanged(visibility);
if (visibility !=ViewStates.Gone) base.OnWindowVisibilityChanged(visibility);
}
}
Android 8.0或更高版本的Android 8.0无法实现。您好,谢谢。这就是我现在所做的,但不幸的是,我需要它来制作Oreo 8.0 plus。我决定放弃这个项目,但非常感谢:)这个答案是正确的。嗨,谢谢。这就是我现在所做的,但不幸的是,我需要它来制作Oreo 8.0 plus。我决定放弃这个项目,但非常感谢:)这个答案是正确的。