Especificación de Blu-ray de Java
BD-J , o Blu-ray Disc Java , es una especificación que admite Xlets de Java ME (específicamente el perfil de base personal de la configuración del dispositivo conectado o CDC) para contenido avanzado en discos Blu-ray y el perfil de medios empaquetados de MHP ejecutable globalmente (GEM).
BD-J permite contenido adicional más sofisticado en títulos de Blu-ray Disc que el DVD estándar , incluido el acceso a la red, imagen en imagen y acceso a almacenamiento local expandido . En conjunto, estas funciones (que no sean el acceso a Internet) se denominan " Bonus View " y la incorporación del acceso a Internet se denomina " BD Live ". BD-J fue desarrollado por la Blu-ray Disc Association . La especificación exige 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, todos los reproductores nuevos deben tener soporte de hardware para las funciones "Bonus View", pero los reproductores pueden requerir futuras actualizaciones de firmware para habilitar las funciones mencionadas anteriormente. 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, agregando soporte para Blu-ray Profile 1.1 con una actualización de firmware utilizada para mostrar BD-Live en CES 2008.
Capacidades del BD-J Xlet
- La invocación de los Xlets BD-J se activa cuando ocurren eventos a su alrededor (por ejemplo, al seleccionar el título de una película o al insertar un nuevo disco). Los Xlets, a su vez, pueden invocar 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 las no firmadas, 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 básico personal de CDC) no tienen interfaz gráfica de usuario (es decir, no tienen widgets AWT como ), por lo que se requieren clases adicionales para generar animación e interfaz gráfica de usuario. El BD-J utiliza el modelo de dispositivo y el conjunto de widgets de Havi UI para uso con control remoto, pero se amplía 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 sincronizar con precisión fotogramas específicos de la película.
- Existen dos tipos de sincronizaciones de video permitidas: una llamada "sincronización flexible", que utiliza un método de devolución de llamada y es precisa dentro de varios cuadros del evento, y la otra es la "sincronización estricta", que utiliza el paquete . La sincronización estricta permite que las aplicaciones se sincronicen con precisión al cuadro exacto utilizando códigos de tiempo del paquete de JMF ( Java Media Framework ).
org.bluray
javax.media.Time
- La interfaz gráfica de usuario de una aplicación BD-J se puede manejar con un control remoto que tenga un conjunto de teclas requerido y un dispositivo señalador opcional. El conjunto de teclas requeridas incluye al menos las teclas necesarias para admitir las operaciones del usuario en aplicaciones de películas de alta definición (HDMV) .
- El marco de interfaz gráfica de usuario en BD-J incluye el marco de interfaz de usuario HAVi (6) exigido por GEM ; no es un marco de interfaz gráfica de usuario de escritorio como Swing o AWT . El marco de interfaz gráfica de usuario se basa en el núcleo de AWT tal como lo especifica 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 desde HAVi.
- BD-J incluye un marco de medios 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 gráfico de Java mediante funciones gráficas estándar de Java. También se puede renderizar una imagen en el plano de fondo mediante un paquete específico de BD-J.
- El texto se puede representar mediante 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 interfaz de usuario de BD-J. El texto se representa mediante una fuente basada en vectores que proviene del disco, del reproductor (fuente predeterminada) o se descarga de la red.
- El marco de interfaz de usuario de Java también puede utilizar los sonidos de los botones de HDMV. Los archivos de sonido se pueden cargar y reproducir como reacción al presionar una tecla por parte del usuario, o como reacción a un evento marcado relacionado con la película, o como 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 protegido de BD-J. Se pueden adquirir permisos para:
- Lectura y escritura en el almacenamiento local y del sistema
- Utilizando la conexión de red (para conectarse a servidores definidos)
- Acceso al sistema de archivos del 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 utilizar 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 utilizar la conexión de red, debe estar autenticada y tener el permiso adecuado para utilizar la red.
java.net
- Los sitios web a los que se dirigirá la aplicación están bajo el control total del Proveedor de Contenidos. Este control se garantiza de dos maneras:
- Solo se permite ejecutar aplicaciones BD-J autenticadas (para discos) 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 obligatorio del sistema y almacenamiento local opcional. Se accede a todo el almacenamiento mediante 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 BD-J. El tamaño mínimo requerido de este almacenamiento del sistema permitirá el almacenamiento de datos de aplicaciones como configuraciones, puntuaciones más altas, etc. No será lo suficientemente grande como para almacenar material AV descargado. Para este propósito, está disponible el almacenamiento local opcional. Por lo general, el almacenamiento del sistema se implementará mediante memoria Flash y el almacenamiento local opcional se implementará en un HDD.
- 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 espacio de almacenamiento del disco y no pueden acceder a la parte que pertenece a otros discos.
Desarrollo de contenidos
Los autores de contenido tienen a su disposición una variedad de estrategias de desarrollo, incluido el uso de entornos de desarrollo integrados (IDE) tradicionales como NetBeans o Eclipse , entornos gráficos que no requieren programación, como Macromedia Director, o mediante motores de renderización que consumen formatos de datos estándar como HTML, XML o SVG. Tener un entorno de programación completo disponible en cada reproductor de discos Blu-ray proporciona a los desarrolladores una plataforma para crear tipos de contenido que no están sujetos a las restricciones de los DVD estándar. Además de las API estándar de BD-J, los desarrolladores pueden utilizar bibliotecas y marcos de aplicaciones Java existentes, siempre que no utilicen funciones fuera de las limitaciones de la plataforma BD-J, incluido el hecho de que Java ME solo admite archivos de clase de la versión 1.3 de Java .
El HD Cookbook Project ofrece un conjunto de herramientas de libre acceso que permiten a los desarrolladores de Java producir imágenes de disco completas que incorporan BD-J. [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 los muchos estándares y componentes diferentes involucrados, la creación de documentación unificada sobre BD-J ha demostrado ser un desafío. [7] [8]
Código de muestra
El entorno BD-J está diseñado para ejecutar Xlets con paquetes no disponibles para aprovechar las características particulares de esta plataforma más allá de las definidas por Java TV .javax.*
Incluso un ejemplo tan simple como FirstBDJApp. [9]
Un desarrollador podría 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, por ejemplo, para la interfaz en lugar de para soporte de pulsaciones de teclas y códigos de teclas específicos de los dispositivos CDC más populares.
org.dvb.*
org.dvb.event.UserEventListener
java.awt.event.KeyListener
- Clases de disco Blu-ray 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 de localizar medios en el disco Blu-ray.
org.bluray.*
- Clases de API de DAVIC en el árbol de paquetes : un pequeño conjunto de clases que envuelven o extienden otros recursos de red y multimedia peculiares de la TV 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 utiliza algunas características de cada uno de los árboles de clases sería el Xlet BdjGunBunny (una versión muy simple de Space Invaders que utiliza una imagen de un conejo como tirador y tortugas como objetivos) proporcionado como ejemplo en el SDK de Java ME 3.0.
importar javax.tv.xlet.XletContext ; importar org.havi.ui.HScene ; importar org.havi.ui.HSceneFactory ; importar java.awt.Container ; importar javax.tv.graphics.TVContainer ; // Obtener un contenedor para la pantalla podría serpúblico void initXlet ( contexto XletContext ) { // API de Java TV para que sea compatible con Java TV TVContainer scene = TVContainer . getRootContainer ( context ); // O para BD-J, para utilizar características de HAVi no disponibles en Java TV HScene scene = HSceneFactory . getInstance (). getDefaultHScene (); // O quizás de forma más general... Contenedor contenedor = null ; boolean realBDJ = true ; if ( realBDJ ) contenedor = HSceneFactory . getInstance ( ). getDefaultHScene (); else contenedor = TVContainer . getRootContainer ( context ); ... }
Y lo mismo ocurre con los demás paquetes que no son de la misma marca. Asimismo, al intentar reproducir un vídeo, se puede llamar a la utilidad Blu-ray y DAVIC en lugar de utilizar JMF genérico:javax.*
importar javax.media.Player ; importar org.bluray.net.BDLocator ; importar org.davic.media.MediaLocator ; MediaLocator estrellas = new MediaLocator ( new BDLocator ( "bd://0.PLAYLIST:00003" )); Jugador jugador = Manager . createPlayer ( estrellas ); // En lugar del JMF puro tradicional y portátil pero más limitadoimportar java.net.URL ; importar javax.media.Manager ; importar javax.media.Player ; Reproductor mediaPlayer = Manager . createRealizedPlayer ( new URL ( "file:/mymovie.mov" ));
Publicación relacionada
- Programación de HD DVD y Blu-ray Disc The HD Cookbook (2008) de Michael Zink, Philip C. Starner, Bill Foote - ISBN 978-0-07-149670-4 - sitio web del libro
Véase también
Referencias
- ^ "Desarrollo de aplicaciones Blu-ray BD-J con Java ME". Archivado desde el original el 11 de septiembre de 2008. Consultado el 21 de octubre de 2008 .
- ^ "Blu-ray Disc Assn. promueve nueva vista adicional".
- ^ [hdcookbook.jovial.com/ HDCookbook para BD-J]
- ^ "Notas y pautas de creación de discos Blu-ray Java y GEM/MHP/OCAP". Archivado desde el original el 24 de diciembre de 2008. Consultado el 21 de octubre de 2008 .
- ^ Obtención del software de reproducción de BD-J para PC Archivado el 24 de diciembre de 2008 en Wayback Machine - menciona que podrían requerirse "versiones de desarrollador" especiales del juego
- ^ Aplicación BD-J de HelloWorld: su primera taza para la próxima generación de DVD Archivado el 7 de febrero de 2009 en Wayback Machine ; incluye notas sobre cómo habilitar la depuración o el registro remotos con reproductores de PC
- ^ Creación de documentación de referencia de API de Javadoc para el desarrollo de aplicaciones de discos Blu-ray
- ^ "Obtención de 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 para discos Blu-ray con Java ME, parte 1: Cómo crear 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 formato Blu-ray para Hollywood
- Sitio web oficial de DVB-MHP y DVB-GEM: middleware abierto para televisión interactiva
- TV Sin Fronteras - Sitio web MHP/OCAP de Steven Morris.
- HD Cookbook - Código y otras recetas para Blu-ray Java, GEM, MHP y OCAP
- Soluciones BD-J de Alticast