/ / Xamarin.forms HTML5ビデオタグとアンドロイドの問題をWebビューで表示/再生する - c#、xamarin.forms、xamarin.forms.labs

Xamarin.forms HTML5ビデオタグとアンドロイドの問題をWebビューで表示/再生する - c#、xamarin.forms、xamarin.forms.labs

私はビデオをキャプチャしています MediaPicker から xamarin.labs そのビデオを私のWebサーバーにアップロードしてください。その後、HTML5ビデオタグ付きのWebViewで表示するためにそのビデオを取得します。

これはiOSでうまく動作します。同じコードはAndroidで動作しません。

私はアンドロイドでカスタムレンダラを作成して作成します Webchromeclient それはアンドロイドでビデオを再生しません。

ビデオ付きサンプル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);
}
}
}
}

だから、誰かが間違っていることを教えてくれる?

前もって感謝します。

回答:

回答№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://」を追加する

また、参照することがあります このブログ記事(Android携帯でHTML5動画を制作する) ビデオを制作するためのHTMLのヒントやトリックについては、こちらをご覧ください。