Cette rubrique explique comment démarrer la lecture vidéo à l’aide du SDK ApsaraVideo Player pour Android.
Prérequis
Vous avez effectué l’intégration du SDK pour ApsaraVideo Player sur Android.
Exemple de projet open source
Pour des exemples de code détaillés, consultez le module BasicPlayback dans API-Example. Cet exemple de projet est une application Android basée sur Java pour le SDK ApsaraVideo Player. Il vous aide à intégrer rapidement les fonctionnalités principales du SDK.
Procédure
Étape 1 : Créer le lecteur
Créez une instance AliPlayer à l’aide de la classe AliPlayerFactory.
// Create a player instance.
AliPlayer mAliPlayer = AliPlayerFactory.createAliPlayer(context);
// Pass the traceId.
// Optional: Use the Tracing Analysis feature. If an exception occurs during video playback with the ApsaraVideo Player SDK, this feature performs end-to-end tracing of abnormal playback for a specific user or session. This helps you quickly diagnose issues and improve playback experience administration.
// Define the traceId value. It must be a unique identifier for your user or device, such as your business's user ID, or a device ID like an International Mobile Equipment Identity (IMEI) or identifier for advertisers (IDFA).
mAliPlayer.setTraceId("traceId");
Les fonctionnalités de surveillance de la qualité de lecture, d’analyse de traçage et de statistiques de lecture vidéo du lecteur reposent sur la remontée des journaux d’instrumentation. La surveillance de la qualité de lecture fournit des données sur la qualité globale de la lecture. L’analyse de traçage permet de localiser des utilisateurs ou des appareils spécifiques, d’analyser leur comportement de lecture et d’identifier rapidement les problèmes, tels que les erreurs de lecture.
Lorsque vous créez le lecteur, les fonctionnalités disponibles dépendent de la configuration du paramètre setTraceId :
Si vous ne définissez pas le paramètre
setTraceId(par défaut) : la remontée des journaux d’instrumentation est activée. Vous pouvez alors utiliser les fonctionnalités de surveillance de la qualité de lecture et de statistiques de lecture vidéo. La fonctionnalité d’analyse de traçage n’est pas disponible.Si vous définissez le paramètre
setTraceIdavec un traceId : la valeur traceId est définie par l’utilisateur et doit constituer un identifiant unique pour votre utilisateur ou votre appareil, tel que l’identifiant utilisateur de votre entreprise ou un identifiant d’appareil comme l’International Mobile Equipment Identity (IMEI) ou l’identifier for advertisers (IDFA). Après avoir défini le traceId, la remontée des journaux d’instrumentation est activée. Vous pouvez alors utiliser les fonctionnalités de surveillance de la qualité de lecture, d’analyse de traçage et de statistiques de lecture vidéo.Si vous définissez le paramètre
setTraceIdsurDisableAnalytics: la remontée des journaux d’instrumentation est désactivée. Les fonctionnalités de surveillance de la qualité de lecture, d’analyse de traçage et de statistiques de lecture vidéo ne sont pas disponibles.
Étape 2 : Définir la vue d’affichage
Le lecteur prend en charge trois types de vues : AliDisplayView, SurfaceView et TextureView.
AliDisplayView : composant de vue unifié encapsulé par le SDK. Il fournit des interfaces standardisées et est prêt à l’emploi. Cette vue convient aux intégrations rapides et aux scénarios d’interface utilisateur simples.
SurfaceView / TextureView : vues natives. La couche applicative peut gérer intégralement le cycle de vie de la vue et la logique de rendu. Ces vues conviennent aux hiérarchies de vues complexes ou aux scénarios nécessitant un contrôle précis et une plus grande flexibilité.
-
Déclarez la vue dans le fichier XML.
AliDisplayView
<!-- Player rendering view --> <com.aliyun.player.videoview.AliDisplayView android:id="@+id/ali_display_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />SurfaceView
<!-- Player rendering view --> <SurfaceView android:id="@+id/surface_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" />TextureView
<!-- Player rendering view --> <TextureView android:id="@+id/texture_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" /> -
Définissez la vue d’affichage.
AliDisplayView
Appelez la méthode
setDisplayViewdu lecteur pour associer la vue.AliDisplayView mAliDisplayView = findViewById(R.id.display_view); // Set the player view type using setPreferDisplayView(). mAliDisplayView.setPreferDisplayView(AliDisplayView.DisplayViewType.SurfaceView); mAliPlayer.setDisplayView(mAliDisplayView);SurfaceView
Appelez la méthode
setSurfacedu lecteur pour associer la vue.SurfaceView mSurfaceView = findViewById(R.id.surface_view); mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(holder.getSurface()); } @Override public void surfaceChanged(@NonNull SurfaceHolder holder, int format, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public void surfaceDestroyed(@NonNull SurfaceHolder holder) { mAliPlayer.setSurface(null) } });TextureView
Appelez la méthode
setSurfacedu lecteur pour associer la vue.TextureView mTextureView = findViewById(R.id.texture_view); mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.setSurface(new Surface(surface)); } @Override public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surface, int width, int height) { mAliPlayer.surfaceChanged(); } @Override public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) { mAliPlayer.setSurface(null); return true; } @Override public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) { } });
Étape 3 : Définir la source de lecture
Lecture VidAuth (recommandée)
VidAuth vidAuth = new VidAuth();
vidAuth.setVid("Your Vid");// Required. The video ID (VideoId).
vidAuth.setPlayAuth("<yourPlayAuth>");// Required. The playback credential. Call the GetVideoPlayAuth operation of ApsaraVideo VOD to generate the credential.
vidAuth.setRegion("The region ID");// For ApsaraVideo Player SDK V5.5.5.0 and later, this parameter is deprecated. You do not need to set the region because the player automatically parses it. For versions earlier than V5.5.5.0, this parameter is required. It specifies the region where ApsaraVideo VOD is activated. The default value is cn-shanghai.
// vidAuth.setAuthTimeout(3600); // The validity period of the playback URL, in seconds. This value overwrites the validity period for URL signing that is set in the ApsaraVideo VOD console. If you do not pass this parameter, the default value 3600 is used. If you set this parameter, make sure that the period is longer than the video duration to prevent the playback URL from expiring before playback is complete.
mAliPlayer.setDataSource(vidAuth);
Lecture VidSts
VidSts vidSts = new VidSts();
vidSts.setVid("Your Vid");// Required. The video ID (VideoId).
vidSts.setAccessKeyId("<yourAccessKeyId>");// Required. The AccessKey ID of the temporary AccessKey pair. Call the AssumeRole operation of Security Token Service (STS) to generate it.
vidSts.setAccessKeySecret("<yourAccessKeySecret>");// Required. The AccessKey secret of the temporary AccessKey pair. Call the AssumeRole operation of STS to generate it.
vidSts.setSecurityToken("<yourSecurityToken>");// Required. The STS token. Call the AssumeRole operation of STS to generate it.
vidSts.setRegion("The region ID");// Required. The region where ApsaraVideo VOD is activated. The default value is cn-shanghai.
mAliPlayer.setDataSource(vidSts);
Lecture UrlSource
// Create a playback source object and set the playback URL.
UrlSource urlSource = new UrlSource();
// Required. The playback URL. It can be a third-party video-on-demand (VOD) URL, a playback URL from ApsaraVideo VOD, or a local video URL.
urlSource.setUri("The playback URL");
mAliPlayer.setDataSource(urlSource);
Pour plus d’informations sur la configuration de la source de lecture, consultez les fonctionnalités de base.
Étape 4 : Démarrer la lecture
// Prepare for playback.
mAliPlayer.prepare();
// Start playback.
mAliPlayer.start();
Étape 5 : Terminer la lecture
// Stop playback.
mAliPlayer.stop();
// Destroy the player.
mAliPlayer.release();
// Clear the reference to avoid a memory leak.
mAliPlayer = null;
Références
Pour plus d’informations sur les fonctionnalités de base du lecteur, telles que le contrôle de la lecture et les écouteurs d’événements, consultez les fonctionnalités de base.