Cette rubrique décrit les types de sources vidéo pris en charge par AliPlayerKit et leur utilisation.
Concepts clés
Qu'est-ce qu'une source vidéo ?
Une source vidéo est la source de données pour la lecture vidéo. Elle définit comment une vidéo est récupérée et autorisée.
AliPlayerKit prend en charge trois types de sources vidéo :
|
Type de source vidéo |
Méthode d'autorisation |
Cas d'utilisation |
|
VidAuth |
VID + PlayAuth |
Recommandé pour la plupart des environnements de production. |
|
VidSts |
VID + identifiants temporaires STS |
Scénarios nécessitant un niveau de sécurité élevé. |
|
URL |
URL directe |
Ressources publiques, tests et démonstrations. |
Comment choisir un type de source vidéo
Choisissez un type de source vidéo en fonction de votre scénario métier et de vos exigences de sécurité :
|
Exigence |
Type recommandé |
Description |
|
Nécessite une autorisation |
VidAuth (recommandé) |
Autorisation simple et facile à intégrer. |
|
Exigences de sécurité élevées |
VidSts |
Utilise des identifiants temporaires et prend en charge un contrôle d'accès granulaire. |
|
Ressources vidéo publiques |
URL |
Aucune autorisation requise ; utilisation simplifiée. |
Fonctionnalités
Problèmes résolus
Méthodes de configuration incohérentes selon les types de sources vidéo.
Gestion complexe des identifiants d'autorisation.
Absence de mécanisme de validation unifié pour les sources vidéo.
Difficulté à distinguer les différents types de ressources vidéo.
Valeur ajoutée
|
Fonctionnalité |
Description |
|
Abstraction unifiée |
Tous les types de sources vidéo héritent de la classe de base |
|
Création via une fabrique |
La classe |
|
Sécurité des types |
L'annotation |
|
Validation de la configuration |
La méthode |
Capacités principales
|
Capacité |
Description |
|
Lecture VidAuth |
Autorise la lecture à l'aide d'un ID vidéo (VID) et d'un PlayAuth. |
|
Lecture VidSts |
Autorise la lecture à l'aide d'un VID et d'identifiants temporaires STS. |
|
Lecture via URL |
Lit une vidéo à partir d'une URL directe. |
|
Validation des paramètres |
Valide automatiquement les paramètres requis lors de la création. |
|
Identifiant unique |
Chaque source vidéo possède un MediaId unique, permettant la réutilisation des instances de lecteur depuis un pool. |
Types de sources vidéo
Mode VidAuth (recommandé)
Autorise la lecture à l'aide d'un ID vidéo (VID) et d'un PlayAuth.
Cas d'utilisation :
Ressources vidéo nécessitant une autorisation.
Lecture vidéo dans la plupart des environnements de production.
Scénarios requérant une méthode d'autorisation simple et sécurisée.
Caractéristiques :
Autorisation simple et facile à intégrer.
Offre un niveau de sécurité de base.
Recommandé pour la plupart des scénarios métier.
Paramètres :
|
Paramètre |
Type |
Obligatoire |
Description |
|
vid |
String |
Oui |
ID de la vidéo. |
|
playAuth |
String |
Oui |
PlayAuth. |
Exemple :
// Create a VidAuth-type video source
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"your_video_id", // Video ID
"your_play_auth" // PlayAuth
);
// Create the player model
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();
Mode VidSts
Autorise la lecture à l'aide d'un ID vidéo (VID) et d'un jeton du service Security Token Service (STS) d'Alibaba Cloud, offrant ainsi une sécurité renforcée et un meilleur contrôle d'accès.
Cas d'utilisation :
Scénarios nécessitant des identifiants d'accès temporaires.
Ressources vidéo soumises à des exigences de sécurité élevées.
Scénarios requérant un contrôle d'accès granulaire.
Caractéristiques :
Utilise des identifiants temporaires pour une sécurité accrue.
Prend en charge un contrôle d'accès granulaire.
Adapté aux scénarios nécessitant un haut niveau de sécurité.
Paramètres :
|
Paramètre |
Type |
Obligatoire |
Description |
|
vid |
String |
Oui |
ID de la vidéo. |
|
accessKeyId |
String |
Oui |
ID de la clé d'accès. |
|
accessKeySecret |
String |
Oui |
Clé secrète d'accès. |
|
securityToken |
String |
Oui |
Jeton de sécurité. |
|
region |
String |
Non |
Région. |
Exemple :
// Create a VidSts-type video source
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
"your_video_id", // Video ID
"your_access_key_id", // Access key ID
"your_access_key_secret", // Access key secret
"your_security_token", // Security token
"cn-shanghai" // Region (optional)
);
// Create the player model
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();
Mode URL
Lit une vidéo à partir d'une URL directe. Ce mode convient aux ressources vidéo accessibles publiquement.
Cas d'utilisation :
Ressources vidéo publiques ne nécessitant aucune autorisation.
Scénarios de test et de démonstration.
Besoins simples en matière de lecture vidéo.
Caractéristiques :
Utilisation simplifiée ; seule l'URL de la vidéo est requise.
Aucune autorisation supplémentaire n'est nécessaire.
Niveau de sécurité inférieur ; ne convient pas aux contenus sensibles.
Paramètres :
|
Paramètre |
Type |
Obligatoire |
Description |
|
url |
String |
Oui |
URL de la vidéo. |
Exemple :
// Create a URL-type video source
VideoSource.UrlSource videoSource = VideoSourceFactory.createUrlSource(
"https://example.com/video.mp4"
);
// Create the player model
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();
Utilisation de base
Flux de lecture de base
// 1. Create a video source (VidAuth mode is recommended)
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"your_video_id",
"your_play_auth"
);
// 2. Create the player model
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.coverUrl("https://example.com/cover.jpg")
.videoTitle("Sample Video")
.sceneType(SceneType.VOD)
.autoPlay(true)
.build();
// 3. Create a controller
AliPlayerController controller = new AliPlayerController(this);
// 4. Attach the controller to the player view
controller.configure(model);
playerView.attach(controller);
Changement de sources vidéo
// Before you switch videos, detach the current controller
playerView.detach();
// Create a new video source
VideoSource.VidAuthSource newSource = VideoSourceFactory.createVidAuthSource(
"new_video_id",
"new_play_auth"
);
// Create a new player model
AliPlayerModel newModel = new AliPlayerModel.Builder()
.videoSource(newSource)
.build();
// Create a new controller and attach it
AliPlayerController newController = new AliPlayerController(this);
playerView.attach(newController, newModel);
Utilisation avancée
Validation d'une source vidéo
Avant de configurer le lecteur, appelez la méthode isValid() pour vérifier la configuration de la source vidéo :
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (videoSource.isValid()) {
// The configuration is valid; you can proceed.
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(videoSource)
.build();
playerView.attach(controller, model);
} else {
// The configuration is invalid. Check the parameters.
Log.e(TAG, "Invalid video source configuration");
}
Récupération de l'autorisation depuis votre serveur
Pour éviter d'intégrer en dur des données sensibles, récupérez les informations d'autorisation depuis votre serveur :
// Recommended: Get the PlayAuth from your server
public void playVideo(String videoId) {
// Request the PlayAuth from the server
apiService.getPlayAuth(videoId, new Callback<PlayAuthResponse>() {
@Override
public void onSuccess(PlayAuthResponse response) {
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
videoId,
response.getPlayAuth()
);
// Start playback...
}
@Override
public void onError(Exception e) {
Log.e(TAG, "Failed to get playAuth", e);
}
});
}
Gestion de l'expiration des jetons STS
En mode VidSts, gérez l'expiration des jetons de sécurité :
// Check if the token is about to expire
if (isTokenExpiringSoon(securityToken)) {
// Refresh the token
refreshSecurityToken(new TokenCallback() {
@Override
public void onTokenRefreshed(String newToken) {
// Recreate the video source with the new token
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, newToken, region
);
// Continue playback...
}
});
}
Bonnes pratiques
Choix d'un type de source vidéo
|
Scénario |
Type recommandé |
Raison |
|
Scénarios métier généraux |
VidAuth (recommandé) |
Autorisation simple avec un niveau de sécurité adéquat. |
|
Scénarios à haute sécurité |
VidSts |
Utilise des identifiants temporaires et prend en charge un contrôle d'accès granulaire. |
|
Ressources publiques |
URL |
Aucune autorisation requise ; utilisation simplifiée. |
Recommandations de sécurité
|
Recommandation |
Description |
|
Évitez d'intégrer en dur les informations sensibles |
Évitez d'intégrer en dur des informations sensibles telles que |
|
Récupérez l'autorisation depuis votre serveur |
Récupérez les informations d'autorisation via une API côté serveur et transmettez-les au client. |
|
Actualisez rapidement les identifiants |
Les jetons STS pour VidSts expirent. Actualisez-les rapidement pour éviter tout échec de lecture. |
|
Utilisez HTTPS |
Utilisez HTTPS pour sécuriser les données en transit. |
Gestion des erreurs
Gérez les erreurs lors de la création d'une source vidéo :
try {
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (!videoSource.isValid()) {
// Handle invalid configuration
showError("Invalid video source configuration");
return;
}
// Use the video source
playVideo(videoSource);
} catch (IllegalArgumentException e) {
// Handle parameter errors
Log.e(TAG, "Invalid video source parameters", e);
showError("Parameter error: " + e.getMessage());
}
Exemple de code
Un exemple complet est disponible dans le projet à l'emplacement playerkit-examples/example-video-source.
Fonctionnalités de l'exemple
|
Fonctionnalité |
Description |
|
Lecture via URL |
Démontre la lecture à l'aide d'une URL directe. |
|
Lecture VidAuth |
Démontre la lecture à l'aide de VidAuth. |
|
Lecture VidSts |
Démontre la lecture à l'aide de VidSts. |
Exécution de l'exemple
Dans l'application de démonstration, sélectionnez l'exemple Video Source pour visualiser le résultat.
Référence de l'API
Méthodes VideoSourceFactory
|
Méthode |
Description |
|
|
Crée une source vidéo de type VidAuth (recommandé). |
|
|
Crée une source vidéo de type VidSts. |
|
|
Crée une source vidéo de type URL. |
Méthodes VideoSource
|
Méthode |
Description |
|
|
Récupère le type de la source vidéo. |
|
|
Valide la configuration. |
|
|
Récupère l'identifiant unique. |
|
|
Convertit la source en une map de configuration. |
Constantes SourceType
|
Constante |
Valeur |
Description |
|
|
0 |
Type VidAuth. |
|
|
1 |
Type VidSts. |
|
|
2 |
Type URL. |
Fonctionnement
Règle de génération du MediaId
|
Type de source vidéo |
Format MediaId |
|
VidAuth |
|
|
VidSts |
|
|
URL |
|
Le MediaId permet la réutilisation des instances de lecteur. Les sources vidéo partageant le même MediaId utilisent la même instance de lecteur.
FAQ
Choix d'un type de source vidéo
Pour les contenus nécessitant une autorisation avec des besoins de sécurité standard : Utilisez le mode VidAuth (recommandé).
Pour les contenus exigeant une sécurité élevée et des identifiants d'accès temporaires : Utilisez le mode VidSts.
Pour les vidéos publiques : Utilisez le mode URL.
VidAuth vs VidSts
|
Fonctionnalité |
VidAuth |
VidSts |
|
Méthode d'autorisation |
PlayAuth |
Identifiants temporaires STS |
|
Nombre de paramètres |
2 |
4 à 5 |
|
Niveau de sécurité |
Moyen |
Élevé |
|
Cas d'utilisation |
La plupart des scénarios métier |
Scénarios à haute sécurité |
|
Recommandation |
Recommandé |
Pour des exigences spécifiques |
Gestion des échecs de création
Vérifiez les points suivants :
Vérifiez l'absence de paramètres null ou invalides.
Assurez-vous que le format de l'URL est correct (pour le mode URL).
Vérifiez la validité des informations d'autorisation (pour VidAuth et VidSts).
Vérifiez la stabilité de la connexion réseau.
Erreurs courantes
Erreur 1 : Intégration en dur d'informations sensibles sur le client
Code incorrect :
// Do not hard-code sensitive information in the client
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(
"video_id",
"hardcoded_play_auth_value" // Security risk!
);
Approche correcte :
// Get authorization information from the server
String playAuth = fetchPlayAuthFromServer(videoId);
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(videoId, playAuth);
Erreur 2 : Utilisation d'une source vidéo sans validation
Code incorrect :
// Using without validation
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
playerView.attach(controller, createModel(videoSource)); // The configuration might be invalid
Approche correcte :
// Validate before use
VideoSource.VidAuthSource videoSource = VideoSourceFactory.createVidAuthSource(vid, playAuth);
if (videoSource.isValid()) {
playerView.attach(controller, createModel(videoSource));
} else {
showError("Invalid video source configuration");
}
Erreur 3 : Absence de gestion de l'expiration des jetons STS
Code incorrect :
// Token expiration is not handled
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, expiredToken, region
);
// Playback fails! The token has expired.
Approche correcte :
// Check the token's validity and refresh it if needed
if (isTokenExpired(securityToken)) {
securityToken = refreshToken();
}
VideoSource.VidStsSource videoSource = VideoSourceFactory.createVidStsSource(
vid, accessKeyId, accessKeySecret, securityToken, region
);
Débogage
Consultez les journaux : Filtrez Logcat en utilisant
tag:AliPlayerKit.Appelez toString() : La méthode
toString()de la source vidéo affiche les informations de configuration en masquant les données sensibles.Validez les paramètres : Utilisez la méthode
isValid()pour valider la configuration.Vérifiez le réseau : Assurez-vous que la ressource vidéo est accessible.