Iniciar transmissões ao vivo do YouTube em dispositivos Android

O uso deste SDK foi totalmente suspenso. Ele não é mais compatível nem mantido pelo YouTube. Em vez dela, use a API YouTube Player do IFrame.

O link direto do YouTube para dispositivos móveis permite que os aplicativos para Android iniciem uma transmissão ao vivo do YouTube diretamente de um dispositivo móvel. Um aplicativo só precisa fornecer um ponto de entrada, como um botão em que o usuário possa clicar, que inicie o fluxo do Mobile Live pelo mecanismo de intent do Android.

Exemplo

Esse fluxo mostra a experiência do usuário em um aplicativo com link direto para o aplicativo do YouTube, que leva à tela de configuração da transmissão ao vivo em dispositivos móveis.

  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 até a tela "Miniatura da foto" para definir uma imagem em miniatura para o stream.
  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 serem compatíveis com a transmissão ao vivo do YouTube e com o link direto para dispositivos móveis:

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

Especificação da intent de transmissão ao vivo em dispositivos móveis

Para vincular ao fluxo de transmissão ao vivo do YouTube Mobile, o app Android inicia uma Intent. O intent inicia o processo de transmissão ao vivo iniciando uma Activity no aplicativo do YouTube.

Formato do intent

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

  • 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 lida com 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. Este 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 possibilita a atribuição e a contabilidade precisas.
Intent.EXTRA_SUBJECT Opcional: Este 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 o stream com uma mensagem de marca, como "Transmitido ao vivo do DEVICE".

Como iniciar o fluxo de transmissão ao vivo

Etapa 1: verificar o suporte

Primeiro, seu cliente deve confirmar se a intenção de transmitir ao vivo por dispositivo móvel pode ser iniciada verificando se o aplicativo do YouTube está instalado no dispositivo e se a versão do aplicativo do YouTube suporta transmissão ao vivo. A amostra de código a seguir define dois métodos para fazer isso:

  • O método canResolveMobileLiveIntent verifica se o dispositivo é compatível com o intent ao vivo em dispositivos móveis.
  • O validateMobileLiveIntent chama o método canResolveMobileLiveIntent no contexto de uma instrução if-else.
    • Se o dispositivo for compatível com o intent, ele poderá iniciar o fluxo de transmissão ao vivo.
    • Se o dispositivo não for compatível com o 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 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);
}