android - 让 WebView 在后台播放视频

标签 android xamarin.android

我想在后台播放来自 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 

但是,将 Activity 置于后台会停止播放视频。返回后,视频将重新开始。

这不是我想要的。我希望视频继续播放,但不可见(但仍可听见)。

我尝试将 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 

这没有用,因为 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 - 让 WebView 在后台播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53723297/

相关文章:

c# - 委托(delegate)还是 Lambda?

java - Android 中批量图片上传

android - Cordova CLI 命令甚至不返回任何内容 "cordova --version",安装问题?

android - 为 PocketSphinxAndroidDemo 创建和使用 Java 绑定(bind)库

android - 如何知道抽屉导航是否在 Xamarin 中打开?

c# - Xamarin Android 和日期选择器

memory-management - Google Play 服务在我的应用程序中消耗更多 RAM

Android byte[] 到 Camera.onPreviewFrame 中的图像

android - 替换 fragment 的最佳方法

android - 找不到 org.codehaus.groovy :groovy-all:2. 4.12