在 Android 裝置上啟動 YouTube 直播

YouTube 行動版直播深層連結可讓 Android 應用程式直接從行動裝置發起 YouTube 直播。應用程式只需要提供進入點 (例如使用者可點選的按鈕),即可使用 Android Intent 機制啟動 Mobile Live 流程。

範例

這個流程顯示應用程式的使用者體驗,該應用程式會深層連結至 YouTube 應用程式,使用者會到達行動直播設定畫面。

  1. 首先,使用者會設定直播,包括標題、隱私模式和其他直播選項。
  2. 接著,使用者前往「Thumbnail Photo」畫面,設定直播的縮圖。
  3. 最後,使用者開始直播,並透過前置或後置鏡頭播送畫面。

行動裝置直播設定畫面 縮圖相片畫面 行動裝置直播畫面

裝置需求

Android 裝置必須符合下列規定,才能正確支援 YouTube 直播和行動裝置直播深層連結:

  • Android 版本:Marshmallow (API 23) 以上版本
  • 相機:至少一部相機,能以至少 30Hz 的頻率錄製 720p 影片
  • 麥克風:內建麥克風
  • 音訊編碼器:硬體加速音訊編碼器,能將 8 位元 PCM 單聲道音訊編碼為 44.1KHz 以上的 AAC
  • 影片編碼器:硬體加速影片編碼器,能以 30Hz 以上的頻率將 720P 原始影片編碼為 H.264/AVC
  • 已安裝 YouTube 應用程式:13.02 以上版本

行動裝置直播意圖規格

如要連結至 YouTube 行動直播流程,Android 應用程式會啟動意圖。意圖會在 YouTube 應用程式中啟動活動,開始直播程序。

意圖格式

YouTube 行動版直播意圖會使用自訂 Action 字串,前往 YouTube 應用程式中的直播建立 Activity。此外,也會指定 YouTube 行動應用程式的套件名稱。

  • Action: 「com.google.android.youtube.intent.action.CREATE_LIVE_STREAM」
  • 套件: 「com.google.android.youtube」

意圖額外項目

YouTube 應用程式設定流程會處理直播設定。下列意圖額外資訊會設定與直播相關的參數:

參數
Intent.EXTRA_REFERRER 必填。這個參數會指定 URI,代表啟動直播 Activity 的應用程式。這個值必須採用 android-app: scheme 格式,並包含套件名稱。這個值可確保歸因和會計作業準確無誤。
Intent.EXTRA_SUBJECT (選用) 這個參數會提供直播的文字說明。這項資訊會以字串形式,放在意圖額外項目套件中。這個值可用於在直播中加入品牌訊息,例如「從裝置直播」。

啟動直播流程

請完成下列兩個步驟,驗證裝置相容性,並從 Android 應用程式啟動行動即時活動。

步驟 1:確認是否支援

用戶端應先確認裝置上已安裝 YouTube 應用程式,且 YouTube 應用程式版本支援直播,以確認可以啟動行動直播意圖。下列程式碼範例定義了兩種方法:

  • canResolveMobileLiveIntent 方法會驗證裝置是否支援 Mobile Live 意圖。

  • 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> resolveInfo =
    pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  return resolveInfo != null && !resolveInfo.isEmpty();
}


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

如果應用程式指定 Android 11 (API 級別 30) 以上版本,必須在 AndroidManifest.xml 檔案中宣告套件瀏覽權限需求,PackageManager 才能查詢 YouTube 應用程式:

<queries>
  <package android:name="com.google.android.youtube" />
  <intent>
    <action android:name="com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" />
  </intent>
</queries>

步驟 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);
}