私はWebViewでYouTubeのビデオを再生しようとしている、WebViewは、再生ボタンでビデオの最初の外観を示すが、再生ボタンをクリックした後、プログレスバーを開始し、2〜3秒後にプログレスバーを停止し、画面が黒い色で空白になります。
画像1:再生ボタンが付いたビデオのファーストルック
画像2:再生ボタンをクリックすると、画面が真っ白になります。
なぜビデオが始まらないのか、教えてください。
IMAGE:1 .
画像:2 。
これは、YouTubeVideoをWebViewで再生するためのソースコードです。私を助けてください...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView wv = (WebView) findViewById(R.id.webView1);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
final String mimeType = "text/html";
final String encoding = "UTF-8";
String html = getHTML();
wv.loadDataWithBaseURL("", html, mimeType, encoding, "");
}
public String getHTML() {
String html = "<iframe class=\"youtube-player\" style=\"border: 0; width: 100%; height: 95%; padding:0px; margin:0px\" id=\"ytplayer\" type=\"text/html\" src=\"http://www.youtube.com/embed/"
+ "J2fB5XWj6IE"
+ "?fs=0\" frameborder=\"0\">\n"
+ "</iframe>\n";
return html;
}
WebViewにHTMLコンテンツを読み込む前に、これらの行を追加してください。
wv.setWebChromeClient(new WebChromeClient() {
});
ドキュメントより
アプリケーションでインライン HTML5 ビデオをサポートするには、ハードウェア アクセラレーションをオンにし、WebChromeClient を設定する必要があります。フルスクリーンをサポートするためには、onShowCustomView(View, WebChromeClient.CustomViewCallback) と onHideCustomView() の実装が必要で、 getVideoLoadingProgressView() はオプションとなります。
モバイル端末で配信しているyoutbeの動画に不具合が発生しています。直接WebビューでURLを読み込んで実行しようとすると、動画が再生されないのです。この問題を解決する難しい方法の1つは、ビデオビューでビデオをストリーミングすることです。この問題を解決する難しい方法として、ビデオビューでビデオをストリーミング再生する方法があります。ユーザーエージェントとは、youtubeの動画がどのようなデバイスで再生されるかを示すもので、それに応じてサーバーからそのようなWebページが送信されます。こうすることで、youtubeのビデオをストリーミング再生することができます。以下はその方法です:
public static final int USER_MOBILE = 0;
public static final int USER_DESKTOP = 1;
wv.getSettings().setUserAgent(USER_DESKTOP); // 1 is for the desktop
なぜ、YouTubeの動画をWebViewで再生したいのですか?このインテントを使用すると、それを再生することができます
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(stringUrl)));
その他、WebViewで再生する場合は、以下のリンクを参照してください。
https://stackoverflow.com/questions/9565533/android-how-to-play-youtube-video-in-webview?rq=1