Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Player SDK for Web FAQ

Dernière mise à jour :Aug 10, 2026

Solutions aux problèmes courants liés au Player SDK for Web.

Problèmes liés à la licence

Résolvez les problèmes de licence invalide ou expirée dans la FAQ sur les licences.

Problèmes courants toutes plateformes confondues

Problèmes de développement

Changer vid et playauth dans le lecteur HTML5

Appelez la méthode replayByVidAndPlayAuth().

 player.replayByVidAndPlayAuth(newVid, newPlayAuth)

La méthode replayByVidAndPlayAuth déclenche-t-elle l'événement ready ?

Oui. L'événement ready est déclenché une fois que le lecteur a terminé d'initialiser la vidéo et de rendre l'interface utilisateur. À ce stade, vous pouvez appeler des méthodes telles que seek en toute sécurité. Écoutez l'événement comme suit :

player.on('ready', function(){...});

Ajuster la taille et la position du bouton de lecture

  • Remplacez le CSS pour redimensionner le bouton de lecture. Exemple (taille réduite de moitié) :

     .prism-player .prism-big-play-btn {
        width: 45px;
        height: 45px;
        background-size: 128px 256px;
    }
  • Définissez les propriétés x et y de bigPlayButton dans skinLayout pour repositionner le bouton de lecture.

    skinLayout: [
      { name: "bigPlayButton", align: "blabs", x: 30, y: 80 },
      {
        name: "H5Loading",
        align: "cc",
      },
      {
        name: "controlBar",
        align: "blabs",
        x: 0,
        y: 0,
        children: [
          { name: "progress", align: "tlabs", x: 0, y: 0 },
          { name: "playButton", align: "tl", x: 15, y: 26 },
          { name: "timeDisplay", align: "tl", x: 10, y: 24 },
          { name: "fullScreenButton", align: "tr", x: 20, y: 25 },
          { name: "volume", align: "tr", x: 20, y: 25 },
        ],
      },
    ]

Après avoir appelé la méthode seek , comment le lecteur implémente-t-il le bouton pause ?

Le bouton reflète l'état précédent du lecteur. Appelez player.pause() après le déplacement pour afficher le bouton pause.

Définir la position de lecture initiale

Définissez watchStartTime pour spécifier la position de lecture initiale.

new Aliplayer({
  watchStartTime: 60, // Start playback from the 60th second.
})

Référence de l'API Aliplayer.

Activer le plein écran automatique lors de la lecture automatique

Coupez le son de la vidéo, définissez autoplay sur true et appelez fullscreenService.requestFullScreen dans l'écouteur d'événement ready.

var player = new Aliplayer(
  {
    id: "player-con",
    source: "//example.aliyundoc.com/video/media02.mp4",
    width: "100%",
    height: "500px",
    autoplay: true,
    qualitySort: "asc",
    mediaType: "video",
    preload: true,
    isLive: false,
  },
  function (player) {
    player.mute();
    console.log("The player is created");
  }
);
player.on("ready", function () {
  player.fullscreenService.requestFullScreen();
});

Quelle est la différence entre preload: true et preload: false dans Aliplayer ?

preload: true active le préchargement. preload: false désactive le préchargement.

Désactiver le déplacement sur la barre de progression

Définissez disableSeek: true pour empêcher les utilisateurs de faire glisser la barre de progression. Désactiver le glissement de la barre de progression.

Obtenir périodiquement le temps de lecture actuel

Utilisez un minuteur pour appeler player.getCurrentTime() chaque seconde. Arrêtez le minuteur lorsque la lecture est mise en pause, qu'une erreur se produit ou que la lecture se termine.

var timer = null;

timer = setInterval(() => {
  var current = player.getCurrentTime();
  console.log(current);
}, 1000);

// Clear the timer.
function clear() {
  if (timer) {
    clearTimeout(timer);
    timer = null;
  }
}
player.on("ended", function (e) {
  clear();
});
player.on("pause", function (e) {
  clear();
});
player.on("error", function (e) {
  clear();
});

Autres problèmes courants avec Player SDK for Web

  1. **Précision de la méthode seek** : seek accepte les valeurs à virgule flottante (par exemple, 10.5). Pour une meilleure compatibilité, arrondissez à l'entier inférieur ou utilisez moins de décimales.

  2. Reconnexion après la déconnexion d'un flux en direct : Vous pouvez configurer le nombre de tentatives de reconnexion. Si la lecture ne reprend pas après le nombre de tentatives configuré, écoutez l'événement error pour gérer l'échec, par exemple :

    player.on('error', (e) => { var code = String(e.paramData.error_code); })
  3. Clé de licence et fonctionnalité de téléchargement : La clé de licence utilisée pour la lecture n'est pas interchangeable avec la fonctionnalité de téléchargement. Les téléchargements sont générés sur la base des informations de l'application.

  4. La barre de contrôle affiche du texte mais pas d'icônes : Vérifiez que aliplayer-min.css est correctement inclus. N'utilisez pas skinLayoutIgnore et skinLayout ensemble — skinLayoutIgnore est prioritaire et supprime le composant. Définissez une hauteur fixe (400 px ou plus) sur le conteneur du lecteur pour éviter l'effondrement de la mise en page. Vous pouvez également comparer votre configuration avec la démo Vue officielle pour le débogage.

  5. Erreur 537067523 de Player SDK for Flutter pour iOS : Définissez un ID de trace avec FlutterAliplayer.setTraceID pour faciliter le dépannage via les journaux ; mettez à niveau Player SDK for Flutter vers la version 7.14.0 ou ultérieure, qui optimise la bibliothèque réseau ; si vous n'utilisez pas Alibaba Cloud CDN, contactez votre fournisseur CDN pour vérifier les journaux de requêtes.

