https://developers.google.com/youtube/android/player/
YouTubeはWebViewでも再生できるといえば再生はできるのですが、動作がのろかったり画像が荒かったりしたので、調べてみたところ、AndroidアプリにはYouTube APIというものが使えるということがわかりました。
このYouTube APIを使って、YouTubeの動画を再生してみました。
普通にアクティビティでYouTube APIを使うだけならば、他のサイトでもやり方を紹介されているので、より実用性が高いだろうと考えてフラグメント上でYouTubeを再生できるようにしてみます。
アプリをGoogle Developers Consoleに登録して、APIキーを取得
Registering your application | YouTube Android Player API | Google Developers
https://developers.google.com/youtube/android/player/register
YouTube APIを使うためには、Google Developers Consoleにアプリを登録して、APIキーを取得する必要があります。
1)KeyStoreを作成
こちらの資料が参考になりました。
Android Studioでアプリ公開用KeyStoreを作成して本番ビルドする
http://qiita.com/konifar/items/6c6b73deae9085a69666
Key store pathと、Aliasは以下のようにしました。
Key store path: /Users/username/StudioProjects/FragmentDeYoutube/my.keystore Alias: FragmentDeYoutube
2)SHA1フィンガープリントを出力
ターミナルを開いてコマンドを入力します。
$ keytool -exportcert -alias FragmentDeYoutube -keystore /Users/username/StudioProjects/FragmentDeYoutube/my.keystore -list -v Enter keystore password: Alias name: FragmentDeYoutube 〜〜〜 SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX SHA256: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX: Signature algorithm name: SHA1withRSA Version: 3 〜〜〜SHA1の値を使います。
3)Google Developers ConsoleでAPIキーを取得
Registering your application | YouTube Android Player API | Google Developers
https://developers.google.com/youtube/android/player/register?hl=ja
Google Developers Console(https://console.developers.google.com/)は、ちょっとわかりずらいですが、以下の遷移でAPIキー作成できます。
プロジェクトを作成 -> APIと認証 -> API -> YouTube Data API -> APIを有効にする -> 認証情報 -> 公開 API へのアクセス 新しいキーを作成 -> Androidキー
フォームが表示されるので以下のように入力します。
リクエストを受け入れる Android アプリの証明書フィンガープリントとパッケージ名 (省略可)入力が完了すると、APIキーが確認できるようになります。
SHA1 証明書フィンガープリントとパッケージ名(セミコロンで区切る)を 1 行に 1 組ずつ入力してください。 例: 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.example
YouTube Android Player APIライブラリを組み込む
YouTube Android Player API - Download | YouTube Android Player API | Google Developers
https://developers.google.com/youtube/android/player/downloads/?hl=ja
上記ページからファイルをダウンロードして、プロジェクトにライブラリを組み込みます。
YouTubeAndroidPlayerApi-1.2.1.zipを使います。
ダウンロードして、解凍後、libs/YouTubeAndroidPlayerApi.jarをプロジェクトの app/libs/ ディレクトリにコピーします。
$ cp /Users/username/Desktop/YouTubeAndroidPlayerApi-1.2.1/libs/YouTubeAndroidPlayerApi.jar /Users/username/StudioProjects/FragmentDeYoutube/app/libs/build.gradleを編集。compile files('libs/YouTubeAndroidPlayerApi.jar')を追記します。
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.0' compile files('libs/YouTubeAndroidPlayerApi.jar') }これで、YouTube APIを使ってアプリを作る準備が出来ました。
サンプルコード
YouTubePlayerSupportFragment | YouTube Android API | Google Developers
https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerSupportFragment?hl=ja
上記のように、YouTubePlayerSupportFragment が class android.support.v4.app.Fragment を継承しているので、v4ライブラリの Fragment の作法にのっとって実装していきます。
以下、サンプルコードです。