Rozpoczynanie transmisji na żywo w YouTube na urządzeniach z Androidem

Precyzyjny link do transmisji na żywo w YouTube na urządzeniach mobilnych umożliwia aplikacjom na Androida inicjowanie transmisji na żywo w YouTube bezpośrednio z urządzenia mobilnego. Aplikacja musi tylko udostępnić punkt wejścia, np. przycisk, który użytkownik może kliknąć, aby rozpocząć proces transmisji na żywo na urządzeniu mobilnym za pomocą mechanizmu intencji Androida.

Przykład

Ten schemat przedstawia wrażenia użytkownika w przypadku aplikacji, która zawiera precyzyjny link do aplikacji YouTube. Użytkownik trafia na ekran konfiguracji transmisji na żywo na urządzeniu mobilnym.

  1. Najpierw użytkownik konfiguruje strumień, ustawiając tytuł, tryb prywatności i inne opcje strumienia.
  2. Następnie użytkownik przechodzi do ekranu „Miniatura zdjęcia” w celu ustawienia miniatury obrazu strumienia.
  3. W końcu użytkownik rozpoczyna transmisję na żywo i nadaje widok z przedniej lub tylnej kamery.

Wymagania dotyczące urządzeń

Aby prawidłowo obsługiwać transmisje na żywo w YouTube i linki bezpośrednie do transmisji na żywo na urządzeniach mobilnych, urządzenia z Androidem muszą spełniać te wymagania:

  • Wersja Androida: Marshmallow (poziom interfejsu API 23) lub nowsza
  • Kamera: co najmniej 1 kamera umożliwiająca nagrywanie w jakości 720p z częstotliwością co najmniej 30 Hz.
  • Mikrofon: wbudowany mikrofon
  • Kodek audio: sprzętowy kodek audio z akceleracją sprzętową, który umożliwia kodowanie 8-bitowego dźwięku mono PCM w formacie AAC z częstotliwością 44,1 kHz lub większą
  • Koderek wideo: koder wideo z akceleracją sprzętową, który umożliwia kodowanie nieskompresowanego wideo 720P do formatu H.264/AVC z częstotliwością co najmniej 30 Hz.
  • Zainstalowana aplikacja YouTube: wersja 13.02 lub nowsza.

Specyfikacja transmisji na żywo z urządzeń mobilnych

Aby połączyć się z procesem transmisji na żywo w YouTube na urządzeniach mobilnych, aplikacja na Androida uruchamia intencję. Intencja inicjuje proces transmisji na żywo, uruchamiając działanie w aplikacji YouTube.

Format intencji

Intencje dotyczące transmisji na urządzeniach mobilnych używają niestandardowego ciągu Action, aby przejść do aktywności związanej z tworzeniem transmisji w aplikacji YouTube. Zawiera ona też nazwę pakietu aplikacji mobilnej YouTube.

  • Działanie:com.google.android.youtube.intent.action.CREATE_LIVE_STREAM”.
  • Pakiet:com.google.android.youtube

Dodatkowe informacje o intencji

Konfiguracja strumienia jest obsługiwana przez proces konfiguracji aplikacji YouTube. Te dodatkowe parametry intencji są powiązane z transmisją na żywo:

Parametry
Intencja.EXTRA_REFERRER Wymagany. Ten parametr określa identyfikator URI, który reprezentuje aplikację uruchamiającą aktywność transmisji na żywo. Ta wartość musi być zgodna z formatem android-app: scheme z nazwą pakietu. Wartość umożliwia dokładne przypisywanie i rozliczanie.
Intencja.EXTRA_SUBJECT Opcjonalnie. Ten parametr zawiera tekstowy opis transmisji na żywo. Jest on umieszczany w pakiecie dodatkowych informacji o intencji jako ciąg znaków. Wartość ta może służyć do dodawania adnotacji do strumienia za pomocą wiadomości związanej z marką, np. „Transmisja na żywo z urządzenia ”.

Uruchamianie procesu transmisji na żywo

Krok 1. Poproś o pomoc

Klient powinien najpierw sprawdzić, czy można uruchomić intencję transmisji na żywo na urządzeniu mobilnym. W tym celu musi się upewnić, że na urządzeniu jest zainstalowana aplikacja YouTube, a jej wersja obsługuje transmisję na żywo. W tym przykładzie kodu określono 2 metody:

  • Metoda canResolveMobileLiveIntent sprawdza, czy urządzenie obsługuje intencję transmisji na żywo z urządzeń mobilnych.
  • Funkcja validateMobileLiveIntent wywołuje metodę canResolveMobileLiveIntent w kontekście instrukcji if-else.
    • Jeśli urządzenie obsługuje ten zamiar, może uruchomić proces transmisji na żywo.
    • Jeśli urządzenie nie obsługuje intencji, może poprosić użytkownika o zainstalowanie lub zaktualizowanie aplikacji 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
  }
}

Krok 2. Uruchom transmisję na żywo

Aby rozpocząć proces transmisji na żywo, aplikacja kliencka tworzy i uruchamia zamiar, jak pokazano w tym przykładzie kodu:

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