BSSyncManager
Para obtener más información sobre los métodos disponibles, consulte la entrada roSyncManager . Para habilitar Genlock en JavaScript, pase el dominio BSSyncManager/roSyncManager al método videooutput setSyncDomain()
Creación de objetos
BSSyncManager(en la interfaz DOMString, en el dominio DOMString, en la dirección_multidifusión DOMString, en el puerto_multidifusión DOMString)
Configurar la interfaz en "" (vacío) utilizará todas las interfaces, y omitir el parámetro interfaz equivale a especificar un nombre de interfaz vacío.
Métodos
- SetAsLeader(in boolean leader_mode) genera(DOMException) void
- Sincronizar(in DOMString id, in unsigned long ms_delay) genera(DOMException) void
- Close() void: Apaga la instancia, evitando que siga consumiendo recursos. Si no se llama a este método, la recolección de basura determina cuándo se destruirá la instancia.
- BindToInterface(in DOMString interface): Vincula el SyncManager a una interfaz de red específica (por ejemplo, "eth0", "wifi0"). Configurar la interfaz en "" (vacío) utilizará todas las interfaces.
- SetEncryptionEnable(en booleano habilitar) boolean
- SetEncryptionEnable(in boolean enable, in DOMString key) boolean
- SetEncryptionEnable(in boolean enable, in ArrayBuffer key) boolean: Habilita o deshabilita el cifrado de los mensajes de BSSyncManager a través de la red. Este método devuelve verdadero si se realiza correctamente y falso si falla. La key puede especificarse como una cadena o una matriz binaria. Alternativamente, puede no proporcionarse un valor clave , en cuyo caso se utiliza una clave generada pseudoaleatoriamente. Configurar habilitar en falso y proporcionar una clave al mismo tiempo hará que este método falle. El cifrado está disponible (y habilitado de forma predeterminada) en OS8 y versiones posteriores. Tenga en cuenta el siguiente comportamiento en entornos con versiones mixtas:
- Las unidades follower que tienen el cifrado habilitado pueden ingerir mensajes de sincronización sin cifrar desde una unidad leader. Una vez que una unidad follower recibe paquetes cifrados, ya no aceptará paquetes sin cifrar desde una unidad leader, a menos que el cifrado se deshabilite explícitamente mediante este método.
- Las unidades follower que tienen el cifrado deshabilitado (o no admiten cifrado) no pueden ingerir mensajes cifrados desde una unidad leader. Por lo tanto, si un grupo de sincronización incluye versiones mixtas del OS, la unidad leader siempre debe tener una versión más antigua del OS que las unidades follower.
- SetEncryptionEnableWithObfuscatedKey(in DOMString obfuscated_key) As Boolean boolean : Habilita el cifrado de los mensajes de BSSyncManager mediante una clave ofuscada. Comuníquese con [email protected] para obtener más información sobre cómo generar una clave para ofuscación y almacenarla en el reproductor.
Funciones de video HTML
setSyncParams(en DOMString domain, en DOMString id, en DOMString iso_timestamp)
Las etiquetas de video HTML incluyen la función setSyncParams() . Llamar a esta función sincroniza el video con el grupo de sincronización especificado.
Eventos
El siguiente evento está disponible en el objeto BSSyncManager . Puede recibir eventos del tipo BSSyncManagerEvent.
onsyncevent
BSSyncManagerEvent – Atributos
Los siguientes atributos son relevantes para el evento onsyncevent:
- dominio DOMString readonly
- id DOMString readonly
- iso_timestamp DOMString readonly
Ejemplos
El siguiente ejemplo de JavaScript contiene dos videos sincronizados localmente con BSSyncManager. Si un reproductor follower está configurado para estar en el mismo dominio PTP que el reproductor leader y utiliza el script HTML follower, mostrará los videos sincronizados con el reproductor leader. Esto puede implementarse en varios reproductores follower.
Script del líder
<video id="one" hwz="on">
<source id="one_src" src="pirates.mov">
</video>
<script>
// Create the sync manager with provided multicast settings
var sync = new BSSyncManager("domain1", "224.0.126.10", 1539);
sync.onsyncevent = function (e) {
document.getElementById("one").setSyncParams(e.domain, e.id, e.iso_timestamp);
document.getElementById("one").load();
document.getElementById("one").play();
console.log(e.domain);
console.log(e.id);
console.log(e.iso_timestamp);
};
function startTimer() {
setTimeout(function () {
restartLeader()
}, 30000);
}
function restartLeader() {
// Synchronize the videos to start playing in 1000ms
sync.SetAsLeader(1);
sync.Synchronize("sync_event1", 1000);
startTimer();
}
restartLeader();
</script>Script del seguidor
<video id="one" hwz="on">
<source id="one_src" src="pirates.mov">
</video>
<script>
// Create the sync manager with provided multicast settings
var sync = new BSSyncManager("domain1", "224.0.126.10", 1539);
sync.onsyncevent = function (e) {
document.getElementById("one").setSyncParams(e.domain, e.id, e.iso_timestamp);
document.getElementById("one").load();
document.getElementById("one").play();
console.log(e.domain);
console.log(e.id);
console.log(e.iso_timestamp);
};
</script>
</body>
</html>