私のAndroidアプリには、WebサイトからのHTMLデータを表示するためのWebViewがあります。ページにYouTube埋め込みオブジェクトが含まれる場合があります。これはアプリに正しく表示されません。WebViewでYouTubeビデオを表示/再生する方法はありますか?ありがとう。
7 に答える
おそらくFlashを搭載したデバイスを除いて、それらを埋め込んで表示することはできません。
ただし、YouTubeビデオの詳細を解析できる場合はACTION_VIEW
Intent
、YouTubeアプリケーションでそれらを表示するを構築できる可能性があります...YouTubeアプリケーションを備えたAndroidデバイス用です。
HTML5の<video>
タグを試すこともできます。これは、ブラウザアプリケーションでAFAIKがサポートされているため、で機能する可能性がありますWebView
。
この投稿に出くわしました:リンク
実際、基本的には、アプリケーション マニフェスト xml に追加するだけで済みました。
android:hardwareAccelerated="true"
そして出来上がり、YouTubeビデオの再生も開始しました
webView.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// YouTube video link
if (url.startsWith("vnd.youtube:"))
{
int n = url.indexOf("?");
if (n > 0)
{
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n)));
}
return (true);
}
return (false);
}
});
WebView(webView)は、次のようなURLでshouldOverrideUrlLoadingメッセージを送信します。
vnd.youtube:{VIDEO_ID}?{PARMS}
これを解析してhttp://www.youtube.com/v/{VIDEO_ID }に変換し、この改訂されたURLをインテントとして渡します。
私のために働く...
ここで android-developers グループに関する私の投稿を読んでください: YouTube in the emulator?
基本的に、YouTube クリップを再生する最善の方法は、独自のアクティビティを作成することです。ここにその好例を示します:アプリを磨く: 無料の埋め込み可能な Android YouTube アクティビティ!
更新: YouTube トークンの変更による非互換性の問題は修正されました。コンポーネントの最新バージョンは、YouTube の公開動画で問題なく動作するはずです。
Flash バージョンではなくHTML5 バージョンの YouTube プレーヤーを埋め込むようにウェブサイトを切り替えてみてください。これが 100% 機能するかどうかはまだわかりませんが、現在フラッシュをサポートしていないデバイスでは、明らかにフラッシュ バージョンよりもうまく機能するでしょう。
編集: HTML5 バージョンでは、ブラウザが H.264 コーデックをサポートする必要があるように見えますが、現在サポートされている Android デバイスはないようです。
埋め込まれた youtube ビデオは、デスクトップ ブラウザーと iPhone ブラウザー (iPhone のアプリに埋め込まれている場合でも) で正常に動作するため、YouTube ではなく Android に問題があるようです。
Android WebView の html5 ビデオ タグに使用するライブラリがあります。これは、すべての YouTube ビデオとほとんどの Flash ビデオでも機能し、他の機能の中でも特にフルスクリーンへの出入りをサポートしています。