我正在使用MediaPicker
中的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;
}
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);
}
}
}
}
所以有人能告诉我什么是错的吗?
提前致谢。
答案 0 :(得分:1)
尝试使用一些修复替换下面的示例HTML。不确定这是不是 根本原因。
<!DOCTYPE html>
<html>
<body>
<video src="http://www.myserver.com/video1.mp4" controls height="150" width="150">
</body>
</html>
我做了两件事的调整:
此外,您可以参考this blog post (Making HTML5 Video work on Android phones)了解有关制作视频的更多HTML提示和技巧。