Iniciar transmissões ao vivo do YouTube em dispositivos Android

O link direto do YouTube para a transmissão ao vivo de dispositivo móvel permite que aplicativos para Android iniciem uma transmissão do YouTube ao vivo diretamente de um dispositivo móvel. Um app só precisa fornecer um ponto de entrada, como um botão que o usuário pode clicar, que inicia o fluxo de transmissão ao vivo para dispositivos móveis pelo mecanismo de intenção do Android.

Exemplo

Este fluxo mostra a experiência do usuário em um app com links diretos para o app YouTube, em que o usuário acessa a tela "Configuração da transmissão ao vivo de dispositivo móvel".

  1. Primeiro, o usuário configura a transmissão, definindo o título, o modo de privacidade e outras opções de transmissão.
  2. Em seguida, o usuário navega para a tela Foto em miniatura para definir uma imagem em miniatura para o fluxo.
  3. Por fim, o usuário inicia a transmissão ao vivo e transmite a visualização da câmera frontal ou traseira.

Requisitos do dispositivo

Os dispositivos Android precisam atender aos seguintes requisitos para oferecer suporte adequado ao YouTube ao vivo e ao link direto para transmissões ao vivo em dispositivos móveis:

  • Versão do Android:Marshmallow (API 23) ou mais recente
  • Câmera:pelo menos uma câmera capaz de gravar em 720p com pelo menos 30 Hz
  • Microfone:microfone integrado
  • Codificador de áudio:codificador de áudio com aceleração de hardware e capaz de codificar áudio mono PCM de 8 bits para AAC a 44,1 KHz ou melhor
  • Codificador de vídeo:codificador de vídeo com aceleração de hardware capaz de codificar vídeo bruto 720P em H.264/AVC a 30 Hz ou mais.
  • App YouTube instalado:versão 13.02 ou mais recente

Especificação de intent para transmissões ao vivo em dispositivos móveis

Para vincular o fluxo de transmissão ao vivo do YouTube para dispositivos móveis, seu app Android inicia uma intent. A intent inicia o processo de transmissão ao vivo iniciando uma atividade no app YouTube.

Formato da intent

A intent de transmissão ao vivo para dispositivos móveis usa uma string Action personalizada para navegar até a atividade de criação de transmissão ao vivo no app YouTube. Ela também especifica o nome do pacote para o app YouTube para dispositivos móveis.

  • Ação: "com.google.android.youtube.intent.action.CREATE_LIVE_STREAM"
  • Pacote: "com.google.android.youtube"

Extras de intent

O fluxo de configuração do aplicativo do YouTube processa a configuração do stream. Os extras de intent a seguir definem parâmetros associados à transmissão ao vivo:

Parâmetros
Intent.EXTRA_REFERRER Obrigatório. Esse parâmetro especifica um URI que representa o aplicativo que inicia a atividade de transmissão ao vivo. Esse valor precisa seguir o formato android-app: scheme com um nome de pacote. O valor permite atribuição e contabilidade precisas.
Intent.EXTRA_SUBJECT Opcional. Esse parâmetro fornece uma descrição em texto da transmissão ao vivo. Ele é colocado no pacote de extras de intent como uma String. O valor pode ser usado para anotar a transmissão com uma mensagem da marca, como "Transmitido ao vivo do DISPOSITIVO".

Como iniciar o fluxo de transmissão ao vivo

Etapa 1: verificar o suporte

Primeiro, seu cliente precisa confirmar que a intent de transmissão ao vivo para dispositivos móveis pode ser iniciada verificando se o app YouTube está instalado no dispositivo e se a versão do app YouTube oferece suporte a transmissões ao vivo. O exemplo de código abaixo define dois métodos para fazer isso:

  • O método canResolveMobileLiveIntent verifica se o dispositivo oferece suporte à intent de transmissão ao vivo de dispositivo móvel.
  • O validateMobileLiveIntent chama o método canResolveMobileLiveIntent no contexto de uma instrução if-else.
    • Se o dispositivo oferecer suporte à Intent, ele poderá iniciar o fluxo de transmissão ao vivo.
    • Se o dispositivo não oferecer suporte à intent, ele poderá solicitar que o usuário instale ou atualize o app 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
  }
}

Etapa 2: iniciar a atividade de transmissão ao vivo

Para iniciar o fluxo de transmissão ao vivo, o app cliente cria e inicia uma intent, conforme mostrado no exemplo de código abaixo:

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