2015-02-25 21 views
5

Tôi đang quay video bằng cách sử dụng MediaPicker từ xamarin.labs và sau đó tải lên video đó trên máy chủ web của tôi. Sau đó, tôi truy xuất video đó để hiển thị trong WebView với thẻ video HTML5.Xamarin.forms webview và xem/phát video trong thẻ video HTML5 và số phát hành android

Tính năng này hoạt động tốt cho iOS. tuy nhiên cùng một mã không hoạt động trên Android.

Tôi tạo trình kết xuất tùy chỉnh trong Android để tạo Webchromeclient nhưng không phát video trên Android.

các html5 mẫu với video (Tôi cũng thử với type tham số trong <video> tag:

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

và đây là web xem một phần của tôi trong dự án PCL của tôi:

public class MyWebView: WebView 
{ 
} 

này là của tôi trang:

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

Trình kết xuất 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); 
     } 
    }  
} 
} 

Vì vậy, bất kỳ ai cũng có thể cho tôi biết điều gì là sai?

Xin cảm ơn trước.

Trả lời

1

Cố gắng thay thế HTML mẫu dưới đây bằng một số bản sửa lỗi. Không chắc chắn đây có phải là nguyên nhân gốc của số hay không.

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

tôi đã thực hiện những điều chỉnh cho hai điều:

  • Các DOCTYPE
  • Thêm "http: //" ở đầu của URL

Ngoài ra, bạn có thể tham khảo đến this blog post (Making HTML5 Video work on Android phones) để biết thêm các mẹo và thủ thuật HTML về cách tạo video.

+0

Cảm ơn @Alex Lau, tôi đã có "http: //" trong html của tôi và là chính xác trong mã của tôi, nó chỉ là lỗi chính tả ở đây. Trên thực tế, tôi đã giới thiệu blog của bạn hai lần và thực hiện theo các hướng dẫn được đề cập. nhưng tôi vẫn không thành công trong android. Tuy nhiên tôi không áp dụng javascript như của bây giờ. vì nó là không cần thiết tôi đoán. – SoftSan

Các vấn đề liên quan