La semana pasada, prelanzamos el reproductor Brightcove Player 6.22. Esta versión aporta algunos cambios útiles en la API que pueden interesar a clientes e integradores.
CONFIGURACIONES AMPLIADAS DE REPRODUCCIÓN AUTOMÁTICA
Como parte de Video.js 7.1.0hemos hecho el autoplay
configuración más potente.
Actualmente, esta configuración puede ser true
o false
que es similar a establecer el autoplay
(o no) del atributo <video>
elemento. Cuando true
, el reproductor intentará la reproducción automática y, si el navegador lo impide, mostrará el llamado Gran Botón de Reproducción.
Sin embargo, hay casos en los que los clientes podrían querer mejorar sus posibilidades de que la reproducción automática tenga éxito. La ampliación autoplay
puede aceptar ahora varios valores de cadena nuevos (además de los valores booleanos existentes).
CUALQUIER
Añadir la configuración, {"autoplay": "any"}
hará que el jugador llame a play()
en el loadstart
evento. Si la reproducción falla, el reproductor se silenciará y llamará a play()
de nuevo. Si la reproducción sigue fallando, el estado anterior de muted
se restablecerá.
Este valor ofrece la solución más completa - cuando se prefiere la reproducción automática no silenciada, pero la reproducción automática silenciada es aceptable.
MUTED
Añadir la configuración, {"autoplay": "muted"}
hará que el reproductor se silencie y luego llamará a play()
en el loadstart
evento. Si la reproducción falla, el estado anterior de muted
se restablecerá.
Este valor es el más probable que tenga éxito en el primer intento - cuando se prefiere la reproducción automática silenciada.
JUGAR
Por último, añadir la configuración, {"autoplay": "play"}
hará que el jugador llame a play()
en el loadstart
evento.
Esto tiene las mismas posibilidades de éxito que establecer autoplay: true
.
MEJORAS EN EL PLUGIN DE CATÁLOGO
NOTA: Por el momento, estas funciones sólo estarán disponibles a través de los métodos del plugin de catálogo, no a través de la configuración ni de data-
atributos.
NORMALIZACIÓN DE LA API
El mayor cambio que hemos realizado en el complemento de catálogo forma parte de un esfuerzo por estandarizar una API de biblioteca que, con el paso de los años, ha llegado a presentar pequeñas incoherencias entre sus métodos.
El núcleo de este esfuerzo era añadir un get()
que funciona para todos los tipos de solicitud y toma un único argumento: un objeto de parámetros de catálogo (descrito más adelante). El sitio get()
devolverá un método Promise
objeto.
Por ejemplo, la búsqueda de un vídeo con el método común get()
podría ser el siguiente:
// Request a video from the Playback API.
player.catalog.get({
type: 'video',
id: '123456789',
adConfigId: 'abc123'
})
// The request succeeded, load the video data into the player.
.then(function(data) {
player.catalog.load(data);
})
// The request failed.
.catch(function(err) {
videojs.log.error(err);
});
Además, este esfuerzo incluye cambios compatibles con los métodos preexistentes. getVideo
, getPlaylist
, getSearch
, getSequence
y getLazySequence
. Estos cambios son:
getVideo
,getPlaylist
ygetSearch
ahora pueden tomar un objeto de parámetros de catálogo como primer argumento como alternativa a sus implementaciones actuales.- El tercer argumento de todos los métodos,
adConfigId
ha quedado obsoleto. Utilice un objeto de parámetros de catálogo con unadConfigId
en su lugar. - Cada método sigue esperando un segundo
callback
y devuelve unXMLHttpRequest
objeto. Si unPromise
es preferible utilizar elget()
método.
Es importante señalar que todos estos cambios son compatibles con versiones anteriores. No es necesario cambiar el código existente.
Por ejemplo, la solicitud de vídeo anterior podría seguir haciéndose al estilo antiguo:
// Request a video from the Playback API.
player.catalog.getVideo('123456789', function(err, data) {
// The request failed.
if (err) {
return;
}
// The request succeeded, load the video data into the player.
player.catalog.load(data);
}, 'abc123');
CATÁLOGO PARÁMETROS OBJETOS
Se trata de una convención que esperamos utilizar como base para describir las solicitudes a la API de reproducción desde el reproductor de Brightcove en el futuro.
Se admite como primer argumento de todos los get*
métodos.
Todos los valores deben ser cadenas.
Nombre | Descripción |
---|---|
type |
El tipo de solicitud a realizar. Debe ser uno de los siguientes 'video' , 'playlist' o 'search' . |
accountId |
ID de la cuenta de la que se obtendrán los datos. Por defecto será el ID de cuenta del jugador. |
policyKey |
La clave de política para esta cuenta. Por defecto, será la clave de la política del reproductor. |
id |
Un ID de vídeo o de lista de reproducción o un ID de referencia precedido por 'ref:' . Requerido para solicitar vídeos y listas de reproducción. |
q |
Una consulta de búsqueda. Requerido para las solicitudes de búsqueda (excepto cuando id se utiliza en su forma obsoleta), ignorado para los demás. |
adConfigId |
A Video Could SSAI ad configuration ID. |
tveToken |
Un token TVE opcional que se enviará como parámetro de cadena de consulta. |
limit |
Sólo se admite para los tipos de lista de reproducción y búsqueda. Limita el número de vídeos devueltos. |
offset |
Sólo se admite para los tipos de lista de reproducción y búsqueda. El número de vídeos a saltar. |
sort |
Sólo se admite para el tipo de búsqueda. Cómo deben ordenarse los vídeos para las búsquedas. |
NOTA: Por compatibilidad con versiones anteriores, existen dos usos adicionales y obsoletos de la función id
parámetro. Para busque en tipos, el id
como consulta de búsqueda en lugar de q
. Para busque en tipos y secuencias, el id
puede contener un subobjeto, que también es un objeto de parámetros de catálogo.
LÍMITE Y DESPLAZAMIENTO DE LA LISTA DE REPRODUCCIÓN
Como consecuencia de esta normalización, hemos añadido soporte para limit
y offset
para las listas de reproducción. Esto permite a los clientes implementar listas de reproducción de mayor tamaño, así como la paginación a través de sus listas de reproducción. Estos parámetros pueden aplicarse en la función getPlaylist()
funcionar así:
// Request a playlist from the Playback API.
player.catalog.getPlaylist({
id: '123456789',
limit: '25',
offset: '0'
}, function(err, data) {
// If there is an error object, the request failed.
if (err) {
return;
}
// The request succeeded, load the playlist data into the player.
player.catalog.load(data);
});
CONCLUSIÓN
Estamos muy entusiasmados con estas nuevas funciones del reproductor Brightcove Player 6.22. Esta versión se encuentra actualmente en estado de prelanzamiento, pero muy pronto la enviaremos a todos los reproductores con actualización automática.