我希望在后台播放来自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推送到服务中,但这也不起作用。 我尝试将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”的属性
有人知道如何实现吗?
谢谢:)
答案 0 :(得分:4)
如果您使用的是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,无法实现。