在 Android 裝置上啟動 YouTube 直播

YouTube 行動直播深層連結可讓 Android 應用程式直接透過行動裝置啟動 YouTube 直播。應用程式只需提供一個進入點,例如使用者可點選的按鈕,即可透過 Android 意圖機制啟動行動直播流程。

範例

這個流程顯示應用程式連結至 YouTube 應用程式的使用者體驗,使用者會前往「行動直播設定」畫面。

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

裝置需求

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

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

行動裝置直播意圖規格

為了連結 YouTube 行動裝置直播流程,您的 Android 應用程式會啟動 Intent。意圖會在 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 的形式放入 Intent 額外項目套件中。這個值可用於在串流中加上品牌訊息註解,例如「透過裝置 DEVICE 進行直播」。

啟動直播流程

步驟 1:檢查支援情形

客戶應先確認行動裝置上已安裝 YouTube 應用程式,且 YouTube 應用程式版本支援直播,以便確認行動直播意圖是否可啟動。以下程式碼範例定義了兩種方法來執行這項操作:

  • 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:啟動直播活動

如要啟動直播流程,用戶端應用程式會建立並啟動意圖,如以下程式碼範例所示:

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