2015-02-25 9 views
5

Przechwytuję wideo przy użyciu MediaPicker z xamarin.labs, a następnie przesyłam film na mój serwer sieciowy. Następnie pobieram ten film wideo, aby pokazać go w WebView z tagiem wideo HTML5.Przeglądanie stron internetowych Xamarin.forms i wyświetlanie/odtwarzanie wideo w tagach wideo HTML5 i wydaniu z systemem Android

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

Tworzę niestandardowy renderer w Androidzie, aby utworzyć Webchromeclient, ale nie odtwarza wideo na Androidzie.

HTML5 próbki z wideo jest (ja też spróbować z type parametru w <video> tagu:

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

i to jest mój internetowej widok części w moim projekcie PCL:

public class MyWebView: WebView 
{ 
} 

to jest moje 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; 
} 

Android renderer:

[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ę.

Odpowiedz

1

Spróbuj zastąpić przykładowy kod HTML jak poniżej kilkoma poprawkami. Nie jestem pewien, czy jest to przyczyna powodująca błąd .

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

zrobiłem korekty na dwie rzeczy:

  • doctype
  • dodając: "http: //" na początku adresu URL

Ponadto, można odnieść do this blog post (Making HTML5 Video work on Android phones) po dalsze wskazówki i porady dotyczące tworzenia filmów wideo w formacie HTML.

+0

Dzięki @Alex Lau, mam już "http: //" w moim html i jest poprawny w moim kodzie, to było tylko literówka tutaj. Właściwie już dwukrotnie wysłałem Twojego bloga i postępuję zgodnie z podanymi instrukcjami. ale nadal nie udaje mi się osiągnąć androida. Jednak nie stosuję javascript od teraz. ponieważ nie jest to wymagane, jak sądzę. – SoftSan

Powiązane problemy