O ApsaraVideo Player SDK for Android permite reproduzir streams ao vivo padrão em formatos como RTMP, FLV e HLS.
Para obter mais informações sobre recursos, referência de API e perguntas frequentes, consulte ApsaraVideo Player SDK for Android.
Procedimento
Etapa 1: Integrar o SDK
Para integrar o SDK, consulte Integrate ApsaraVideo Player SDK for Android.
Etapa 2: Implementar a reprodução de streaming ao vivo
-
Introdução.
Para implementar os recursos básicos de reprodução, consulte Getting started.
-
Defina a source do stream ao vivo.
O SDK oferece suporte a dois métodos de reprodução de streaming ao vivo: UrlSource e reprodução criptografada.
UrlSource
Para reproduzir um stream ao vivo com o método UrlSource, defina a propriedade setUrl como a URL de streaming. Essa URL pode ser de terceiros ou proveniente do ApsaraVideo Live.
Gere URLs de streaming no console do ApsaraVideo Live utilizando o URL generator.
UrlSource urlSource = new UrlSource(); urlSource.setUri("Playback URL");// The streaming URL. It can be a third-party streaming URL or a streaming URL from ApsaraVideo Live. aliPlayer.setDataSource(urlSource);Reprodução criptografada
Para mais detalhes sobre a reprodução de streaming ao vivo com criptografia DRM, consulte Play an encrypted video.
-
Configure múltiplas definições.Trocar definiçõesNotificações de troca de definição
NotaEste recurso aceita URLs de streaming do ApsaraVideo Live para qualidade original ou streams transcodificados. Há suporte para transcodificação padrão e personalizada. Para saber mais, consulte Use cases.
Esse recurso está disponível para streams ao vivo que utilizam o protocolo ApsaraVideo Real-Time Communication (ARTC) ou FLV.
Defina o tamanho do group of pictures (GOP) na ingestão de stream como 1s ou 2s. Valores maiores podem causar saltos durante a troca de streams.
No domínio de streaming, ative as opções Output RTMP timestamps during FLV playback e Output RTMP timestamps after upstream disconnection. Na configuração de transcodificação, ative Inherit timestamps from source e Inherit keyframes from source. Caso contrário, a troca de stream poderá apresentar falhas ou travamentos. Para ativar essas opções, envie um ticket.
A troca para uma URL de streaming que não atenda aos requisitos anteriores falhará.
Chame o método
switchStreampara alterar a definição. Passe a URL correspondente à nova definição desejada.aliPlayer.switchStream(newUrl);O player retorna callbacks indicando sucesso ou falha na troca de definição.
aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() { @Override public void onSwitchedSuccess(String url) { Log.i("SwitchStream", "switch success, url = " + url); } @Override public void onSwitchedFail(String url, ErrorInfo errorInfo) { Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg()); } });