Conceitos básicos do SDK do reprodutor para Android do IVS
Este documento descreve as etapas envolvidas ao começar a usar o SDK do reprodutor para Android do Amazon IVS.
Instalar a biblioteca
Para adicionar a biblioteca do player para Android do Amazon IVS ao seu ambiente de desenvolvimento do Android, adicione a biblioteca ao seu arquivo build.gradle
do módulo, conforme mostrado aqui (para a versão mais recente do player do Amazon IVS).
repositories { mavenCentral() } dependencies { implementation 'com.amazonaws:ivs-player:1.36.0' }
Como alternativa, para instalar o SDK manualmente, baixe a versão mais recente neste local:
Crie o player e configure o listener de eventos
A interface do player é com.amazonaws.ivs.player.Player
. Inicialize-a como mostrado abaixo:
// Create a player instance // <this> refers to the current Android Activity player = Player.Factory.create(this); // Set up to receive playback events and errors player.addListener(this);
Se preferir, inicialize usando PlayerView
:
// Create a player instance // <this> refers to the current Android Activity PlayerView playerView = new PlayerView(this); Player player = playerView.getPlayer(); // Set up to receive playback events and errors player.addListener(this);
Observação: os métodos de retorno de chamada de listener são executados no thread principal de sua aplicação Android.
Definir a Exibição da superfície para vídeo
Se não estiver usando PlayerView
, adicione um SurfaceView
ao layout da interface do usuário do Android para exibir um vídeo. Esse Surface
deve estar disponível antes de você conseguir reproduzir quaisquer fluxos de vídeo. Você pode acessar a superfície subjacente por meio da interface SurfaceHolder
, que é recuperada chamando getHolder()
. (Consulte Exibição da superfícieSurfaceHolder.Callback
para receber eventos sobre alterações de superfície (consulte SurfaceHolder.Callback
surfaceView = (SurfaceView) findViewById(R.id.surfaceView); surfaceView.getHolder().addCallback(this); @Override public void surfaceCreated(SurfaceHolder holder) { this.surface = holder.getSurface(); if (player != null) { player.setSurface(this.surface); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { this.surface = null; if (player != null) { player.setSurface(null); } }
Reproduzir um stream
Como o fluxo é carregado de forma assíncrona, o player deve estar em um estado READY
antes que sua aplicação possa chamar o método play
para iniciar a reprodução. Usar a interface Player.Listener
para determinar quando o player está no estado correto.
Consulte o seguinte código de exemplo:
player.load(Uri.parse(url)); @Override public void onStateChanged(Player.State state) { switch (state) { case BUFFERING: // player is buffering break; case READY: player.play(); break; case IDLE: break; case PLAYING: // playback started break; } }
Liberar o player
O método player.release()
deverá ser chamado quando o player não estiver mais sendo usado para liberar os recursos usados pela biblioteca. Normalmente, isso é feito no retorno de chamada onDestroy
da atividade ou fragmento que contém o player.
@Override protected void onDestroy() { super.onDestroy(); player.removeListener(this); player.release(); }
Após o método player.release()
ser chamado, o player não pode mais ser usado.
Permissões
O SDK do player do Android necessita da seguinte permissão:
<uses-permission android:name="android.permission.INTERNET" />
Além disso, essas permissões opcionais podem melhorar a experiência de reprodução:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Segurança de thread
A API do player não é um thread seguro. Todas as chamadas feitas para uma instância do reprodutor devem ser da mesma thread.
Tamanho do SDK
Os SDKs do Amazon IVS Player foram projetados para serem o mais leve possível. Para obter informações atuais sobre o tamanho do SDK, consulte as Notas de release.
Importante: ao avaliar o impacto do tamanho, o tamanho do AAB/APK produzido pelo Android Studio não representa o tamanho da aplicação baixada no dispositivo do usuário. A Google Play Store realiza otimizações para reduzir o tamanho de sua aplicação. Recomendamos usar Android App Bundles