Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Prise en charge de plusieurs sources vidéo

Dernière mise à jour :Sep 11, 2026

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 VideoSource, offrant ainsi une interface unifiée.

Création via une fabrique

La classe VideoSourceFactory simplifie le processus de création et valide automatiquement les paramètres.

Sécurité des types

L'annotation @SourceType garantit la sécurité des types.

Validation de la configuration

La méthode isValid() permet de vérifier la validité de la configuration.

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 playAuth et accessKeySecret sur le client.

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

createVidAuthSource(vid, playAuth)

Crée une source vidéo de type VidAuth (recommandé).

createVidStsSource(vid, accessKeyId, accessKeySecret, securityToken, region)

Crée une source vidéo de type VidSts.

createUrlSource(url)

Crée une source vidéo de type URL.

Méthodes VideoSource

Méthode

Description

getSourceType()

Récupère le type de la source vidéo.

isValid()

Valide la configuration.

getMediaId()

Récupère l'identifiant unique.

toMap()

Convertit la source en une map de configuration.

Constantes SourceType

Constante

Valeur

Description

VID_AUTH

0

Type VidAuth.

VID_STS

1

Type VidSts.

URL

2

Type URL.

Fonctionnement

Règle de génération du MediaId

Type de source vidéo

Format MediaId

VidAuth

vidauth:{vid}

VidSts

vidsts:{vid}

URL

url:{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 :

  1. Vérifiez l'absence de paramètres null ou invalides.

  2. Assurez-vous que le format de l'URL est correct (pour le mode URL).

  3. Vérifiez la validité des informations d'autorisation (pour VidAuth et VidSts).

  4. 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

  1. Consultez les journaux : Filtrez Logcat en utilisant tag:AliPlayerKit.

  2. Appelez toString() : La méthode toString() de la source vidéo affiche les informations de configuration en masquant les données sensibles.

  3. Validez les paramètres : Utilisez la méthode isValid() pour valider la configuration.

  4. Vérifiez le réseau : Assurez-vous que la ressource vidéo est accessible.