Comment vérifier et mettre à niveau la version de Player SDK for Web ?

  1. Vérifier la version : Consultez le fichier aliplayer-min.js inclus dans votre projet, ou le champ version dans sa configuration.

  2. Mettre à niveau la version (selon la demande) : Modifiez la variable de version à la ligne 30 de chacun des fichiers de pack de langue suivants : language.SC_UTF8.php, language.SC_GBK.php, language.TC_UTF8.php, language.TC_BIG5.php. Mettez à jour les 4 fichiers avec le nouveau numéro de version (par exemple, de 2.27.1 à 2.37.8).

Remarque

En attente de confirmation (nécessite une validation avant finalisation) : les étapes de mise à niveau ci-dessus sont spécifiques à une intégration de site/CMS particulière, et non à la procédure standard de mise à niveau de Player SDK for Web (l'approche standard consiste à mettre à jour la version référencée dans le lien CDN aliplayer-min.js/aliplayer-min.css ou le package npm). Veuillez confirmer s'il faut : (a) conserver ce contenu tel quel et le limiter explicitement à cette intégration, (b) le remplacer par les étapes de mise à niveau standard, ou (c) inclure les deux.

Problèmes de lecture et erreurs

Échec de la lecture des vidéos encodées en H.265

Player SDK for Web 2.14.0+ prend en charge les vidéos encodées en H.265. Vous devez obtenir une licence et configurer les paramètres H.265. Lire des flux vidéo encodés en H.265/H.266.

Erreur cross-origin lors de la lecture de fichiers FLV ou M3U8

Si vous voyez des erreurs « Access is denied for this document » ou « Access-Control-Allow-Origin », activez l'accès cross-origin pour votre domaine de lecture. Configurer l'accès cross-origin.

Le lecteur HTML5 ne peut pas passer en mode paysage

Le SDK du lecteur ne fournit pas d'API pour le mode paysage. Sur iOS, le mode paysage dépend des paramètres d'orientation du système. Sur Android, le lecteur passe automatiquement en mode paysage en mode plein écran.

En-tête Referer manquant dans les requêtes de lecture FLV

  1. Les requêtes du lecteur suivent la Referrer-Policy de votre site web. Assurez-vous que votre Referrer-Policy autorise les requêtes vidéo à inclure un en-tête Referer.

  2. Si la Referrer-Policy autorise un en-tête Referer mais qu'il est absent des requêtes vidéo, la liste de contrôle d'accès (ACL) basée sur le Referer peut bloquer la lecture. Définissez enableWorker: false pour résoudre ce problème.

Supprimer les bandes noires de la fenêtre du lecteur

Des bandes noires apparaissent lorsque la vidéo ne remplit pas entièrement la fenêtre du lecteur.FAQ

Les bandes noires correspondent à l'arrière-plan du conteneur du lecteur. Appliquez object-fit: cover; à la balise <video> pour les supprimer.

Remarque

Cette propriété peut rogner le cadre vidéo. Consultez la documentation CSS object-fit pour connaître les effets visuels.

L'initialisation d'AliPlayer échoue avec TypeError: Failed to execute 'getComputedStyle' on 'Window'

Cause : Lors de l'initialisation du composant controlBar.volume, la méthode interne _getBottom() récupère un élément DOM qui est null ou n'est pas un Element (généralement parce que le conteneur n'a pas fini de s'afficher). L'appel de getComputedStyle sur cette valeur provoque une erreur et bloque le reste de l'initialisation.

Solution 1 (recommandée) : Mettez à niveau Player SDK for Web vers la version 2.37.8 ou ultérieure, qui corrige ce problème de compatibilité.

Solution 2 (solution de contournement) : Ajoutez skinLayoutIgnore: ["controlBar.volume"] à la configuration du lecteur pour ignorer l'initialisation du contrôle du volume. Si vous devez conserver le contrôle du volume, vérifiez que l'élément conteneur existe et que son offsetWidth est supérieur à 0 avant d'initialiser le lecteur ; sinon, retardez l'initialisation de 200 ms et réessayez.

loadByUrl ne fonctionne pas sur iOS et Android

// `seek` only jumps to the time, but does not play.
// `play` restarts playback from the beginning on iOS.
// On iOS, full-screen playback is hijacked by the native player.

document.querySelector(".no1").onclick = function () {
  player.loadByUrl("//player.alicdn.com/resource/player/qupai.mp4");
};

// Listen for 'play' and 'canplay' events to call seek. This might not work in some browsers. As an alternative, consider calling seek on the first 'timeupdate' event.
player.on("canplay", function () {
  player.seek(20);
});
// No workaround is available for full-screen hijacking on iOS.

La vidéo précédente continue de jouer après le changement de source vidéo

Dans Player SDK for Web 2.9.11, loadByUrl échoue en mode de compatibilité du navigateur 360 sur Windows 10. La vidéo précédente continue de jouer après le changement de source.

Cause : problème de compatibilité du navigateur.

Solution : mettez à niveau vers Player SDK for Web 2.9.19 ou ultérieur.

La méthode player.seek() échoue sur iOS

Appelez player.seek() dans l'écouteur d'événement play ou canplay. Sinon, l'appel peut ne pas prendre effet.

// Call seek in the `play` and `canplay` events. Otherwise, it may not take effect.
player.on("canplay", function () {
  player.seek(20);
});

Rattraper le direct après la reprise d'un flux

Description du problème

Si vous basculez votre application en arrière-plan pendant la lecture d'un flux en direct, la lecture est mise en pause. Lorsque vous revenez à l'application, le flux en direct continue de jouer à partir du moment où la pause s'est produite. Existe-t-il une configuration permettant de réduire la latence de lecture afin que le dernier clip puisse être lu après la reprise de la lecture ?

Solution

Après la reprise de la lecture, le flux en direct continue de jouer à partir du moment où la pause s'est produite. Vous ne pouvez pas configurer de paramètres pour accélérer la lecture. Nous vous recommandons de récupérer à nouveau le flux en direct, puis d'utiliser le lecteur pour le lire à nouveau.

Utiliser Player SDK for Web dans les mini-programmes WeChat

Player SDK for Web ne s'exécute pas dans les mini-programmes WeChat. Utilisez plutôt le composant vidéo intégré du mini-programme. Mini-programme WeChat.

L'extraction de flux cross-origin échoue pour un flux en direct

Si la validation cross-origin locale échoue, vérifiez votre configuration de Gestion des domaines. Les requêtes provenant de localhost échouent si seul votre propre domaine est configuré. Par défaut, localhost passe la validation lorsqu'aucun domaine n'est configuré.

Échec de la lecture des vidéos VOD sur iOS

Cause possible : Safari sur iOS peut échouer à décoder les vidéos ayant un taux de compression élevé ou un profil d'encodage high.

Solution : Transcodez la vidéo avant la lecture. Transcodage audio et vidéo.

Échec de la lecture vidéo sur certains ordinateurs avec le code d'erreur 4400

Le code d'erreur 4400 indique que la ressource ne peut pas être chargée en raison de problèmes de serveur ou de réseau, ou d'un format non pris en charge. Vérifiez si un certificat SSL est configuré.

Problèmes spécifiques à la plateforme

Supprimer la vignette par défaut dans WebView

Sur certains WebViews Android, l'omission de l'attribut poster sur la balise <video> entraîne l'apparition d'une vignette par défaut (arrière-plan gris avec un bouton de lecture).

Solution : Définissez un attribut poster invalide sur la balise <video> pour remplacer la valeur par défaut.

extraInfo: { poster: 'noposter' } // The content of the player parameter `extraInfo` is passed to the <video> tag.

Activer le mode de document le plus élevé dans IE

Pour les versions d'Internet Explorer antérieures à IE 10, activez le mode de document le plus élevé disponible.

<meta http-equiv="x-ua-compatible" content="IE=edge" >

Activer la lecture automatique dans WeChat

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
function autoPlay() {            
  wx.config({
      // Configuration details. wx.ready can be used even if the details are incorrect.
      debug: false,
      appId: '',
      timestamp: 1,
      nonceStr: '',
      signature: '',
      jsApiList: []
  });
  wx.ready(function() {
      var video=$(player.el()).find('video')[0];
      video.play();
  });
};
// Workaround for autoplay issue on iOS.
autoPlay();
</script>

Interception de la lecture vidéo par le navigateur

L'interception par le navigateur se produit lorsque le lecteur natif du navigateur remplace l'élément <video> du Player SDK et bloque les modifications JavaScript ou CSS. Les symptômes incluent un style inattendu, des fonctionnalités de lecteur défectueuses, des éléments d'interface utilisateur ou des publicités supplémentaires, et une lecture en plein écran forcée.

Cela se produit généralement dans les navigateurs mobiles tels que WeChat, UC Browser et QQ Browser.

Échec des commentaires bullet en mode plein écran sur iOS

Symptôme : Sur les appareils iOS, les commentaires bullet fonctionnent correctement pendant la lecture standard mais disparaissent en mode plein écran.

Solution : L'interface utilisateur native d'iOS prend le contrôle de l'élément <video> au niveau le plus élevé, bloquant les superpositions telles que les commentaires bullet. Comme solution de contournement, définissez la hauteur et la largeur du conteneur du lecteur pour remplir tout l'écran afin de simuler le mode plein écran tout en maintenant les commentaires bullet fonctionnels.