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

Precyzyjny link do transmisji na żywo w YouTube na komórki umożliwia aplikacjom na Androida uruchamianie transmisji na żywo w YouTube bezpośrednio z urządzenia mobilnego. Aplikacja musi tylko udostępniać punkt wejścia, np. przycisk, który użytkownik może kliknąć, aby uruchomić proces transmisji na żywo na urządzeniu mobilnym za pomocą mechanizmu Android Intent.

Przykład

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

  1. Najpierw użytkownik konfiguruje transmisję, ustawiając tytuł, tryb prywatności i inne opcje transmisji.
  2. Następnie użytkownik przechodzi do ekranu Zdjęcie miniatury, aby ustawić obraz miniatury dla transmisji.
  3. Na koniec użytkownik rozpoczyna transmisję na żywo i nadaje obraz z przedniego lub tylnego aparatu.

Wymagania dotyczące urządzeń

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

  • Wersja Androida: Marshmallow (API 23) lub nowsza
  • Aparat: co najmniej 1 aparat umożliwiający nagrywanie w rozdzielczości 720p z częstotliwością co najmniej 30 Hz.
  • Mikrofon: wbudowany mikrofon
  • Koder audio: akcelerowany sprzętowo koder audio, który może kodować 8-bitowy dźwięk mono PCM do formatu AAC z częstotliwością próbkowania 44,1 kHz lub większą.
  • Koder wideo: akcelerowany sprzętowo koder wideo, który umożliwia kodowanie surowego wideo w rozdzielczości 720p do formatu H.264/AVC z częstotliwością 30 Hz lub większą.
  • Zainstalowana aplikacja YouTube: wersja 13.02 lub nowsza

Specyfikacja intencji transmisji na żywo z urządzeń mobilnych

Aby połączyć się z procesem transmisji na żywo w YouTube na komórki, aplikacja na Androida uruchamia Intent. Intencja rozpoczyna proces transmisji na żywo, uruchamiając aktywność w aplikacji YouTube.

Format intencji

Intencja Mobile Live używa niestandardowego ciągu Action do przechodzenia do aktywności tworzenia transmisji na żywo w aplikacji YouTube. Określa też nazwę pakietu aplikacji mobilnej YouTube.

  • Akcja:com.google.android.youtube.intent.action.CREATE_LIVE_STREAM
  • Pakiet:com.google.android.youtube

Dodatki do intencji

Proces konfiguracji aplikacji YouTube obsługuje konfigurację strumienia. Te dodatkowe informacje o intencji ustawiają parametry powiązane z transmisją na żywo:

Parametry
Intent.EXTRA_REFERRER Wymagany. Ten parametr określa identyfikator URI reprezentujący aplikację uruchamiającą aktywność transmisji na żywo. Ta wartość musi być zgodna z formatem android-app: scheme i zawierać nazwę pakietu. Wartość ta umożliwia dokładną atrybucję i rozliczanie.
Intent.EXTRA_SUBJECT Opcjonalnie. Ten parametr zawiera tekstowy opis transmisji na żywo. Jest on umieszczany w pakiecie dodatków do intencji jako ciąg znaków. Wartość może służyć do dodawania do strumienia wiadomości z logo marki, np. „Transmisja na żywo z URZĄDZENIA”.

Uruchamianie procesu transmisji na żywo

Krok 1. Sprawdź, czy urządzenie jest obsługiwane

Klient powinien najpierw potwierdzić, że można uruchomić intencję Mobile Live, sprawdzając, czy na urządzeniu jest zainstalowana aplikacja YouTube i czy jej wersja obsługuje transmisje na żywo. Poniższy przykładowy kod definiuje 2 metody, które to umożliwiają:

  • 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 intencję, może uruchomić proces transmisji na żywo.
    • Jeśli urządzenie nie obsługuje intencji, może wyświetlić prośbę 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
  }
}

Aplikacje kierowane na Androida 11 (poziom API 30) lub nowszego muszą zadeklarować wymagania dotyczące widoczności pakietu w pliku AndroidManifest.xml, aby PackageManager mogła wysyłać zapytania do aplikacji YouTube:

<queries>
  <package android:name="com.google.android.youtube" />
  <intent>
    <action android:name="com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" />
  </intent>
</queries>

Krok 2. Uruchom aktywność transmisji na żywo

Aby rozpocząć proces transmisji na żywo, aplikacja kliencka tworzy i uruchamia Intent, jak pokazano w tym przykładowym kodzie:

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