/ / Xamarin.forms przeglądanie stron internetowych i wyświetlanie / odtwarzanie wideo w tagu wideo HTML5 i problem z Androidem - c #, xamarin.forms, xamarin.forms.labs

Xamarin.forms przeglądanie i wyświetlanie / odtwarzanie wideo w tagach wideo HTML5 i na Androidzie - c #, xamarin.forms, xamarin.forms.labs

Nagrywam wideo za pomocą MediaPicker od xamarin.labs a następnie załaduj ten film na mój serwer internetowy. Następnie pobieram ten film do wyświetlenia w WebView ze znacznikiem wideo HTML5.

Działa to dobrze na iOS. jednak ten sam kod nie działa na Androidzie.

Tworzę niestandardowy renderer w Androidzie do tworzenia Webchromeclient ale nie odtwarza wideo na Androidzie.

przykładowy HTML5 z wideo to (próbuję również z type parametr w <video> etykietka:

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

i to jest moja część widoku internetowego w moim projekcie PCL:

public class MyWebView: WebView
{
}

to moja strona:

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

Renderowanie Androida:

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

Czy ktoś może mi powiedzieć, co jest nie tak?

Z góry dziękuję.

Odpowiedzi:

1 dla odpowiedzi № 1

Spróbuj zastąpić przykładowy kod HTML, jak poniżej, pewnymi poprawkami. Nie jestem pewien, czy to jest podstawowa przyczyna.

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

Dokonałem korekt dla dwóch rzeczy:

  • DOCTYPE
  • Dodanie „http: //” na początku adresu URL

Możesz również zapoznać się z ten post na blogu (Tworzenie wideo HTML5 na telefonach z Androidem) w celu uzyskania dalszych wskazówek i sztuczek HTML dotyczących tworzenia wideo.