Lancement de diffusions en direct YouTube sur les appareils Android

Le lien profond YouTube Mobile Live permet aux applications Android de lancer une diffusion en direct YouTube directement depuis un appareil mobile. Une application n'a besoin que d'un point d'entrée, tel qu'un bouton sur lequel l'utilisateur peut cliquer, pour lancer le flux de diffusion en direct sur mobile via le mécanisme d'intent Android.

Exemple

Ce flux montre l'expérience utilisateur d'une application qui utilise des liens profonds vers l'application YouTube, où l'utilisateur accède à l'écran de configuration de la diffusion en direct sur mobile.

  1. Tout d'abord, l'utilisateur configure le flux, en définissant le titre, le mode de confidentialité et d'autres options de diffusion.
  2. L'utilisateur accède ensuite à l'écran "Photo miniature" pour définir une image miniature pour le flux.
  3. Enfin, l'utilisateur lance la diffusion en direct et diffuse la vue de la caméra avant ou arrière.

Configuration requise pour l'appareil

Les appareils Android doivent respecter les conditions suivantes pour être compatibles avec les diffusions en direct YouTube et le lien profond vers les diffusions en direct sur mobile:

  • Version d'Android:Marshmallow (API 23) ou version ultérieure
  • Caméra:au moins une caméra capable d'enregistrer en 720p à au moins 30 Hz
  • Microphone:micro intégré
  • Encodeur audio:encodeur audio avec accélération matérielle capable d'encoder des fichiers audio PCM 8 bits mono vers AAC à 44,1 kHz ou plus
  • Encodeur vidéo:encodeur vidéo avec accélération matérielle capable d'encoder la vidéo brute 720p au format H.264/AVC à 30 Hz ou mieux
  • Application YouTube installée:version 13.02 ou ultérieure

Spécification de l'intent Mobile Live

Pour s'intégrer au flux de diffusion en direct YouTube sur mobile, votre application Android lance un intent. L'intent lance le processus de diffusion en direct en démarrant une activité dans l'application YouTube.

Format de l'intent

L'intent Mobile Live utilise une chaîne Action personnalisée pour accéder à l'activité de création de direct dans l'application YouTube. Il spécifie également le nom du package de l'application mobile YouTube.

  • Action : "com.google.android.youtube.intent.action.CREATE_LIVE_STREAM"
  • Package : "com.google.android.youtube"

Éléments supplémentaires de l'intent

Le processus de configuration de l'application YouTube gère la configuration du flux. Les extras d'intent suivants définissent les paramètres associés à la diffusion en direct:

Paramètres
Intent.EXTRA_REFERRER Obligatoire. Ce paramètre spécifie un URI qui représente l'application qui lance l'activité de diffusion en direct. Cette valeur doit respecter le format android-app: scheme avec un nom de package. Cette valeur permet d'effectuer une attribution et une comptabilité précises.
IntentionEXTRA_SUBJECT Facultatif. Ce paramètre fournit une description textuelle de la diffusion en direct. Il est placé dans le bundle d'extras d'intents en tant que chaîne. Cette valeur peut être utilisée pour annoter le flux avec un message de marque, tel que "Diffusé en direct depuis DEVICE".

Lancer le flux de diffusion en direct

Étape 1: Vérifiez la prise en charge

Votre client doit d'abord confirmer que l'intent en direct sur mobile peut être lancé en vérifiant que l'application YouTube est installée sur l'appareil et que la version de l'application YouTube est compatible avec la diffusion en direct. L'exemple de code suivant définit deux méthodes pour ce faire:

  • La méthode canResolveMobileLiveIntent vérifie que l'appareil est compatible avec l'intent Mobile Live.
  • validateMobileLiveIntent appelle la méthode canResolveMobileLiveIntent dans le contexte d'une instruction if-else.
    • Si l'appareil est compatible avec l'intent, il peut lancer le flux de diffusion en direct.
    • Si l'appareil n'est pas compatible avec l'intent, il peut inviter l'utilisateur à installer ou à mettre à niveau l'application 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
  }
}

Étape 2: Lancez l'activité de diffusion en direct

Pour lancer le flux de streaming en direct, votre application cliente crée et lance un intent, comme indiqué dans l'exemple de code suivant:

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