Android デバイスでの YouTube ライブ配信の開始

この SDK のサポートは完全に終了しました。現在は Google Cloud の YouTube。次を使用してください: YouTube IFrame Player API を使用してください。

YouTube モバイルライブのディープリンクにより、Android アプリはモバイル デバイスから直接 YouTube ライブ配信を開始できます。アプリは、Android インテント メカニズムを介してモバイルライブ配信フローを開始するエントリ ポイント(ユーザーがクリックできるボタンなど)を用意するだけで済みます。

このフローは、YouTube アプリケーションにディープリンクするアプリのユーザー エクスペリエンスを示しています。この場合、ユーザーは [モバイルライブ配信の設定] 画面に移動します。

  1. まず、ユーザーが配信を設定し、タイトル、プライバシー モード、その他のストリーム オプションを設定します。
  2. 次に、ユーザーは [サムネイル写真] 画面に移動し、ストリームのサムネイル画像を設定します。
  3. 最後に、ユーザーがライブ ストリームを開始し、前面カメラまたは背面カメラからの映像をブロードキャストします。

デバイスの要件

YouTube ライブ配信とモバイルライブ ディープリンクを適切にサポートするには、Android デバイスが次の要件を満たしている必要があります。

  • Android リリース: Marshmallow(API 23)以降
  • カメラ: 720p 以上 30 Hz 以上の録画が可能なカメラが 1 台以上
  • Microphone(マイク): 内蔵マイク
  • オーディオ エンコーダ: 8 ビット PCM モノラル音声を 44.1 KHz 以上の AAC にエンコードできるハードウェア アクセラレーション オーディオ エンコーダ
  • 動画エンコーダ: 720P の未加工動画を 30 Hz 以上の H.264/AVC にエンコードできるハードウェア アクセラレーションの動画エンコーダ
  • YouTube アプリをインストールしている: バージョン 13.02 以降

モバイルライブ配信のインテントの仕様

YouTube モバイルのライブ配信フローにリンクするために、Android アプリはインテントを起動します。このインテントは、YouTube アプリケーションでアクティビティを開始することで、ライブ配信のプロセスを開始します。

インテントの形式

モバイルライブ配信インテントは、カスタムの Action 文字列を使用して、YouTube アプリ内のライブ作成アクティビティに移動します。また、YouTube モバイルアプリのパッケージ名も指定します。

インテント エクストラ

YouTube アプリケーション設定フローがストリーム構成を処理します。以下のインテント エクストラは、ライブ ストリームに関連するパラメータを設定します。

パラメータ
Intent.EXTRA_REFERRER 必須。このパラメータは、ライブ ストリーミング アクティビティを起動するアプリを表す URI を指定します。この値は、パッケージ名を含む android-app: scheme 形式に従う必要があります。この値により、正確なアトリビューションとアカウンティングが可能になります。
Intent.EXTRA_SUBJECT (省略可)このパラメータには、ライブ ストリームのテキストによる説明を指定します。これは String としてインテント エクストラ バンドルに配置されます。この値を使用して、「Streamed live from DEVICE」などのブランド メッセージでストリームにアノテーションを付けることができます。

ライブ配信フローを開始する

ステップ 1: サポートを確認する

クライアントはまず、YouTube アプリがデバイスにインストールされていることと、その YouTube アプリのバージョンがライブ配信に対応していることを確認して、モバイルライブ配信インテントを起動できることを確認する必要があります。次のコードサンプルでは、そのための 2 つのメソッドを定義しています。

  • canResolveMobileLiveIntent メソッドは、デバイスがモバイル ライブ インテントをサポートしていることを確認します。
  • validateMobileLiveIntent は、if-else ステートメントのコンテキストで canResolveMobileLiveIntent メソッドを呼び出します。
    • デバイスがインテントをサポートしている場合は、ライブ ストリーム フローを開始できます。
    • デバイスがこのインテントをサポートしていない場合、YouTube アプリのインストールまたはアップグレードを求めるメッセージがデバイスに表示されます。
private boolean canResolveMobileLiveIntent(Context context) {
  Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
    .setPackage("com.google.android.youtube");
  PackageManager pm = context.getPackageManager();
  List resolveInfo = 
    pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  return resolveInfo != null && !resolveInfo.isEmpty();
}


private void validateMobileLiveIntent(Context context) {
  if (canResolveMobileLiveIntent(context)) {
    // Launch the live stream Activity
  } else {
    // Prompt user to install or upgrade the YouTube app
  }
}

ステップ 2: ライブ ストリーム アクティビティを開始する

ライブ ストリーミング フローを開始するには、次のコードサンプルに示すように、クライアント アプリでインテントを作成して起動します。

private Intent createMobileLiveIntent(Context context, String description) {
  Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
      .setPackage("com.google.android.youtube");
  Uri referrer = new Uri.Builder()
      .scheme("android-app")
      .appendPath(context.getPackageName())
      .build();

  intent.putExtra(Intent.EXTRA_REFERRER, referrer);
  if (!TextUtils.isEmpty(description)) {
    intent.putExtra(Intent.EXTRA_SUBJECT, description);
  }
  return intent;
}


private void startMobileLive(Context context) {
  Intent mobileLiveIntent = createMobileLiveIntent(context, "Streaming via ...");
  startActivity(mobileLiveIntent);
}