---
title: videomodeconfiguration
slug: develop/es/videomodeconfiguration
docTags: 
createdAt: 2025-03-27T16:58:55.219Z
---

El objeto *configuración de modo de video&#xA0;*&#x6C;e permite configurar la resolución de video y recuperar la configuración de salida de video. 

**IDL de videomodeconfiguration**

```javascript
interface VideoModeConfiguration {
    Promise<ModeList> getAvailableModes();
    Promise<Mode> getBestMode(String connector);
    Promise<Mode> getActiveMode();
    Promise<Mode> getConfiguredMode();
    Promise<SetModeResult> setMode(Mode mode);
	Promise<SetModeResult> setCustomModeline(String modeline)
	Promise<ScreenConfigList> getScreenModes();
    Promise<SetModeResult> setScreenModes(ScreenConfigList configs);
};

interface Mode {
    attribute String modeName;
    attribute String colorSpace;
    attribute String colorDepth;
    attribute int frequency;
    attribute bool dropFrame;
    attribute int width;
    attribute int height;
    attribute int graphicsPlaneHeight;
    attribute int graphicsPlaneWidth;
    attribute bool preferred;
    attribute bool interlaced;
    attribute int overscan;
};

interface SetModeResult {
    attribute bool restartRequired;
};

interface ScreenConfig {
    attribute String outputName;
    attribute String videoMode;
    attribute int screenX;
    attribute int screenY;
    attribute String transform;
    attribute bool enabled;
};
```

## Creación de objetos

Para crear el objeto *vidoemodeconfiguration* , primero cargue el módulo `brightsign/videomodeconfiguration` usando el método `require()` . Luego cree una instancia de la clase *videomodeconfiguration* .

```javascript
var VideoModeConfigurationClass = require("@brightsign/videomodeconfiguration");
var videoConfig = new VideoModeConfigurationClass();
```

## VideoModeConfiguration

Use esta interfaz para recuperar y modificar la configuración del modo de video.

**getAvailableModes()**

```javascript
Promise<ModeList> getAvailableModes() 
```

Devuelve una lista que contiene todos los modos de video compatibles con el reproductor. Cada modo de video compatible aparece como una instancia de `Modo`.

**getBestMode()**

```javascript
Promise<Mode> getBestMode(String connector)
```

Devuelve el [modo de video](docId\:QpML112mBhEK7LBDGUxnv) compatible más grande, según lo informado por la pantalla a través de EDID. El conector de video puede especificarse como "hdmi" o "vga" (estos valores distinguen entre mayúsculas y minúsculas). Si la pantalla no devuelve un valor de resolución mediante EDID, este método devuelve una cadena vacía. Si no hay ninguna pantalla conectada, este método devuelve "Cannot read edid information".

**getActiveMode()**

```javascript
Promise<Mode> getActiveMode() 
```

Devuelve una interfaz `Modo` que contiene información sobre el modo de video activo actual.

**getConfiguredMode()**

```javascript
Promise<Mode> getConfiguredMode() 
```

Devuelve una interfaz `Modo` que contiene información sobre el modo de video que se ha configurado con el método `setMode()` . Si el modo de video no se ha configurado con `setMode()` (o si se ha establecido en "auto"), este método devolverá null.

**setMode()**

```javascript
Promise<SetModeResult> setMode(Mode mode)
```

Establece el modo de salida de video utilizando una interfaz `Modo` pasada como argumento. Este método devuelve una promesa que contiene una interfaz `SetModeResult` que indica si se requiere un reinicio para que la configuración de video especificada surta efecto.&#x20;

**setCustomModeline()**

```javascript
Promise<SetModeResult> setCustomModeline(String modeline)
```

Establece el videomode personalizado con el modeline proporcionado (consulte [Aplicar una resolución personalizada](docId:58VplQM4sGH_VgqVs4Frs)). Luego, el videomode personalizado puede seleccionarse usando setMode.

**getScreenModes()&#xA0;**

```javascript
Promise<ScreenConfigList> getScreenModes()
```

Devuelve una matriz que describe cada salida disponible en el hardware de su reproductor y cómo están configuradas esas salidas. Este método se implementó a partir de BOS 9.0.15.

La interfaz ScreenConfig contiene la configuración devuelta por getScreenModes():

- `outputName` <font color="#6554c0">string</font>: HDMI-1, 2, 3 o 4 
- `videoMode` <font color="#6554c0">string</font>: El videomode puede ser:
  - Un videomode con formato BrightSign conocido (por ejemplo, *1920x1080x60p)*
  - Un modeline completo como se describe en [esta página](docId:58VplQM4sGH_VgqVs4Frs)&#x20;
- *auto&#x20;*&#x71;ue difiere ligeramente de las plataformas anteriores. *auto* no se recomienda cuando se utilizan múltiples salidas porque las posiciones del lienzo son fijas y, por lo tanto, si una pantalla usa una resolución inesperada, no se posicionará correctamente en el lienzo.
- `screenX` <font color="#6554c0">int</font>: La posición de la pantalla en el lienzo. El origen (0,0) es la esquina superior izquierda, y cada pantalla puede posicionarse en relación con este. Esto permite dejar espacios en el lienzo entre pantallas para la compensación del bisel.
- `screenY` <font color="#6554c0">int</font>: La posición de la pantalla en el lienzo. El origen (0,0) es la esquina superior izquierda, y cada pantalla puede posicionarse en relación con este. Esto permite dejar espacios en el lienzo entre pantallas para la compensación del bisel.
- `transformar` <font color="#6554c0">string:</font> Una de las rotaciones normal, 90, 180 o 270. Cada pantalla puede rotarse independientemente y cuando una pantalla se rota, todo el contenido, incluido el video, se rotará.&#x20;
- `habilitado` <font color="#6554c0">bool</font>: Si la pantalla está habilitada para salida

