android-youtube-player, uma alternativa de código aberto à API oficial do YouTube Player

Tempo de leitura: 4 minutes

uma breve introdução à API android-youtube-player e por que você pode querer usá-la como um substituto para a API oficial do YouTube Android Player

Você está construindo seu novo aplicativo Android e deseja permitir que seus usuários assistam a vídeos do YouTube nele. A primeira coisa em que você deve pensar é usar a API oficial do YouTube Android Player. Esta não é necessariamente a melhor escolha. Com esta postagem, vou apresentar um player do YouTube de código aberto alternativo que construí (android-youtube-player), explicando alguns dos benefícios que você pode obter ao usá-lo em vez do player oficial.

 

Por que você deve considerar não usar a biblioteca oficial do YouTube?

Se você está preocupado com a estabilidade

A partir de hoje (25/12/2017), a API do Player oficial não é boa. Você provavelmente ficará bem se precisar usar o YouTubeBaseActivity/YouTubeStandalonePlayer, mas você terá problemas com o YouTubePlayerFragment.

A biblioteca tem alguns bugs muito antigos, este é o mais significativo que encontrei. Enquanto desenvolvia meu aplicativo, continuei trabalhando nele, vendo meu aplicativo travar aleatoriamente sem motivo aparente. Isso tornou meu aplicativo instável e nunca ficou pronto para produção.

O bug ainda está lá, pelo que eu sei. Uma nova versão da biblioteca deve estar em construção, mas ainda não foi lançada.

 

Se você não quer ficar preso ao Google Play e ao aplicativo do YouTube

Para funcionar, a API do Player oficial precisa que o dispositivo do usuário tenha o Google Play e o aplicativo do YouTube instalados.

Esta é uma limitação que a API android-youtube-player não possui.

 

Se você quiser mais controle sobre a aparência e o comportamento do jogador

A API oficial do Player não é de código aberto, portanto, a personalização que você pode fazer vai tão longe quanto a API permite. Infelizmente, isso significa: não muito longe.

Talvez você queira alterar a IU do player ou escrever algum comportamento personalizado específico para o seu caso de uso. Isso não é possível com o jogador oficial.

 

Se você não deseja registrar seu aplicativo no Google Developers Console

… Isso é um pouco preguiçoso, mas a API android-youtube-player não exige que você faça isso.

Entre todas essas, a maior preocupação que eu tinha era com a estabilidade da biblioteca. Algum dia o Google provavelmente lançará uma nova versão, resolvendo o problema, mas isso ainda não aconteceu (desde 2013: |). Se, como eu, você precisa lançar seu aplicativo, provavelmente precisa de uma solução mais imediata.

 

A alternativa: API android-youtube-player

A API android-youtube-player fornece uma visualização simples que pode ser facilmente integrada em cada atividade e fragmento.

Nos bastidores, a biblioteca interage com o YouTube por meio da API do IFrame Player, que é executada em um WebView.

Se você quiser usar a interface do usuário da web do reprodutor da web, poderá fazê-lo. Mas você também pode usar a IU nativa personalizável fornecida pela biblioteca. Você pode até construir sua própria IU personalizada do zero.

Como a API usa a API IFrame Player oficial para acessar o YouTube, não há problemas com violações dos termos de serviço.

 

Fácil de usar

android-youtube-player não exige que seus usuários estendam atividades ou fragmentos irritantes, é apenas uma visualização. Você pode soltá-lo onde quiser.

 

IU personalizável

android-youtube-player oferece muita liberdade em termos de personalização da IU. Se desejar, você pode substituir completamente a IU do jogador pela sua própria.

Ou você pode adicionar/remover facilmente as visualizações da IU padrão.

 

Suporte para Chromecast

A partir da versão 8, a API android-youtube-player também pode ser usada para transmitir vídeos de um aplicativo Android para um dispositivo Google Cast.

 

Início rápido – use a biblioteca com apenas algumas linhas de código

Agora vou mostrar um exemplo simples de como começar a usar a biblioteca, com apenas algumas linhas de código.

O código-fonte de alguns outros exemplos está disponível aqui, no aplicativo de amostra. Você também pode baixar o apk do aplicativo de amostra e testá-lo em seu telefone.

 

Primeiros passos

Para usar a API, comece importando a dependência da biblioteca, adicionando esta linha ao build.gradle de nível de módulo.

(substitua “last_version” pelo número real da última versão da biblioteca. As versões lançadas podem ser encontradas aqui)

dependencies {
  implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:last_version'
}

Para começar a usar o player, você precisa adicionar a YouTubePlayerView ao seu layout. Você também pode criá-lo programaticamente, se preferir.

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  
  <com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView
    android:id="@+id/youtube_player_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:videoId="S0Q4gqBUs7c"
    app:autoPlay="true"
    app:showFullScreenButton="false" />
  
</LinearLayout>

Em sua Activity/Fragment, obtenha uma referência para YouTubePlayerView e adicione-a como um observador ao Activity/Fragment’s Lifecycle.

Você precisa usar o androidx em vez das bibliotecas de suporte antigas, caso contrário, você pode encontrar problemas de compatibilidade nesta etapa.

YouTubePlayerView youTubePlayerView = findViewById(R.id.youtube_player_view);
getLifecycle().addObserver(youTubePlayerView);

Isso é tudo que você precisa para começar a reproduzir vídeos do YouTube em seu aplicativo.

Se você quiser mais controle, tudo pode ser feito programaticamente, obtendo uma referência para seu YouTubePlayerView e adicionando um YouTubePlayerListener a ele.

YouTubePlayerView youTubePlayerView = findViewById(R.id.youtube_player_view);
getLifecycle().addObserver(youTubePlayerView);

youTubePlayerView.addYouTubePlayerListener(new AbstractYouTubePlayerListener() {
  @Override
  public void onReady(@NonNull YouTubePlayer youTubePlayer) {
    String videoId = "S0Q4gqBUs7c";
    youTubePlayer.loadVideo(videoId, 0f);
  }
});

Não há maneira mais fácil de reproduzir vídeos do YouTube no Android.

Próximos passos

  1. Visite a página inicial do projeto.
  2. Leia a documentação da API.
  3. Deixe uma estrela no GitHub 🙂

(É uma tradução do Artigo original do Autor, e testada) (Link)