※注意 これはまだ調査段階で、確定ではないですが、暫定でわかったことをメモするための投稿です。
最近になって、WebViewを少しだけ触るようになってきたのですが、普通にブラウザとして動くし、ふむふむ良いなーという感じでいじっていたら、たまたまYouTubeを表示したときに、動画が再生されませんでした。なんだと…!
Desireにデフォルトで入ってるブラウザではどうだ?と思ってブラウザでYouTubeを表示して再生ボタンをタップしたら、普通にYouTube Appが起動して動画が再生されました。そりゃそうですね…。
ちなみにちょっとまとめると、以下のように。(自分調べ)
○がYouTubeを再生できた。×がYouTube再生できなかったというやつです。
- × WebView
- ○ デフォルトのブラウザ
- × Dolphin Browser
- ○ Dolphin Browser HD
動画のURLを押されたタイミングで、YouTube Appに明示的Intentで起動して再生すればいいのかなと思ったのですが、まずその仕方がわからんと。とりあえず、YouTube Appを明示的Intentで起動できたので、それをメモってことで。
String videoId = "tHJGdnG6CpQ"; // サンプルとして指定。スキマスイッチのPV。 Intent videoClient = new Intent(Intent.ACTION_VIEW); videoClient.setData(Uri.parse("http://m.youtube.com/watch?v=" + videoId)); videoClient.setClassName("com.google.android.youtube", "com.google.android.youtube.WatchActivity"); startActivity(videoClient);
上記を実行したところ、YouTube Appが起動して動画が再生されました。
WebViewから云々という話ではなく、YouTubeアプリを作って、再生のみYouTube Appに任せるときとかには使える手なのかなーとか、勝手に思っています。
しかし、デフォルトのブラウザで動画再生したら、メニューキーを押してもなんの反応もないから、ひょっとしたら普通にHTML5でビデオタグ内にYouTube動画を読み込んでいるだけなんだろうか…。なんかそんな気がしてきた。
また引き続き調査してみようと思いますー。
Pingback: 夢茶爺&苦茶爺のPC奮戦備忘録