Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 让WebView仍在后台播放视频_Android_Xamarin.android - Fatal编程技术网

Android 让WebView仍在后台播放视频

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

我希望在后台播放来自youtube的视频。要流式播放任何youtube视频,我只需执行以下操作:

         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。我决定放弃这个项目,但非常感谢:)这个答案是正确的。