6

MediaPickerfromを使用してビデオをキャプチャしxamarin.labs、そのビデオを Web サーバーにアップロードしています。その後、そのビデオを取得して、HTML5 ビデオ タグを使用して WebView に表示します。

これは iOS では問題なく動作します。ただし、同じコードは Android では機能しません。

Androidでカスタムレンダラーを作成して作成しますWebchromeclientが、Androidでビデオを再生しません。

ビデオ付きのサンプルhtml5は(タグのtypeパラメーターでも試します:<video>

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

これは私の PCL プロジェクトの Web ビュー パーツです。

public class MyWebView: WebView
{
}

これは私のページです:

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

誰が何が間違っているのか教えてもらえますか?

前もって感謝します。

4

1 に答える 1

1

以下のサンプル HTML をいくつかの修正に置き換えてみてください。これが根本的な原因かどうかはわかりません。

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

次の 2 点について調整を行いました。

  • DOCTYPE
  • URLの先頭に「http://」を追加

また、ビデオを機能させるための HTML のヒントとコツについては、このブログ投稿 (Android フォンで HTML5 ビデオを機能させる)を参照してください。

于 2015-02-25T15:37:05.910 に答える