Запуск прямых трансляций YouTube на устройствах Android

Глубокая ссылка YouTube Mobile Live позволяет приложениям Android инициировать прямую трансляцию YouTube непосредственно с мобильного устройства. Приложению требуется только предоставить точку входа, например кнопку, которую может нажать пользователь, которая запускает поток Mobile Live через механизм Android Intent.

Пример

Этот поток показывает взаимодействие с пользователем приложения, которое глубоко ссылается на приложение YouTube, где пользователь попадает на экран настройки Mobile Live Stream.

  1. Сначала пользователь настраивает поток, устанавливая заголовок, режим конфиденциальности и другие параметры потока.
  2. Затем пользователь переходит к экрану «Миниатюра фото», чтобы установить миниатюру изображения для потока.
  3. Наконец, пользователь запускает прямую трансляцию и транслирует вид с передней или задней камеры.

Требования к устройству

Устройства Android должны соответствовать следующим требованиям для правильной поддержки прямых трансляций YouTube и глубокой ссылки Mobile Live:

  • Версия Android: Marshmallow (API 23) или выше.
  • Камера: минимум одна камера, способная записывать видео в формате 720p с частотой не менее 30 Гц.
  • Микрофон: Встроенный микрофон
  • Аудиокодер: аудиокодер с аппаратным ускорением, способный кодировать 8-битный монофонический звук PCM в AAC с частотой 44,1 кГц или лучше.
  • Видеокодер: видеокодер с аппаратным ускорением, способный кодировать необработанное видео 720P в H.264/AVC с частотой 30 Гц или выше.
  • Установлено приложение YouTube: версия 13.02 или выше.

Спецификация Mobile Live Intent

Чтобы подключиться к потоку прямой трансляции YouTube Mobile, ваше приложение Android запускает Intent . Намерение инициирует процесс прямой трансляции, запуская действие в приложении YouTube.

Формат намерения

Mobile Live Intent использует настраиваемую строку Action для перехода к действию по созданию трансляции в приложении YouTube. Здесь также указывается имя пакета для мобильного приложения YouTube.

  • Действие : « com.google.android.youtube.intent.action.CREATE_LIVE_STREAM »
  • Пакет : « com.google.android.youtube »

Намерение дополнений

Процесс настройки приложения YouTube управляет настройкой потока. Следующие дополнительные функции Intent устанавливают параметры, связанные с прямой трансляцией:

Параметры
Намерение. EXTRA_REFERRER Необходимый . Этот параметр указывает URI, который представляет приложение, запускающее действие потоковой передачи в реальном времени. Это значение должно соответствовать формату android-app: scheme с именем пакета. Это значение обеспечивает точную атрибуцию и учет.
Намерение. EXTRA_SUBJECT Необязательный . Этот параметр предоставляет текстовое описание прямой трансляции. Он помещается в пакет Intent extras как String . Это значение можно использовать для аннотации потока фирменным сообщением, например «Прямая трансляция с УСТРОЙСТВА».

Запускаем прямую трансляцию

Шаг 1. Проверьте поддержку

Ваш клиент должен сначала подтвердить возможность запуска Mobile Live Intent, проверив, что приложение YouTube установлено на устройстве и что версия приложения YouTube поддерживает прямую трансляцию. В следующем примере кода определены два метода для этого:

  • Метод canResolveMobileLiveIntent проверяет, поддерживает ли устройство Mobile Live Intent.
  • validateMobileLiveIntent вызывает метод canResolveMobileLiveIntent в контексте оператора if-else .
    • Если устройство поддерживает намерение, оно может запустить поток прямой трансляции.
    • Если устройство не поддерживает намерение, оно может предложить пользователю установить или обновить приложение 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);
}