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