Android 기기에서 YouTube 실시간 스트림 시작

이 SDK는 완전히 지원 중단되었습니다. 더 이상 YouTube 이 YouTube IFrame Player API를 대신 사용하세요.

YouTube 모바일 라이브 딥 링크를 사용하면 Android 애플리케이션이 휴대기기에서 직접 YouTube 라이브 스트림을 시작할 수 있습니다. 앱은 Android 인텐트 메커니즘을 통해 모바일 라이브 흐름을 시작하는 진입점(예: 사용자가 클릭할 수 있는 버튼)만 제공하면 됩니다.

이 흐름은 사용자가 모바일 라이브 스트림 설정 화면으로 이동하는 YouTube 애플리케이션으로 딥 링크되는 앱의 사용자 환경을 보여줍니다.

  1. 먼저 사용자는 스트림을 구성하여 제목, 개인 정보 보호 모드 및 기타 스트림 옵션을 설정합니다.
  2. 그런 다음 사용자가 썸네일 사진 화면으로 이동하여 스트림의 썸네일 이미지를 설정합니다.
  3. 마지막으로 사용자가 라이브 스트림을 시작하고 전면 또는 후면 카메라에서 뷰를 방송합니다.

기기 요구사항

YouTube 라이브 스트리밍 및 모바일 라이브 딥 링크를 제대로 지원하려면 Android 기기에서 다음 요구사항을 충족해야 합니다.

  • Android 출시: Marshmallow (API 23) 이상
  • 카메라: 최소 30Hz에서 720p를 녹화할 수 있는 카메라 1대 이상
  • 마이크: 내장 마이크
  • 오디오 인코더: 8비트 PCM 모노 오디오를 44.1KHz 이상의 AAC로 인코딩할 수 있는 하드웨어 가속 오디오 인코더
  • 동영상 인코더: 720P 원본 동영상을 30Hz 이상에서 H.264/AVC로 인코딩할 수 있는 하드웨어 가속 동영상 인코더입니다.
  • 설치된 YouTube 앱: 버전 13.02 이상

모바일 라이브 인텐트 사양

YouTube 모바일 라이브 스트리밍 흐름에 연결하기 위해 Android 앱은 인텐트를 실행합니다. 인텐트는 YouTube 애플리케이션에서 Activity를 시작하여 라이브 스트리밍 프로세스를 시작합니다.

인텐트 형식

모바일 라이브 인텐트는 맞춤 Action 문자열을 사용하여 YouTube 앱 내의 실시간 생성 활동으로 이동합니다. YouTube 모바일 앱의 패키지 이름도 지정합니다.

  • 작업: 'com.google.android.youtube.intent.action.CREATE_LIVE_STREAM'
  • 패키지: 'com.google.android.youtube'

인텐트 추가 항목

YouTube 애플리케이션 설정 흐름은 스트림 구성을 처리합니다. 다음 인텐트 추가 항목은 라이브 스트림과 연결된 매개변수를 설정합니다.

Params
Intent.EXTRA_REFERRER 필수사항: 이 매개변수는 라이브 스트리밍 활동을 시작하는 애플리케이션을 나타내는 URI를 지정합니다. 이 값은 패키지 이름이 있는 android-app: scheme 형식을 따라야 합니다. 이 값은 정확한 기여 분석 및 회계를 가능하게 합니다.
Intent.EXTRA_SUBJECT 선택사항. 이 매개변수는 라이브 스트림에 대한 텍스트 설명을 제공합니다. 인텐트 추가 항목 번들에 String으로 배치됩니다. 이 값은 'DEVICE에서 실시간으로 스트리밍됨'과 같은 브랜드 메시지로 스트림에 주석을 추가하는 데 사용할 수 있습니다.

라이브 스트리밍 흐름 시작

1단계: 지원 여부 확인하기

클라이언트는 먼저 기기에 YouTube 앱이 설치되어 있고 YouTube 앱 버전이 라이브 스트리밍을 지원하는지 확인하여 모바일 라이브 인텐트를 시작할 수 있는지 확인해야 합니다. 다음 코드 샘플은 이를 위한 두 가지 메서드를 정의합니다.

  • canResolveMobileLiveIntent 메서드는 기기가 모바일 라이브 인텐트를 지원하는지 확인합니다.
  • validateMobileLiveIntentif-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);
}