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