BD-J , o Blu-ray Disc Java , es una especificación compatible con Java ME (específicamente el perfil de base personal de la configuración del dispositivo conectado o CDC) Xlets para contenido avanzado en Blu-ray Disc y el perfil de medios empaquetados de Globally Executable MHP ( JOYA).
BD-J permite que el contenido adicional en los títulos de Blu-ray Disc sea mucho más sofisticado que el contenido adicional proporcionado por el DVD estándar , incluido el acceso a la red, imagen en imagen y acceso a almacenamiento local ampliado . En conjunto, estas funciones (distintas del acceso a Internet) se denominan " Vista adicional", y la adición de acceso a Internet se denomina " BD Live ". BD-J fue desarrollado por Blu-ray Disc Association . La especificación requiere que todos los reproductores de Blu-ray Disc que admitan contenido de video sean compatibles con BD-J. [1] A partir del 31 de octubre de 2007, todo nuevoSe requiere que los reproductores tengan soporte de hardware para las funciones de "Bonus View", pero es posible que los reproductores requieran futuras actualizaciones de firmware para habilitar las funciones. La compatibilidad con "BD Live" siempre es opcional para un reproductor de BD. [2]
La PlayStation 3 de Sony ha sido el líder de facto en cumplimiento y soporte de BD-J. [ cita requerida ] La PlayStation 3 agregó soporte para Blu-ray Profile 1.1 con una actualización de firmware y se usó para exhibir BD-Live en CES 2008 en enero.
Capacidades de BD-J Xlet
- La invocación de BD-J Xlets se desencadena por eventos que ocurren a su alrededor, por ejemplo, por la selección de un título de película o por la inserción de un nuevo disco. Los Xlets, a su vez, pueden llamar a otros Xlets para que entren en juego.
- La seguridad en BD-J se basa en el modelo de seguridad de la plataforma Java. Es decir, las aplicaciones firmadas en JAR pueden realizar más tareas que una no firmada, como acceso de lectura / escritura al almacenamiento local, acceso a la red, selección de otros títulos en el disco BD-ROM y control de otras aplicaciones BD-J en ejecución. .
- Los Xlets (como parte del perfil de base personal de CDC) no tienen GUI (es decir, no tienen widgets AWT como ), por lo que se utilizan clases adicionales para generar animación y GUI. El BD-J utiliza el modelo de dispositivo de interfaz de usuario de Havi y el conjunto de widgets para uso con control remoto, pero se ha ampliado para permitir las resoluciones compatibles con BD y los controles A / V compatibles con BD.
java.awt.Button
- BD-J tiene clases que permiten al usuario sincronizarse con precisión con fotogramas específicos de la película.
- Hay dos tipos de sincronizaciones de video permitidas, una llamada "sincronización suelta", que usa un método de devolución de llamada y es precisa dentro de varios cuadros del evento, y la otra es "sincronización estricta", que usa el paquete . La sincronización estrecha permite que las aplicaciones se sincronicen con precisión con el fotograma exacto utilizando códigos de tiempo del paquete de JMF ( Java Media Framework ).
org.bluray
javax.media.Time
- La GUI de una aplicación BD-J se puede operar con un control remoto con un juego de teclas requerido y un dispositivo señalador opcional. El conjunto de claves necesarias incluye al menos las claves necesarias para admitir las operaciones de usuario en aplicaciones HDMV [ ampliar acrónimo ] .
- El marco GUI en BD-J incluye el marco UI HAVi (6) ordenado por GEM ; no es un marco de GUI de escritorio como Swing o AWT . El marco de la GUI se basa en el núcleo de AWT según lo especificado por PBP, pero el conjunto de widgets incluye mecanismos para la navegación por control remoto desde GEM y una fácil personalización de la apariencia de HAVi.
- BD-J incluye un marco multimedia similar a JMF para la reproducción de contenido multimedia relacionado con el disco BD-ROM. Se supone que el disco BD-ROM será la fuente principal de archivos multimedia, pero no será la única; otras fuentes podrían ser el servidor web del estudio y el almacenamiento local.
- BD-J incluye bibliotecas estándar de Java para decodificar y mostrar imágenes en JFIF ( JPEG ), PNG y otros formatos de imagen. Estas imágenes se pueden mostrar en el plano de gráficos de Java utilizando funciones de gráficos estándar de Java. También se puede renderizar una imagen en el plano de fondo utilizando un paquete específico de BD-J.
- El texto se puede representar utilizando funciones de texto estándar de Java. Estas funciones de representación de texto se amplían con un administrador de diseño de texto más avanzado que se integra con el marco de la interfaz de usuario de BD-J. El texto se representa con una fuente basada en vectores, ya sea proveniente del disco, el reproductor (fuente predeterminada) o descargada de la red.
- Los sonidos de los botones de HDMV [ expandir acrónimo ] también se pueden utilizar en el marco de la interfaz de usuario de Java. Los archivos de sonido se pueden cargar y reproducir como una reacción al usuario que presiona una tecla, o como una reacción a un evento marcado relacionado con la película, o como una reacción a cualquier evento generado por una aplicación BD-J.
- Las aplicaciones autenticadas pueden utilizar un archivo de solicitud de permiso (firmado) para adquirir permisos que van más allá del entorno de pruebas de BD-J. Se pueden adquirir permisos para:
- Lectura y escritura en almacenamiento local y del sistema
- Usando la conexión de red (para conectarse a servidores definidos)
- Acceso al sistema de archivos en el disco BD-ROM
- Selección de títulos de otros títulos en el disco BD-ROM
- Control de otras aplicaciones BD-J en ejecución
- Las aplicaciones BD-J pueden usar el paquete para conectarse a servidores en Internet. La conexión física puede diferir entre implementaciones, por ejemplo, Ethernet, línea telefónica, etc. A nivel de red, se admite TCP / IP y se puede utilizar el protocolo HTTP . Además, se incluye el paquete Java para conexiones seguras ( JSSE ) como parte de la plataforma BD-J. Antes de que una aplicación BD-J pueda usar la conexión de red, debe estar autenticada y tener el permiso adecuado para usar la red.
java.net
- Los sitios web a los que se dirigirá la aplicación están bajo el control total del Proveedor de contenido. Este control está garantizado de dos formas:
- Solo las aplicaciones BD-J autenticadas (disco) pueden ejecutarse cuando se reproduce el disco. La aplicación controla el uso de la conexión de red.
- Además, los permisos definidos en el disco pueden restringir el uso de la conexión de red (TCP / IP) a ciertos sitios.
- BD-J incluirá soporte para almacenamiento. Se incluyen dos tipos de almacenamiento: almacenamiento del sistema obligatorio y almacenamiento local opcional. Se accede a todo el almacenamiento utilizando métodos del paquete Java IO. La ruta para el almacenamiento local es la especificada por [GEM].
- El almacenamiento del sistema es el almacenamiento que estará presente en todos los reproductores de BD-J. El tamaño mínimo requerido del almacenamiento de este sistema permitirá el almacenamiento de datos de la aplicación como configuraciones, puntajes altos, etc. No será lo suficientemente grande para almacenar material AV descargado. Para este propósito, se encuentra disponible un almacenamiento local opcional. Normalmente, el almacenamiento del sistema se implementará mediante memoria Flash y el almacenamiento local opcional se implementará en un disco duro.
- Dado que el almacenamiento es un recurso compartido entre todos los discos reproducidos en el reproductor, el control de acceso de Java es parte de BD-J. Las aplicaciones BD-J solo pueden acceder a una parte específica del disco del espacio de almacenamiento y no pueden acceder a la parte que pertenece a otros discos.
Desarrollo de contenido
Los autores de contenido tienen una variedad de estrategias de desarrollo disponibles, incluido el uso de entornos de desarrollo integrados (IDE) tradicionales como NetBeans o Eclipse , entornos gráficos sin programación similares a Macromedia Director, o mediante motores de renderizado que consumen formatos de datos estándar como HTML, XML o SVG. Tener un entorno de programación completo disponible en cada reproductor de Blu-ray Disc proporciona a los desarrolladores una plataforma para crear tipos de contenido que no están sujetos a las restricciones del DVD estándar. Además de las API BD-J estándar, los desarrolladores pueden hacer uso de las bibliotecas Java y los marcos de aplicación existentes, asumiendo que no usan características fuera de las restricciones de la plataforma BD-J, incluido que Java ME solo admite archivos de clase Java versión 1.3 .
Un conjunto de herramientas disponibles gratuitamente que permiten a los desarrolladores de Java producir imágenes de disco completas incorporando BD-J está disponible en HD Cookbook Project. [3] Para probar el contenido en un entorno de desarrollo típico (MS Windows), se necesita una PlayStation 3 o un reproductor de software de terceros para Windows, prestando atención a las versiones del reproductor para asegurarse de que el reproductor sea compatible con BD-J. [4] [5] [6]
Debido a la gran cantidad de estándares y componentes involucrados, la creación de documentación unificada en BD-J ha demostrado ser un desafío. [7] [8] [9]
Código de muestra
El entorno BD-J está diseñado para ejecutar Xlets sin paquetes disponibles para aprovechar las características particulares de esta plataforma más allá de las definidas por Java TV .javax.*
Incluso un ejemplo simple como FirstBDJApp. [10]
Un desarrollador puede optar por no utilizar paquetes y, en su lugar, utilizar:javax.*
- Clases HAVi en el árbol de paquetes : clases alternativas para obtener, por ejemplo, mucho más allá de lo que proporciona (ambas son extensiones de )
org.havi.*
org.havi.ui.HScene
javax.tv.graphics.TVContainer
java.awt.Container
- Clases de transmisión de video digital (DVB) en el árbol de paquetes : clases alternativas a, por ejemplo, la interfaz en lugar de la compatibilidad con las pulsaciones de teclas y los códigos de teclas específicos de los dispositivos CDC populares.
org.dvb.*
org.dvb.event.UserEventListener
java.awt.event.KeyListener
- Clases de Blu-ray Disc en el árbol de paquetes : las clases DAVIC y DVB dependen de reconocer eventos adicionales propios de la plataforma BD-J, como menús emergentes, y para ubicar medios en el disco Blu-ray.
org.bluray.*
- Clases de la API de DAVIC en el árbol de paquetes : un pequeño conjunto de clases que envuelven o amplían otros recursos de red y medios propios de la televisión interactiva que las clases HAVi, DVB y Blu-ray utilizan para localizadores y excepciones especializadas más allá del ámbito de JMF (como la autorización de contenido) .
org.davic.*
Un ejemplo práctico de un programa que usa algunas características de cada uno de los árboles de clases sería el BdjGunBunny Xlet (una versión muy simple de Space Invaders que usa una imagen de un conejo como tirador y tortugas como objetivos) que se proporciona como ejemplo en Java. ME 3.0 SDK .
importar javax.tv.xlet.XletContext ;import org.havi.ui.HScene ; import org.havi.ui.HSceneFactory ;import java.awt.Container ; import javax.tv.graphics.TVContainer ;// Obtener un contenedor para la pantalla podría serpublic void initXlet ( contexto XletContext ) { // API de Java TV para ser compatible con Java TV TVContainer scene = TVContainer . getRootContainer ( contexto );// O para BD-J, para utilizar funciones HAVi no disponibles en Java TV HScene scene = HSceneFactory . getInstance (). getDefaultHScene ();// O quizás de forma más general ... Container container = null ; booleano realBDJ = verdadero ; if ( realBDJ ) contenedor = HSceneFactory . getInstance (). getDefaultHScene (); else container = TVContainer . getRootContainer ( contexto ); ... }
y lo mismo para los demás no paquetes. Del mismo modo, al intentar reproducir un video, se puede llamar a la utilidad Blu-ray y DAVIC en lugar de usar JMF genérico:javax.*
import javax.media.Player ; import org.bluray.net.BDLocator ; import org.davic.media.MediaLocator ; MediaLocator stars = new MediaLocator ( nuevo BDLocator ( "bd: //0.PLAYLIST: 00003" )); Jugador jugador = Gerente . createPlayer ( estrellas );// En lugar de JMF puro tradicional y portátil pero más limitadoimport java.net.URL ; import javax.media.Manager ; import javax.media.Player ; Player mediaPlayer = Administrador . createRealizedPlayer ( nueva URL ( "archivo: /mymovie.mov" ));
Publicación relacionada
- Programación de HD DVD y Blu-ray Disc The HD Cookbook (2008) por Michael Zink, Philip C. Starner, Bill Foote - ISBN 978-0-07-149670-4 - sitio web del libro
Ver también
- Contenido avanzado , la contraparte de BD-J en HD DVD
- disco de Blu-ray
Referencias
- ^ "Desarrollo de aplicaciones Blu-ray BD-J usando Java ME" . Archivado desde el original el 11 de septiembre de 2008 . Consultado el 21 de octubre de 2008 .
- ^ "Blu-ray Disc Assn. Promueve una nueva vista adicional" .
- ^ HDCookbook para BD-J
- ^ "Notas y directrices de creación de Blu-ray Disc Java y GEM / MHP / OCAP" . Archivado desde el original el 24 de diciembre de 2008 . Consultado el 21 de octubre de 2008 .
- ^ Obteniendo el software (BD-J) PC Player Archivado 2008-12-24 en Wayback Machine - menciona que podrían ser necesarias "versiones especiales para desarrolladores" de la obra
- ^ Aplicación HelloWorld BD-J: Su primera taza para el DVD de próxima generación Archivado 2009-02-07 en Wayback Machine - incluye notas sobre cómo habilitar la depuración remota o el registro con reproductores de PC
- ^ Ahora es posible la documentación unificada para desarrolladores para BD-J
- ^ Creación de documentación de referencia de la API de Javadoc para el desarrollo de aplicaciones de Blu-ray Disc
- ^ "Obtener una definición de plataforma BD-J" . Archivado desde el original el 24 de diciembre de 2008 . Consultado el 21 de octubre de 2008 .
- ^ Desarrollo de aplicaciones de Blu-ray Disc con Java ME, Parte 1: Creación de su primera aplicación Bruce Hopkins, septiembre de 2008
enlaces externos
- Foros oficiales de Java.net BD-J - Foros oficiales de Sun java.net para Blu-ray Disc Java.
- bdjforum.com : foro no oficial para desarrolladores de BD-J y problemas relacionados con la creación de HD.
- Sesiones técnicas de JavaOne 2007: producción de títulos de software Java en Blu-ray para Hollywood
- Sitio web oficial para DVB-MHP y DVB-GEM - Open Middleware para TV interactiva
- TV sin fronteras - Sitio web de MHP / OCAP de Steven Morris.
- Libro de cocina HD : código y otras recetas para Blu-ray Java, GEM, MHP y OCAP
- Soluciones Alticast BD-J