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