**setScreenModes()**

```javascript
Promise<SetModeResult> setScreenModes(ScreenConfigList configs)
```

Toma el mismo formato como argumento que devuelve `getScreenModes()` . De forma predeterminada, una sola pantalla está habilitada. El reproductor utiliza gráficos de resolución completa si cualquiera de los videomodes configurados mediante SetScreenModes usa el modificador `:fullres` . Consulte [esta página](docId\:f0DvNrbDpvGOzlRVB29gd) para comprender cómo funcionan las coordenadas de visualización x/y con la resolución de salida.

Este método se implementó a partir de BOS 9.0 y versiones posteriores.

## Modo

Esta interfaz contiene la configuración de una configuración de video-mode.

:::hint{type="info"}
En los modos 4K, el plano de gráficos puede ser más pequeño que el plano y la salida de video. En estos casos, el plano de gráficos se amplía para coincidir con el plano/salida de video.
:::

- `modeName` <font color="#6554c0">string</font>: Una descripción del [modo de video](docId:58VplQM4sGH_VgqVs4Frs) (así como cualquier parámetro adicional de [parámetros de modo de video](docId\:f0DvNrbDpvGOzlRVB29gd)). El modo de video también puede configurarse como  ["Auto"](docId\:f0DvNrbDpvGOzlRVB29gd), “gfxmemlarge” o "custom", que utilizará el modo configurado mediante setCustomModeline.
- `espacio de color `<font color="#6554c0">string</font>: El espacio de color de la señal de video ("rgb", "yuv420" o "yuv422")
- `colorDepth` <font color="#6554c0">string</font>: La profundidad de color de la señal de video ("8bit", "10bit" o "12bit")
- `frecuencia` <font color="#6554c0">int</font>: La frecuencia de cuadros de la salida de video
- `dropFrame` <font color="#6554c0">bool</font>: Si el código de tiempo del video utiliza drop frames 
- `ancho` <font color="#6554c0">int</font>: El ancho de la salida de video
- `altura` <font color="#6554c0">int</font>: La altura de la salida de video
- `graphicsPlaneHeight` <font color="#6554c0">int</font>: El ancho del plano gráfico 
- `graphicsPlaneWidth` <font color="#6554c0">int</font>: La altura del plano gráfico
- `preferido` <font color="#6554c0">bool</font>: Si el modo de video es el modo *preferido* , lo que indica al reproductor que solo use el modo de video si el EDID de la pantalla indica que es compatible. De lo contrario, la salida cambiará por defecto al modo [video "Auto"](docId\:f0DvNrbDpvGOzlRVB29gd) . Si no se detecta ningún EDID durante el arranque, el reproductor generará el modo de video preferred. Si posteriormente ocurre un evento de conexión en caliente HDM&#x49;**®** , entonces el reproductor realizará de nuevo la comprobación del modo de video preferred.&#x20;
  - `preferido`*&#xA0;*&#x6D;ode ignora la configuración del perfil de video (es decir, el espacio de color y la profundidad de bits).
- `entrelazado `<font color="#6554c0">bool</font>: Si la salida de video es entrelazada
- `overscan` <font color="#6554c0">int:</font> Si la salida de video está usando una configuración de overscan o no

## SetModeResult

Esta interfaz es devuelta por el método setMode().

- `restartRequired` <font color="#6554c0">bool</font>: Un indicador que señala si se requiere o no un reinicio para que el cambio en la configuración de video surta efecto.

## ScreenConfig

- `outputName` <font color="#6554c0">string</font>
- `videoMode` <font color="#6554c0">string</font>
- `screenX` <font color="#6554c0">int</font>
- `screenY` <font color="#6554c0">int</font>
- `transformar` <font color="#6554c0">string</font>
- `habilitado`  <font color="#6554c0">bool</font>

## Ejemplo

Este script recupera el modo de video compatible más grande (según lo informado por el EDID de la pantalla a través de HDMI) y establece la salida de video en este modo. Luego reinicia el reproductor si es necesario.

```javascript
var VideoModeConfigurationClass = require("@brightsign/videomodeconfiguration");
var videoConfig = new VideoModeConfigurationClass();
var SystemClass = require("@brightsign/system");
var system = new SystemClass();

var bestRes = "";

videoConfig.getBestMode("hdmi").then(
        function(data) {
            bestRes = data;
        })
    .catch(
        function(data) {
            console.log(JSON.stringify(data));
        });

var configData = {};
configData.modeName = bestRes;

videoConfig.setMode(configData).then(
        function(data) {
            if (data.restartRequired === true) {
                system.reboot();
            } else {
                console.log("Reboot not required.")
            }
        })
    .catch(
        function(data) {
            console.log(JSON.stringify(data));
        });
```

