Le SDK ApsaraVideo Player pour Android prend en charge la lecture de flux en direct standard aux formats RTMP, FLV et HLS.
Pour plus d'informations sur les fonctionnalités, la référence API et la FAQ, consultez la rubrique SDK ApsaraVideo Player pour Android.
Procédure
Étape 1 : Intégrer le SDK
Pour intégrer le SDK, consultez la rubrique Intégrer le SDK ApsaraVideo Player pour Android.
Étape 2 : Implémenter la lecture de flux en direct
-
Prise en main.
Pour implémenter les fonctionnalités de lecture de base, consultez la rubrique Prise en main.
-
Définissez la source du flux en direct.
Le SDK prend en charge deux méthodes de lecture de flux en direct : UrlSource et la lecture chiffrée.
UrlSource
Pour lire un flux en direct avec la méthode UrlSource, affectez l'URL de diffusion à la propriété
setUrl. L'URL peut provenir d'un tiers ou d'ApsaraVideo Live.Générez les URL de diffusion dans la console ApsaraVideo Live à l'aide du générateur d'URL.
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);Lecture chiffrée
Pour plus d'informations sur la lecture de flux en direct avec chiffrement DRM, consultez la rubrique Lire une vidéo chiffrée.
-
Gérez plusieurs définitions.Changer de définitionNotifications de changement de définition
RemarqueCette fonctionnalité prend en charge les URL de diffusion ApsaraVideo Live pour les flux de qualité originale ou transcodés (transcodage par défaut et personnalisé). Pour plus d'informations, consultez la rubrique Cas d'utilisation.
Elle est compatible avec les flux en direct utilisant le protocole ApsaraVideo Real-Time Communication (ARTC) ou FLV.
Définissez la taille du groupe d'images (GOP) pour l'ingestion de flux sur 1 s ou 2 s. Une taille supérieure peut provoquer des sauts lors du changement de flux.
Pour le domaine de diffusion, activez les options Output RTMP timestamps during FLV playback et Output RTMP timestamps after upstream disconnection. Dans la configuration de transcodage, activez Inherit timestamps from source et Inherit keyframes from source. À défaut, le changement de flux risque de saccader ou d'échouer. Pour activer ces options, soumettez un ticket.
Le basculement vers une URL de diffusion ne respectant pas les exigences précédentes échouera.
Appelez la méthode
switchStreampour changer de définition. Transmettez l'URL correspondant à la nouvelle définition.aliPlayer.switchStream(newUrl);Le lecteur déclenche des rappels en cas de succès ou d'échec du changement de définition.
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()); } });