YouTube モバイルライブ ディープリンクは、Android アプリがモバイル デバイスから直接 YouTube のライブ配信を開始できるようにするプログラムです。アプリは、Android インテント メカニズムを介してモバイルライブフローを開始するエントリポイント(ユーザーがクリックできるボタンなど)を提供するだけで済みます。
例
このフローは、YouTube アプリケーションへのディープリンクがあるアプリのユーザー エクスペリエンスを示しています。ユーザーはこの画面でモバイルライブ配信の設定画面を表示します。
- まず、ユーザーがストリームを設定し、タイトル、プライバシー モード、その他のストリーム オプションを設定します。
- 次に、ユーザーはサムネイル写真画面に移動して、ストリーミング用のサムネイル画像を設定します。
- 最後に、ライブ ストリームを開始し、前面カメラまたは背面カメラからビューをブロードキャストします。
デバイスの要件
Android デバイスが YouTube ライブ配信とモバイルライブ配信のディープリンクを適切にサポートするには、次の要件を満たす必要があります。
- Android リリース: Marshmallow(API 23)以降
- カメラ: 30 Hz 以上で 720p を録画できるカメラが 1 台以上ある
- マイク: 内蔵マイク
- オーディオ エンコーダ: 8 ビット PCM モノラル音声を 44.1 KHz 以上で AAC にエンコードできるハードウェア アクセラレーション オーディオ エンコーダ
- 動画エンコーダ: ハードウェア アクセラレーションの動画エンコーダで、720P RAW 動画を 30 Hz 以上で H.264/AVC にエンコードできます
- インストールされている YouTube アプリ: バージョン 13.02 以降
モバイル ライブ インテントの仕様
Android アプリは、YouTube モバイルのライブ配信フローにリンクするために、インテントを起動します。インテントは YouTube アプリでアクティビティを開始することでライブ ストリーミング プロセスを開始します。
インテントの形式
モバイル ライブ インテントは、カスタムの Action
文字列を使用して、YouTube アプリ内のライブ作成アクティビティに移動します。また、YouTube モバイルアプリのパッケージ名も指定しています。
- アクション: 「
com.google.android.youtube.intent.action.CREATE_LIVE_STREAM
」 - パッケージ: 「
com.google.android.youtube
」
インテント エクストラ
YouTube アプリの設定フローでストリーム設定を処理する。次のインテント エクストラは、ライブ ストリームに関連付けられたパラメータを設定します。
パラメータ | |
---|---|
Intent.EXTRA_REFERRER | 必須。このパラメータでは、ライブ ストリーミング アクティビティを起動するアプリを表す URI を指定します。この値は、パッケージ名を含む android-app: scheme 形式に従う必要があります。この値により、正確なアトリビューションと会計が可能になります。 |
Intent.EXTRA_SUBJECT | 省略可。このパラメータでは、ライブ ストリームのテキストによる説明を指定します。インテント エクストラ バンドルには String として配置されます。この値を使用して、「ブランドからライブ配信されたデバイス」などのブランド メッセージにストリームのアノテーションを付けることができます。 |
ライブ ストリーミング フローの開始
ステップ 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(); ListresolveInfo = 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); }