Introducción al SDK del reproductor web de IVS
En este documento, se explican los pasos para comenzar a usar el SDK del reproductor web de Amazon IVS.
Proporcionamos soporte a través de una etiqueta script
así como a través de un módulo npm.
Demostraciones
La siguiente demostración en directo muestra cómo utilizar el reproductor web con una etiqueta script
de nuestra red de entrega de contenido (CDN): Reproductor de muestra de Amazon IVS
También puede consultar https://github.com/aws-samples/amazon-ivs-player-web-sample
Configuración con la etiqueta de script
Para configurar el reproductor de Amazon IVS al usar la etiqueta de script
:
-
Incluya la siguiente etiqueta (para obtener la última versión del reproductor).
<script src="https://player.live-video.net/1.37.0/amazon-ivs-player.min.js"></script>
-
Una vez que
amazon-ivs-player.min.js
se carga, agrega una variableIVSPlayer
al contexto global. Esta es la biblioteca que usará para crear una instancia de reproductor. Primero, compruebeisPlayerSupported
para determinar si el navegador admite el reproductor de IVS:if (IVSPlayer.isPlayerSupported) { ... }
A continuación, para crear una instancia de reproductor, llame a la función
create
en el objetoIVSPlayer
.const player = IVSPlayer.create();
El SDK del reproductor web de Amazon IVS usa trabajadores de red para optimizar la reproducción del video.
-
Cargue y reproduzca una transmisión con las funciones
load
yplay
en la instancia del reproductor:player.load("PLAYBACK_URL"); player.play();
donde
PLAYBACK_URL
es la URL devuelta desde la API de Amazon IVS cuando se solicita una clave de transmisión.
Código de muestra
En este ejemplo, cambie PLAYBACK_URL
por la URL de la transmisión de origen que desea cargar. En el ejemplo se utiliza la última versión del reproductor de Amazon IVS.
<script src="https://player.live-video.net/1.37.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>
En la etiqueta <video>
, se requiere playsinline
para la reproducción en línea en Safari de iOS. Consulte https://webkit.org/blog/6784/new-video-policies-for-ios/
Configuración con NPM
Para obtener orientación, incluido un archivo de configuración de Webpack de ejemplo, consulte el siguiente repositorio: https://github.com/aws-samples/amazon-ivs-player-web-sample
Nota: Al alojar activos estáticos del reproductor desde su propio dominio, debe establecer el encabezado de respuesta “Content-Type” para el binario WebAssembly (amazon-ivs-wasmworker.min.wasm
) en “application/wasm”. También debe gzip sus activos para reducir los bytes descargados a través del cable y mejorar el tiempo del reproductor para iniciar la reproducción.
TypeScript
Si está utilizando TypeScript, el paquete npm incluye tipos que podría querer importar y usar. Para obtener información sobre estos tipos, consulte Reproductor de Amazon IVS SDK: referencia web
Configuración de Service Worker
Para reducir aún más la latencia cuando se reproduce a través de navegadores que solo admiten la reproducción nativa (principalmente iOS Safari), se puede instalar y configurar un service worker. Para obtener más información al respecto, consulte Reducción de la latencia en los reproductores de terceros.
Para configurar el reproductor de Amazon IVS para usar un service worker:
-
Cree un archivo para cargar el service worker de IVS desde la CDN. Esto es obligatorio, ya que los service workers deben estar alojados en el mismo dominio que la página que los recibe.
Cree un archivo llamado
amazon-ivs-service-worker-loader.js
o similar y añada la siguiente línea:importScripts('https://player.live-video.net/1.37.0/amazon-ivs-service-worker.min.js');
-
Al crear una instancia de reproductor, introduzca la siguiente configuración de
serviceWorker
que haga referencia al archivoamazon-ivs-service-worker-loader.js
:const player = IVSPlayerPackage.create({ serviceWorker: { url: 'amazon-ivs-service-worker-loader.js' } });
-
En el elemento de video, defina el atributo
crossOrigin
enanonymous
. Esto es necesario para que el service worker pueda realizar cambios en el manifiesto.
Nota: Para probar el service worker de forma local, la página debe publicarse desde localhost o desde https.
Para ver una demostración en vivo, consulte el ejemplo de service worker en el siguiente repositorio:
https://github.com/aws-samples/amazon-ivs-player-web-sample
Reproducción de solo audio
La calidad “solo audio” debe seleccionarse manualmente con el método setQuality()
. Tenga en cuenta que el reproductor no es compatible con un valor true
para el segundo argumento, adaptive
, por lo que este argumento es, por defecto, false
.
Para establecer la calidad en “solo audio” antes de que comience la reproducción, debe llamar a setQuality()
antes del evento READY
.
player.addEventListener(PlayerState.READY, () => { const qualities = player.getQualities(); const audioOnly = qualities.find(q => q.name === 'audio_only'); if (audioOnly) { player.setQuality(audioOnly); } });
Establecer la calidad dentro de READY
funciona para los modos de reproducción automática y sin reproducción automática.