2015-02-25 14 views
5

Sto catturando video utilizzando MediaPicker da xamarin.labs e quindi caricare quel video sul mio server web. Successivamente, recupererò il video da mostrare in WebView con tag video HTML5.Xamarin.forms webview e visualizza/riproduci video in HTML5 tag video e problema Android

Questo funziona perfettamente per iOS. tuttavia lo stesso codice non funziona su Android.

Creo rendering personalizzato in Android per creare Webchromeclient ma non riproduce video su Android.

HTML5 campione con il video è (cerco anche con type parametro nel <video> tag:

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

e questo è il mio Web View parte nel mio progetto PCL:

public class MyWebView: WebView 
{ 
} 

questo è il mio pagina:

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

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

Quindi qualcuno può dirmi cosa c'è che non va?

Grazie in anticipo.

risposta

1

Provare a sostituire l'HTML di esempio come di seguito con alcune correzioni. Non sono sicuro se questa è la causa principale .

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

ho fatto le regolazioni per due cose:

  • DOCTYPE
  • aggiungendo "http: //" all'inizio dell'URL

Inoltre, si può fare riferimento a this blog post (Making HTML5 Video work on Android phones) per ulteriori suggerimenti e trucchi HTML su come far funzionare i video.

+0

Grazie @Alex Lau, ho già "http: //" nel mio html e è corretto nel mio codice, è stato solo errore di battitura qui. In realtà, ho già fatto riferimento al tuo blog due volte e segue le istruzioni indicate. ma ancora non riesco ad androide. Tuttavia non applico javascript al momento. come non è richiesto, credo. – SoftSan