Mostrar medios con MPCDI
Los reproductores BrightSign admiten la especificación MPCDI para warping y edge blending. Esta página describe cómo mostrar contenido multimedia, incluidas imágenes, video y HTML, mediante MPCDI. Tenga en cuenta que se requieren algunos conocimientos de BrightScript para desarrollar aplicaciones MPCDI en reproductores BrightSign.
La API descrita a continuación requiere BrightSignOS versión 7.0 o posterior.
Descripción general del soporte
Los reproductores de la Serie 4 (XTx44, XDx34, HDx24) y Serie 3 (XTx43, XDx33, HDx23, HO523) admiten todos los niveles del perfil MPCDI 2D Media.
Los reproductores 4Kx42 también admiten MPCDI, pero solo en Nivel 1 y Nivel 2. Recomendamos los reproductores Serie 3 o 4 para obtener velocidades de renderizado óptimas.
MPCDI Versión 1a está implementado en los reproductores Serie 3 y 4. No es compatible con los reproductores Serie 5.
Tipos de contenido multimedia
MPCDI es compatible con objetos gráficos como roImageWidget, roHtmlWidget, y roTextWidget. No es compatible con el objeto roVideoPlayer; para aplicar MPCDI a un video, muestre el video como parte de una página HTML.
API de BrightScript para MPCDI
La API de BrightScript está diseñada de modo que la información correspondiente a una región en particular debe extraerse del archivo .mpcdi y luego pasarse al método roVideoMode.SetMpcdi() . Una vez que la información de configuración de una región se pasa al reproductor, MPCDI se habilita y el contenido multimedia mostrado en widgets HTML, de imagen y de texto se deformará según la configuración.
Dado que el archivo de configuración MPCDI puede contener más de una región, el script autorun en el reproductor deberá seleccionar una región determinada del archivo .mpcdi y analizar los datos de esa región antes de utilizarlos para configurar el reproductor. Tenga en cuenta que cada reproductor puede mostrar solo una región MPCDI.
Si desea omitir la escritura de un script para analizar datos MPCDI y configurar el reproductor, puede usar el script de plantilla adjunto a esta página (consulte la sección Script de plantilla MPCDI más abajo para obtener más detalles).
Habilitación de MPCDI
Para habilitar MPCDI, llame al método roVideoMode.SetMpcdi() :
SetMpcdi(parameters As roAssociativeArray) As Boolean
Habilita MPCDI mediante un arreglo asociativo de parámetros. Este método devuelve verdadero si MPCDI se ha habilitado y falso si no pudo habilitarse. El arreglo asociativo debe contener los siguientes parámetros:
- región roAssociativeArray: Un arreglo asociativo de parámetros que contiene datos de región:
- xresolution int: El ancho de la ventana gráfica, que corresponde al atributo <XResolution> en la etiqueta <región> del archivo de configuración mpcdi.xml
- yresolution int: La altura de la ventana gráfica, que corresponde al atributo <YResolution> en la etiqueta <región> del archivo de configuración mpcdi.xml
- x float: La posición horizontal de la coordenada de la región, que corresponde al atributo <x> en la etiqueta <región> del archivo de configuración mpcdi.xml
- y float: La posición vertical de la coordenada de la región, que corresponde al atributo <y> en la etiqueta <región> del archivo de configuración mpcdi.xml
- xsize float: El ancho de la coordenada de la región, que corresponde al atributo <xsize> en la etiqueta <región> del archivo de configuración mpcdi.xml
- ysize float: La altura de la coordenada de la región, que corresponde al atributo <ysize> del tag <región> del archivo de configuración mpcdi.xml
- blendmaps roArray: Un arreglo que contiene una o dos entradas que describen datos de mapas de mezcla. El arreglo debe contener una entrada que describa los parámetros del mapa alpha y puede contener una segunda entrada que describa los parámetros del mapa beta. Cada entrada debe tener los siguientes parámetros:
- mapname string: El nombre del mapa, que puede ser "alpha" o "beta"
- ancho int: El ancho del mapa, como se proporciona en el archivo .png
- altura int: La altura del mapa, como se proporciona en el archivo .png
- comdepth int: El número de componentes almacenados en el mapa, que corresponde al tag <alphaMap> o <betaMap> del archivo de configuración mpcdi.xml
- tamaño int: El tamaño de los datos decodificados del archivo .png (en bytes)
- gammacorrection float: El valor de corrección gamma, que corresponde al atributo <gammaEmbedded> del tag <alphaMap> del archivo de configuración mpcid.xml (esta configuración no se aplica a un mapa beta)
- datos roByteArray: Los datos decodificados de .png
- deformación roAssociativeArray: Un arreglo asociativo de parámetros que contiene datos de warp:
- ancho int: El ancho del mapa de warp geométrico, que se proporciona en el archivo .pfm
- altura int: La altura del mapa de warp geométrico, que se proporciona en el archivo .pfm
- datos roArray: Los datos extraídos del archivo .pfm como un arreglo de valores float
Deshabilitar MPCDI
Para deshabilitar MPCDI, pase Invalid al método SetMpcdi().
Ejemplo
vm = CreateObject("roVideoMode")
mpcdi_params = invalid
vm.SetMpcdi(mpcdi_params)Script de plantilla MPCDI
El script .brs adjunto a esta página extraerá todos los datos relevantes de un archivo .mpcdi y lo utilizará para configurar MPCDI en el reproductor. Luego muestra hasta tres widgets HTML: un widget puede usarse para mostrar un video o imagen como una página HTML simple, mientras que los otros dos muestran páginas HTML de la web.
La función Main() acepta un arreglo de parámetros:
[mpcdi_enabled, widget_count, filename.mpcdi, mode, ip_media_filename]- mpcdi_enabled string: Una marca que determina si MPCDI está habilitado ("on") o deshabilitado ("off")
- widget_count int: El número de widgets que se mostrarán en pantalla (1, 2 o 3). Si especifica un solo widget, el widget de imagen/video se mostrará en pantalla completa.
- filename.mpcdi string: El nombre del archivo .mpcdi
- modo string: El modo del widget de imagen/video ("image" o "video")
- ip_media_filename string: El nombre del archivo multimedia que se mostrará en el widget de imagen/video.
Para modificar las páginas HTML mostradas por el segundo y tercer widget, cambie las cadenas SetUrl() en la función ShowUserWidgets() .
Configuración de regiones MPCDI
Si está utilizando el script de plantilla adjunto a esta página, deberá asignar cada reproductor a una región MPCDI antes de ejecutar el script. Esto se hace escribiendo la asignación de región en el registro del reproductor. El script de plantilla recuperará el valor del registro y lo utilizará para extraer los datos correctos de la región del archivo .mpcdi.
Puede escribir asignaciones de región en el registro usando BrightSign Shell, o puede usar BrightScript.
BrightSign Shell
Realice los siguientes pasos en cada reproductor BrightSign que forme parte de la pantalla MPCDI:
- Conecte el reproductor a una PC usando un cable de puerto serie o Habilitar Telnet y SSH.
- Apague el reproductor y retire la tarjeta microSD u otro almacenamiento.
- Encienda el reproductor.
- Espere hasta que aparezca la pantalla de inicio de BrightSign en la pantalla.
- Presione el botón SVC en el reproductor. Esto dará como resultado la entrada en la shell BrightSign> .
- Escriba "registry write brightscript mpcdi_region [region id]", donde [region id] se refiere al atributo id en el archivo mpcdi.xml asociado con la región que desea asignar al reproductor. Presione Enter cuando termine.
- Escriba "reboot" y presione Enter.
Si más adelante necesita recuperar el ID de región almacenado en el registro del reproductor, puede introducir el siguiente comando en la shell: "registry read brightscript mpcdi_region"
BrightScript
Incluya lo siguiente en su script autorun, plugin o independiente:
reg = CreateObject("roRegistrySection", "brightscript")
reg.write("mpcdi_region","region id")El "region id" se refiere al atributo identificación en el archivo mpcdi.xml asociado con la región que desea asignar al reproductor. Si este código forma parte de un autorun, deberá desarrollar un mecanismo para diferenciar entre reproductores y asignar automáticamente el ID de región correcto.
También deberá reiniciar el reproductor en algún momento (por ejemplo, llamando a RebootSystem()) antes de mostrar MPCDI para que la escritura en el registro entre en vigor.
Si más adelante necesita recuperar el ID de región almacenado en el registro del reproductor, puede llamar al método roRegistrySection.Read().