在 Android 裝置上啟動 YouTube 直播

我們已經完全淘汰這個 SDK。YouTube 已停止支援或維護。請改用 YouTube IFrame Player API

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

範例

這個流程會顯示應用程式的深層連結,並連往 YouTube 應用程式深層連結 (使用者點選行動裝置直播設定畫面)。

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

裝置需求

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

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

行動裝置直播意圖規格

如要連結至 YouTube 行動版直播流程,您的 Android 應用程式會啟動意圖。意圖會啟動 YouTube 應用程式的活動,藉此啟動直播程序。

意圖格式

行動裝置直播意圖會使用自訂的 Action 字串,前往 YouTube 應用程式中的直播建立活動,同時也指定 YouTube 行動應用程式的套件名稱。

  • 動作:「com.google.android.youtube.intent.action.CREATE_LIVE_STREAM
  • 套件:「com.google.android.youtube

意圖額外項目

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

參數
意圖。EXTRA_REFERRER 必備。此參數會指定代表啟動即時活動應用程式的 URI。這個值必須遵循 android-app: scheme 格式的套件名稱。這個值可讓你進行準確的歸因和會計。
意圖。EXTRA_SUBJECT (選用) 這個參數提供直播內容的文字說明。這會以 String 的形式,放在意圖額外套件中。這個值可用來為含有品牌訊息的串流加上註解,例如「來自 DEVICE 的直播」。

啟動直播流程

步驟 1:確認支援

客戶必須先確認裝置已安裝 YouTube 應用程式,且 YouTube 應用程式支援直播功能,才能啟動行動裝置直播意圖。以下程式碼範例定義這兩種做法。

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