Démarrage avec le kit SDK du lecteur Web d’IVS
Ce document vous présente les étapes à suivre pour commencer à utiliser le kit SDK du lecteur Web d’Amazon IVS.
Nous fournissons un support via une balise script
, ainsi que via un module npm.
Démonstrations
La démo en direct suivante montre comment utiliser le lecteur Web avec une balise script
de notre réseau de diffusion de contenu : exemple pour le lecteur Amazon IVS
Consultez également https://github.com/aws-samples/amazon-ivs-player-web-sample
Configuration avec la balise de script
Pour configurer le lecteur Amazon IVS à l’aide de la balise script
:
-
Incluez la balise suivante (pour la dernière version du lecteur).
<script src="https://player.live-video.net/1.35.0/amazon-ivs-player.min.js"></script>
-
Une fois
amazon-ivs-player.min.js
chargé, il ajoute une variableIVSPlayer
au contexte global. Il s’agit de la bibliothèque que vous allez utiliser pour créer une instance du lecteur. Tout d’abord, vérifiezisPlayerSupported
pour déterminer si le navigateur prend en charge le lecteur IVS :if (IVSPlayer.isPlayerSupported) { ... }
Ensuite, pour créer une instance du lecteur, appelez la fonction
create
sur l’objetIVSPlayer
.const player = IVSPlayer.create();
Le kit SDK du lecteur Web Amazon IVS utilise des travailleurs web pour optimiser la lecture vidéo.
-
Chargez et lisez un flux à l’aide des fonctions
load
etplay
sur l’instance du lecteur :player.load("PLAYBACK_URL"); player.play();
où
PLAYBACK_URL
est l’URL renvoyée par l’API Amazon IVS lorsqu’une clé de flux est demandée.
Exemple de code
Dans cet exemple, remplacez PLAYBACK_URL
avec le flux source d’URL que vous souhaitez charger. L’exemple utilise la dernière version du lecteur Amazon IVS.
<script src="https://player.live-video.net/1.35.0/amazon-ivs-player.min.js"></script> <video id="video-player" playsinline></video> <script> if (IVSPlayer.isPlayerSupported) { const player = IVSPlayer.create(); player.attachHTMLVideoElement(document.getElementById('video-player')); player.load("PLAYBACK_URL"); player.play(); } </script>
Dans la balise <video>
, playsinline
est nécessaire pour la lecture en ligne sur iOS Safari. Voir https://webkit.org/blog/6784/new-video-policies-for-ios/
Configuration avec NPM
Pour obtenir des conseils, y compris un exemple de fichier de configuration Webpack, consultez le référentiel suivant : https://github.com/aws-samples/amazon-ivs-player-web-sample
Remarque : lorsque vous hébergez des ressources de lecteur statiques à partir de votre propre domaine, vous devez définir l’en-tête de réponse « Content-Type » pour le binaire WebAssembly (amazon-ivs-wasmworker.min.wasm
) sur « application/wasm ». Vous devez également compresser vos ressources à l’aide de gzip pour réduire la quantité d’octets téléchargés sur le réseau et permettre au lecteur de démarrer la lecture plus rapidement.
TypeScript
Si vous utilisez TypeScript, le package npm inclut les types que vous voulez importer et utiliser. Pour plus d’informations sur ces types, consultez la rubrique Kit SDK du lecteur Amazon IVS : références pour le Web
Configurer un service worker
Pour réduire davantage la latence lors de la lecture via des navigateurs qui ne prennent en charge que la lecture native (principalement iOS Safari), vous pouvez configurer un service worker. Pour obtenir plus de contexte, consultez Réduire la latence des lecteurs tiers.
Configurer le lecteur Amazon IVS de manière à ce qu’il utilise un service worker :
-
Créez un fichier pour charger le service worker IVS hors du CDN. Cela est nécessaire car les service workers doivent être hébergés sur le même domaine que la page qui les extrait.
Créez un fichier nommé
amazon-ivs-service-worker-loader.js
ou de façon similaire et ajoutez la ligne suivante :importScripts('https://player.live-video.net/1.35.0/amazon-ivs-service-worker.min.js');
-
Lorsque vous créez une instance de lecteur, transmettez la configuration
serviceWorker
suivante faisant référence au fichieramazon-ivs-service-worker-loader.js
:const player = IVSPlayerPackage.create({ serviceWorker: { url: 'amazon-ivs-service-worker-loader.js' } });
-
Sur l’élément vidéo, définissez l’attribut
crossOrigin
suranonymous
. Cela est nécessaire pour permettre au service worker d’apporter des modifications au manifeste.
Remarque : pour tester le service worker localement, la page doit être diffusée avec localhost ou https.
Pour voir une démonstration en direct, consultez l’exemple du service worker dans le référentiel suivant :
https://github.com/aws-samples/amazon-ivs-player-web-sample
Lecture en mode audio uniquement
La qualité en mode audio uniquement doit être sélectionnée manuellement à l’aide de la méthode setQuality()
. Notez que le lecteur ne prend pas en charge une valeur true
pour le deuxième argument, adaptive
, donc par défaut, cet argument est false
.
Pour définir la qualité en mode audio uniquement avant le début de la lecture, appelez setQuality()
dans l’événement READY
:
player.addEventListener(PlayerState.READY, () => { const qualities = player.getQualities(); const audioOnly = qualities.find(q => q.name === 'audio_only'); if (audioOnly) { player.setQuality(audioOnly); } });
La définition de la qualité dans READY
fonctionne à la fois pour les modes de lecture automatique et non automatique.