6

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

这适用于 iOS。但是相同的代码在 Android 上不起作用。

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

带有视频的示例 html5 是(我也尝试使用标签中的type参数:<video>

<Doctype! HTML>
<html>
<body><video src="www.myserver.com/video1.mp4" controls height="150" width="150"/>
</body>
</html/>

这是我的 PCL 项目中的 Web 视图部分:

public class MyWebView: WebView
{
}

这是我的页面:

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;
}

安卓渲染器:

[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);
        }
    }    
}
}

那么谁能告诉我出了什么问题?

提前致谢。

4

1 回答 1

1

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

<!DOCTYPE html>
<html>
<body>
    <video src="http://www.myserver.com/video1.mp4" controls height="150" width="150">
</body>
</html>

我对两件事进行了调整:

  • 文档类型
  • 在 URL 的开头添加“http://”

此外,您可以参考这篇博文(在 Android 手机上制作 HTML5 视频),了解更多关于制作视频的 HTML 提示和技巧。

于 2015-02-25T15:37:05.910 回答