---
title: syncmanager
slug: develop/es/syncmanager
docTags: 
createdAt: 2025-03-27T16:56:37.583Z
---

A partir de BrightSignOS 8.2.10, el objeto *syncmanager&#xA0;*&#x70;roporciona capacidades de sincronización para muros de video y otras implementaciones que requieren una interacción estrechamente calibrada entre reproductores. Consulte [roSyncManager](docId\:YtmejVa-nfNTUfLxDTnEW) para obtener más detalles, incluida información sobre dominios PTP.

**IDL de syncmanager**

```javascript
[
    constructor(String networkInterface, String domain, String multicast_address, unsigned multicast_port)
] interface SyncManager {
            attribute boolean leader;
            attribute String networkInterface;
   readonly attribute String domain;
            attribute boolean encrypted;
            attribute boolean encryptionKeyIsObfuscated;
  writeonly attribute String encryptionKey;
   void synchronize(in String id, in unsigned long ms_delay);
   void close()
};
```

## Creación de objetos

Para crear un objeto *syncmanager* , primero cargue el módulo `brightsign/syncmanager` utilizando el método `require()` .&#x20;

```javascript
const BSSyncManager = require("@brightsign/syncmanager");
let sm = new BSSyncManager(network_interface, domain, multicast_address, multicast_port);
```

El constructor de un objeto syncmanager acepta cuatro argumentos:

- `interfaz_de_red` <font color="#6554c0">string</font>: La interfaz de red (por ejemplo, "eth0")
- `dominio` <font color="#6554c0">string</font>: El identificador de dominio utilizado para distinguir entre diferentes instancias de *roSyncManager*.
- `multicast_address` <font color="#6554c0">string</font>: La dirección multicast a la que se comunican los mensajes de sincronización.
- `multicast_port` <font color="#6554c0">int</font>: El puerto multicast al que se comunican los mensajes de sincronización.

## SyncManager

**synchronize()**

```javascript
void synchronize(in String id, in unsigned long ms_delay)
```

Transmite un mensaje con marca de tiempo a otros reproductores. Este método se utiliza solo en la unidad líder. El mensaje se retransmitirá cada segundo para permitir que las unidades seguidoras que se enciendan más tarde se pongan al día. El mensaje de red contiene el ID de sincronización, así como el dominio y una marca de tiempo. La marca de tiempo se crea en el momento en que se llama a este método; sin embargo, puede desplazarse pasando un valor de `ms_delay` distinto de cero, lo que permite establecer puntos de sincronización ligeramente en el futuro y dar al cliente tiempo suficiente para cambiar archivos de video y realizar otras acciones. El parámetro `identificador` permite que el script de la unidad líder pase un nombre de archivo u otro marcador útil a las unidades seguidoras como parte del mensaje de sincronización. Este método devuelve el mensaje que se envía para que el líder pueda acceder a la marca de tiempo.&#x20;

El mensaje de sincronización se envía a través de todas las redes disponibles (incluida WiFi), pero las unidades seguidoras utilizarán solo el primer mensaje recibido.

:::hint{type="info"}
Debido a que la sincronización puede implicar que las unidades seguidoras intenten ponerse al día con la reproducción de una unidad líder, recomendamos utilizar el formato contenedor MOV/MP4 más eficiente al sincronizar archivos de video. Los archivos Transport Stream (MPEG-TS) también son compatibles, pero deben comenzar con una marca de tiempo de presentación (PTS) de 0. Los archivos Program Stream (MPEG-PS) no son compatibles.
:::

**close()**

```javascript
void close()
```

Cierra la instancia, liberando el administrador de sincronización subyacente.&#x20;

## Propiedades de SyncManager

- `líder` <font color="#6554c0">boolean</font>: Un atributo de lectura/escritura para establecer u obtener si el administrador de sincronización es un líder o un seguidor.
- `interfazDeRed `<font color="#6554c0">string</font>: Un atributo de cadena de lectura/escritura para establecer u obtener qué interfaz de red utiliza el administrador de sincronización (por ejemplo, "`eth0`", "`wifi0`"). El parámetro networkInterface puede ser "" para permitir cualquier interfaz de red.
- `dominio` <font color="#6554c0">boolean</font>: Un atributo de cadena de solo lectura que devuelve el dominio del administrador de sincronización

`encrypted`, `encryptionKey` y `encryptionKeyIsObfuscated` se utilizan para configurar el uso de cifrado con el administrador de sincronización:

- `encrypted` <font color="#6554c0">boolean</font>: Un atributo de lectura/escritura que controla si el administrador de sincronización utiliza cifrado: Si `verdadero`, el cifrado está habilitado en la unidad. 
- `encryptionKeyIsObfuscated` <font color="#6554c0">boolean</font>: Un atributo de cadena de solo escritura que se utiliza para establecer la clave usada para el cifrado. Póngase en contacto con [support@brightsign.biz](mailto\:support@brightsign.biz) para obtener más información sobre cómo generar una clave para la ofuscación y almacenarla en el reproductor.
- `encryptionKey` <font color="#6554c0">string:</font> Un atributo de cadena de solo escritura que se utiliza para establecer la clave usada para el cifrado

## Sincronización de la reproducción de video

Al utilizar syncmanager para la sincronización de video, los eventos de sincronización se transmiten repetidamente (\~1 Hz) para garantizar que todos los reproductores los reciban. Su código debe rastrear el ID de sincronización y responder solo a la primera aparición de cada nuevo ID para evitar recargar el video en cada evento repetido.

Consulte nuestro repositorio de GitHub para ver ejemplos de código de líder y seguidor de syncmanager:&#x20;

[https://github.com/brightsign/dev-cookbook/tree/main/examples/browser/syncmanager-js](https://github.com/brightsign/dev-cookbook/tree/main/examples/browser/syncmanager-js)&#x20;

:::hint{type="danger"}
Sin rastrear \`currentSyncId\`, el video se recargará cada segundo cuando lleguen eventos repetidos, lo que interrumpirá la reproducción.
:::

