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

Этот SDK полностью устарел. Он больше не поддерживается и не поддерживается YouTube. Вместо этого используйте API YouTube IFrame Player .

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

Пример

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

  1. Сначала пользователь настраивает поток, устанавливая заголовок, режим конфиденциальности и другие параметры потока.
  2. Затем пользователь переходит к экрану Thumbnail Photo, чтобы установить эскиз изображения для потока.
  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 для мобильных устройств, ваше приложение для Android запускает Intent . Intent инициирует процесс прямой трансляции, запуская действие в приложении YouTube.

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

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

Дополнения намерения

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

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

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

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

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

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

Чтобы запустить поток потоковой передачи в реальном времени, ваше клиентское приложение создает и запускает 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);
}