Xamarin.Android で YouTubeAndroidPlayerAPI.jar を使ってみる

Xamarin.Android には Android用JARから.NETアセンブリを自動生成する機能があって、Mono.Android.dll を作る機能を一般化したものらしい。これで Google の提供する YouTube Android Player API を呼び出してみたところ、意外なほど簡単にできた。

やりかたは Xamarinのドキュメント に従えばいい。

  1. Xamarin のサイトから Xamarin Studio をダウンロードし、インストールする
  2. "Android Java Binding Library" を作る
  3. Jarsフォルダに YouTubeAndroidPlayerAPI.jar を入れる

JARによっては更に作業が必要なこともあるようだけど、YouTube APIについてはこれだけで使えるようだ。

あとは普通にプロジェクトを作成し、リファレンスとしてライブラリプロジェクトを参照すればよい。android.permission.INTERNET を有効にするのを忘れずに。命名規則C#風になっていることを除けばJava版と大差なく使える。

MainActivity.cs

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

using Com.Google.Android.Youtube.Player;

namespace YouTubeAndroidSample
{
  [Activity (Label = "YouTubeAndroidSample", MainLauncher = true)]
  public class MainActivity : Activity
  {
    private const string API_KEY = "YOUR_API_KEY_HERE";
    

    protected override void OnCreate (Bundle bundle)
    {
      base.OnCreate (bundle);

      SetContentView (Resource.Layout.Main);

      var button = FindViewById<Button> (Resource.Id.myButton);
      button.Click += delegate {
        var videoId = "us8j93EZt4U";

        var intent = YouTubeStandalonePlayer.CreateVideoIntent(
          this,
          API_KEY,
          videoId
        );
        StartActivity (intent);
      };
    }
  }
}