在 Android 裝置上啟動 YouTube 直播

這個 SDK 已完全淘汰。不再支援或維護 YouTube。請使用 YouTube IFrame Player API

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

範例

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

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

裝置需求

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

  • Android 版本:Marshmallow (API 23) 以上版本
  • 相機:至少一部可錄製 720p 至少 30 Hz 的攝影機
  • 麥克風:已開啟麥克風
  • 音訊編碼器:硬體加速音訊編碼器,能夠將 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 額外項目會設定與直播相關聯的參數:

參數
Intent.EXTRA_REFERRER 必填。這個參數會指定 URI,代表啟動即時串流活動的應用程式。這個值必須採用含有套件名稱的 android-app: scheme 格式。這個值有助於準確歸因和計算。
Intent.EXTRA_SUBJECT (選用) 這個參數可提供直播的文字說明。而是以 String 形式儲存在 Intent extras 套裝組合中。這個值可以為串流加上品牌訊息,例如「透過 DEVICE 串流播放」。

啟動直播流程

步驟 1:檢查支援情形

您的客戶應先確認裝置已安裝 YouTube 應用程式,且 YouTube 應用程式版本支援直播,確認是否能啟動行動裝置直播意圖。以下程式碼範例定義了兩個達成此目的的方法:

  • canResolveMobileLiveIntent 方法會驗證裝置是否支援行動裝置直播意圖。
  • validateMobileLiveIntent 會在 if-else 陳述式的結構定義中呼叫 canResolveMobileLiveIntent 方法。
    • 如果裝置支援這個意圖,裝置就會啟動直播流程。
    • 如果裝置不支援 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);
}