Iniciar transmissões ao vivo do YouTube em dispositivos Android

Esse SDK foi totalmente descontinuado. Ele não tem mais suporte nem é mantido pela YouTube Use o botão API do IFrame Player do YouTube.

O link direto do YouTube para a transmissão ao vivo de dispositivo móvel permite que aplicativos Android iniciem uma transmissão ao vivo do YouTube diretamente de um dispositivo móvel. Um app só precisa fornecer um ponto de entrada, como um botão em que o usuário possa clicar, para iniciar o fluxo do Mobile Live pelo mecanismo de intent 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 é direcionado para 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 visão da câmera frontal ou traseira.

Requisitos do dispositivo

Os dispositivos Android precisam atender aos seguintes requisitos para oferecer suporte às transmissões ao vivo do YouTube e ao link direto da transmissão ao vivo de dispositivo móvel:

  • 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 e capacidade de codificar vídeos brutos de 720P para 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 Activity no aplicativo do YouTube.

Formato da intent

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

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

Extras de intents

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

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

Iniciar o fluxo de transmissão ao vivo

Etapa 1: verificar o suporte

Primeiro, o cliente precisa confirmar se a intent para transmitir ao vivo em dispositivos móveis pode ser iniciada. Para isso, verifique se o app YouTube está instalado no dispositivo e se a versão do app YouTube é compatível com a transmissão ao vivo. O exemplo de código a seguir 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 for compatível com a intent, ele poderá iniciar o fluxo de transmissão ao vivo.
    • Se o dispositivo não oferecer suporte à intenção, poderá solicitar que o usuário instale ou faça upgrade do 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, seu app cliente cria e inicia uma intent, conforme mostrado no exemplo de código a seguir:

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