Спецификация Java Blu-ray
BD-J , или Blu-ray Disc Java , — это спецификация, поддерживающая Java ME (в частности, личный базовый профиль конфигурации подключенного устройства или CDC) Xlets для расширенного контента на дисках Blu-ray и профиль упакованного носителя глобального исполняемого файла MHP ( ЖЕМЧУЖИНА).
BD-J позволяет воспроизводить более сложный дополнительный контент на дисках Blu-ray, чем стандартный DVD , включая доступ к сети, функцию «картинка в картинке» и доступ к расширенному локальному хранилищу . В совокупности эти функции (кроме доступа в Интернет) называются « Bonus View », а добавление доступа в Интернет называется « BD Live ». BD-J был разработан Ассоциацией дисков Blu-ray . Все проигрыватели дисков Blu-ray, поддерживающие видеоконтент, согласно спецификации должны поддерживать BD-J. [1] Начиная с 31 октября 2007 г., все новые игроки должны иметь аппаратную поддержку функций «Бонусный просмотр», но для включения этих функций игрокам могут потребоваться будущие обновления прошивки. Поддержка BD Live всегда является дополнительной для BD-проигрывателя. [2]
PlayStation 3 от Sony стала фактическим лидером по совместимости и поддержке BD-J, добавив поддержку Blu-ray Profile 1.1 с обновлением прошивки, которая использовалась для демонстрации BD-Live на выставке CES 2008 в январе.
Возможности BD-J Xlet
- Вызов BD-J Xlets запускается событиями, происходящими вокруг них, например, выбором названия фильма или вставкой нового диска. Xlets, в свою очередь, могут затем вызывать в игру других Xlets.
- Безопасность в BD-J основана на модели безопасности платформы Java. То есть подписанные приложения в JAR-файлах могут выполнять больше задач, чем неподписанные, такие как доступ для чтения/записи к локальному хранилищу, доступ к сети, выбор других заголовков на диске BD-ROM и управление другими запущенными приложениями BD-J.
- Xlets (как часть личного базового профиля CDC) не имеют графического пользовательского интерфейса (т. е. не имеют виджетов AWT, таких как ), поэтому для создания анимации и графического пользовательского интерфейса задействуются дополнительные классы. BD-J использует модель устройства Havi UI и набор виджетов для дистанционного управления, но он расширен, чтобы обеспечить поддержку разрешений, поддерживаемых BD, и элементов управления A/V, поддерживаемых BD.
java.awt.Button
- BD-J имеет классы, которые позволяют пользователю точно синхронизировать определенные кадры фильма.
- Разрешено два типа синхронизации видео: один называется «свободная синхронизация», которая использует метод обратного вызова и выполняется с точностью до нескольких кадров события, а другой — «жесткая синхронизация», которая использует пакет . Тесная синхронизация позволяет приложениям точно синхронизироваться с точным кадром, используя таймкоды из пакета JMF ( Java Media Framework ).
org.bluray
javax.media.Time
- Графическим пользовательским интерфейсом приложения BD-J можно управлять с помощью пульта дистанционного управления с необходимым набором клавиш и дополнительным указательным устройством. Набор необходимых ключей включает как минимум ключи, необходимые для поддержки пользовательских операций в приложениях HDMV [ развернуть акроним ] .
- Структура графического пользовательского интерфейса в BD-J включает структуру пользовательского интерфейса HAVi (6), утвержденную GEM ; это не среда графического интерфейса рабочего стола, такая как Swing или AWT . Платформа графического пользовательского интерфейса основана на ядре AWT, как указано в PBP, но набор виджетов включает механизмы для удаленной навигации из GEM и простую настройку внешнего вида из HAVi.
- BD-J включает в себя медиа-инфраструктуру, аналогичную JMF, для воспроизведения медиа-контента, связанного с диском BD-ROM. Предполагается, что диск BD-ROM будет основным источником медиафайлов, но не единственным; другими источниками могут быть веб-сервер студии и локальное хранилище.
- BD-J включает стандартные библиотеки Java для декодирования и отображения изображений в форматах JFIF ( JPEG ), PNG и других форматах изображений. Эти изображения могут отображаться в графической плоскости Java с использованием стандартных графических функций Java. Изображение также можно визуализировать в фоновой плоскости с помощью специального пакета BD-J.
- Текст можно визуализировать с помощью стандартных текстовых функций Java. Эти функции рендеринга текста расширены за счет более продвинутого менеджера макета текста, который интегрируется с платформой пользовательского интерфейса BD-J. Текст отображается с использованием векторного шрифта, взятого с диска, плеера (шрифт по умолчанию) или загруженного из сети.
- Звуки кнопок из HDMV [ развернуть акроним ] также могут использоваться платформой пользовательского интерфейса Java. Звуковые файлы можно загружать и воспроизводить как реакцию на нажатие пользователем клавиши или как реакцию на отмеченное событие, связанное с фильмом, или как реакцию на любое событие, генерируемое приложением BD-J.
- Приложения, прошедшие проверку подлинности, могут использовать (подписанный) файл запроса разрешений для получения разрешений, выходящих за пределы изолированной программной среды BD-J. Разрешения можно получить:
- Чтение и запись в локальное и системное хранилище
- Использование сетевого подключения (для подключения к определенным серверам)
- Доступ к файловой системе на диске BD-ROM
- Выбор заголовков из других заголовков на диске BD-ROM
- Управление другими запущенными приложениями BD-J
- Приложения BD-J могут использовать пакет для подключения к серверам в Интернете. Физическое соединение может различаться в зависимости от реализации, например Ethernet, телефонная линия и т. д. На сетевом уровне поддерживается TCP/IP и может использоваться протокол HTTP . Более того, в состав платформы BD-J включен Java-пакет для безопасных соединений ( JSSE ). Прежде чем приложение BD-J сможет использовать сетевое соединение, оно должно пройти аутентификацию и иметь соответствующее разрешение на использование сети.
java.net
- Веб-сайты, на которые будет переходить приложение, находятся под полным контролем Контент-провайдера. Этот контроль обеспечивается двумя способами:
- При воспроизведении диска разрешено запускать только (дисковые) аутентифицированные приложения BD-J. Приложение контролирует использование сетевого подключения.
- Кроме того, разрешения, определенные на диске, могут ограничить использование сетевого подключения (TCP/IP) определенными сайтами.
- BD-J будет включать поддержку хранилища. Включены два варианта хранилища: обязательное системное хранилище и дополнительное локальное хранилище. Доступ ко всему хранилищу осуществляется с помощью методов из пакета Java IO. Путь к локальному хранилищу указан в [GEM].
- Системное хранилище — это хранилище, которое будет присутствовать во всех проигрывателях BD-J. Требуемый минимальный размер системного хранилища позволит хранить данные приложений, такие как настройки, рекорды и т. д. Его будет недостаточно для хранения загруженного AV-материала. Для этой цели доступно дополнительное локальное хранилище. Обычно системное хранилище будет реализовано с использованием флэш-памяти, а дополнительное локальное хранилище будет реализовано на жестком диске.
- Поскольку хранилище является общим ресурсом для всех дисков, воспроизводимых на проигрывателе, контроль доступа Java является частью BD-J. Приложения BD-J могут получить доступ только к определенной части дискового пространства и не могут получить доступ к части, принадлежащей другим дискам.
Разработка контента
Авторам контента доступны различные стратегии разработки, включая использование традиционных интегрированных сред разработки (IDE), таких как NetBeans или Eclipse , непрограммирующих графических сред, подобных Macromedia Director, или механизмов рендеринга, которые используют стандартные форматы данных, такие как HTML, XML. или SVG. Наличие полной среды программирования, доступной на каждом проигрывателе дисков Blu-ray, предоставляет разработчикам платформу для создания типов контента, не связанных ограничениями стандартного DVD. В дополнение к стандартным API-интерфейсам BD-J разработчики могут использовать существующие библиотеки Java и платформы приложений, при условии, что они не используют функции, выходящие за рамки ограничений платформы BD-J, включая то, что Java ME поддерживает только файлы классов Java версии 1.3 .
Набор свободно доступных инструментов, которые позволяют разработчикам Java создавать полные образы дисков, включающие BD-J, доступен в проекте HD Cookbook Project. [3] Чтобы протестировать контент в типичной среде разработки (MS Windows), необходима либо PlayStation 3, либо сторонний программный проигрыватель для Windows. Обратите внимание на версии проигрывателя, чтобы убедиться, что проигрыватель поддерживает BD-J. [4] [5] [6]
Из-за множества различных стандартов и компонентов создание унифицированной документации по BD-J оказалось сложной задачей. [7] [8]
Образец кода
Среда BD-J предназначена для запуска Xlets без доступных пакетов, чтобы воспользоваться преимуществами функций, характерных для этой платформы, помимо тех, которые определены Java TV .javax.*
Даже простой пример, такой как FirstBDJApp. [9]
Разработчик может решить использовать не пакеты, а вместо этого использовать:javax.*
- Классы HAVi в дереве пакетов : альтернативные классы, позволяющие получить, например, гораздо больше возможностей (они оба являются расширениями ) .
org.havi.*
org.havi.ui.HScene
javax.tv.graphics.TVContainer
java.awt.Container
- Классы цифрового видеовещания (DVB) в дереве пакетов : альтернативные классы, например, для интерфейса, а не для поддержки нажатий клавиш и кодов клавиш, специфичных для популярных устройств CDC.
org.dvb.*
org.dvb.event.UserEventListener
java.awt.event.KeyListener
- Классы дисков Blu-ray в дереве пакетов : классы DAVIC и DVB зависят от распознавания дополнительных событий, характерных для платформы BD-J, таких как всплывающие меню, и поиска мультимедиа на диске Blu-ray.
org.bluray.*
- Классы API DAVIC в дереве пакетов : небольшой набор классов, обертывающий или расширяющий другие сетевые и мультимедийные ресурсы, характерные для интерактивного телевидения, которые классы HAVi, DVB и Blu-ray используют для локаторов и специализированных исключений за пределами JMF (например, авторизация контента). .
org.davic.*
Рабочим примером программы, использующей некоторые функции каждого из деревьев классов, может быть BdjGunBunny Xlet (очень простая версия Space Invaders, использующая изображение кролика в качестве стрелка и черепах в качестве целей), представленный в качестве примера в Java. МЕ 3.0 SDK.
импортировать javax.tv.xlet.XletContext ; импортировать org.havi.ui.HScene ; импортировать org.havi.ui.HSceneFactory ; импортировать java.awt.Container ; импортировать javax.tv.graphics.TVContainer ; // Получение контейнера для экрана может бытьpublic void initXlet ( контекст XletContext ) { // Java TV API должен быть совместим с Java TV TVContainer Scene = TVContainer . getRootContainer ( контекст ); // Или для BD-J, чтобы использовать функции HAVi, недоступные в Java TV HScene Scene = HSceneFactory . ПолучитьЭкземпляр (). getDefaultHScene (); // Или, возможно , в более общем смысле... ContainerContainer = null ; логическое значение realBDJ = правда ; если ( realBDJ ) контейнер = HSceneFactory . ПолучитьЭкземпляр (). getDefaultHScene (); еще контейнер = TVContainer . getRootContainer ( контекст ); ... }
и то же самое для других не- пакетов. Аналогично, при попытке воспроизвести видео можно вызвать утилиту Blu-ray и DAVIC, а не использовать стандартный JMF:javax.*
импортировать javax.media.Player ; импортировать org.bluray.net.BDLocator ; импортировать org.davic.media.MediaLocator ; Звезды MediaLocator = новый MediaLocator ( новый BDLocator ( "bd://0.PLAYLIST:00003" )); Игрок Игрок = Менеджер . createPlayer ( звезды ); // Вместо традиционного и портативного, но более ограниченного чистого JMFимпортировать java.net.URL ; импортировать javax.media.Manager ; импортировать javax.media.Player ; Плеер mediaPlayer = Менеджер . createRealizedPlayer ( новый URL ( "file:/mymovie.mov" ));
Связанная публикация
- Программирование дисков HD DVD и Blu-ray. Поваренная книга HD (2008) Майкла Зинка, Филипа К. Старнера, Билла Фута - ISBN 978-0-07-149670-4 - веб-сайт книги
Смотрите также
Рекомендации
- ^ «Разработка приложений Blu-ray BD-J с использованием Java ME» . Архивировано из оригинала 11 сентября 2008 г. Проверено 21 октября 2008 г.
- ^ «Ассоциация Blu-ray Disc. продвигает новый бонусный вид» .
- ^ [hdcookbook.jovial.com/HDCookbook для BD-J]
- ^ «Примечания и рекомендации по созданию дисков Blu-ray Java и GEM/MHP/OCAP» . Архивировано из оригинала 24 декабря 2008 г. Проверено 21 октября 2008 г.
- ^ Получение программного обеспечения (BD-J) PC Player. Архивировано 24 декабря 2008 г. на Wayback Machine - упоминается, что могут потребоваться специальные «версии для разработчиков» пьесы.
- ^ Приложение HelloWorld BD-J: ваша первая чашка для DVD следующего поколения. Архивировано 7 февраля 2009 г. на Wayback Machine - включает примечания по включению удаленной отладки или регистрации с помощью проигрывателей ПК.
- ^ Создание справочной документации Javadoc API для разработки приложений для дисков Blu-ray.
- ^ «Получение определения платформы BD-J» . Архивировано из оригинала 24 декабря 2008 г. Проверено 21 октября 2008 г.
- ^ Разработка приложений для дисков Blu-ray с помощью Java ME, Часть 1: Создание вашего первого приложения Брюс Хопкинс, сентябрь 2008 г.
Внешние ссылки
- Официальные форумы Java.net BD-J — Официальные форумы Sun java.net для дисков Blu-ray Java.
- bdjforum.com — неофициальный форум для разработчиков BD-J и вопросов создания объемного HD.
- Технические сессии JavaOne 2007: создание программных продуктов Java на Blu-ray для Голливуда
- Официальный сайт DVB-MHP и DVB-GEM — открытого промежуточного программного обеспечения для интерактивного телевидения
- Телевидение без границ — веб-сайт MHP/OCAP от Стивена Морриса.
- HD Cookbook — код и другие рецепты для Blu-ray Java, GEM, MHP и OCAP
- Решения Alticast BD-J