C# Xamarin.forms webview和查看/播放HTML5视频标签和android问题中的视频

C# Xamarin.forms webview和查看/播放HTML5视频标签和android问题中的视频,c#,xamarin.forms,xamarin.forms.labs,C#,Xamarin.forms,Xamarin.forms.labs,我正在使用MediaPicker从xamarin.labs捕获视频,然后将该视频上传到我的web服务器上。然后,我用HTML5视频标签检索该视频以在WebView中显示 这在iOS上运行良好。然而,同样的代码在Android上不起作用 我在android中创建自定义渲染器来创建Webchromeclient,但它不会在android上播放视频 带有视频的html5示例是(我还尝试使用标记中的类型参数: <Doctype! HTML> <html> <body>

我正在使用
MediaPicker
xamarin.labs
捕获视频,然后将该视频上传到我的web服务器上。然后,我用HTML5视频标签检索该视频以在WebView中显示

这在iOS上运行良好。然而,同样的代码在Android上不起作用

我在android中创建自定义渲染器来创建
Webchromeclient
,但它不会在android上播放视频

带有视频的html5示例是(我还尝试使用
标记中的
类型
参数:

<Doctype! HTML>
<html>
<body><video src="www.myserver.com/video1.mp4" controls height="150" width="150"/>
</body>
</html/>
这是我的页面:

public class VideoPage: ContentPage
{
   public VidoePage()
   {
      var webView = new MyWebView();
      webView.Source = new HtmlSource {Html = abovementionedHtml};
      var layout = new StackLayout()
     {
        Childern = {webWiew}
     };
     this.Content= layout;
}
Android渲染器:

[assembly: ExportRenderer(typeof(MyWebView), typeof(MyWebViewRenderer))] 
namespace VideoSample.Droid
{

using Xamarin.Forms.Platform.Android;

public class MyWebViewRenderer : WebRenderer 
{
     protected override void OnElementChanged(ElementChangedEventArgs  e)
    {
        base.OnElementChanged(e);

        if (this.Control == null)
        {
            var webView = new global::Android.Webkit.WebView(this.Context);
            webView.SetWebChromeClient(new WebChromeClient());
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.SetPluginState(WebSettings.PluginState.On);
            this.SetNativeControl(webView);
        }
    }    
}
}
有谁能告诉我怎么了


提前感谢。

尝试用一些修复程序替换下面的示例HTML。不确定这是否是正确的 根本原因


我做了两件事的调整:

  • DOCTYPE
  • 在URL开头添加“http://”

此外,您还可以参考更多的HTML提示和视频制作技巧。

谢谢@Alex Lau,我已经有了“http://”在我的html和我的代码中都是正确的,这里只是输入错误。事实上,我已经参考了你的博客两次,并遵循了上面提到的说明。但是我在android中仍然没有成功。但是我现在还没有应用javascript。因为我想这不是必需的。
[assembly: ExportRenderer(typeof(MyWebView), typeof(MyWebViewRenderer))] 
namespace VideoSample.Droid
{

using Xamarin.Forms.Platform.Android;

public class MyWebViewRenderer : WebRenderer 
{
     protected override void OnElementChanged(ElementChangedEventArgs  e)
    {
        base.OnElementChanged(e);

        if (this.Control == null)
        {
            var webView = new global::Android.Webkit.WebView(this.Context);
            webView.SetWebChromeClient(new WebChromeClient());
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.SetPluginState(WebSettings.PluginState.On);
            this.SetNativeControl(webView);
        }
    }    
}
}