BD-J или Blu-ray Disc Java - это спецификация, поддерживающая Java ME (в частности, персональный базовый профиль конфигурации подключенного устройства или CDC) Xlets для расширенного содержимого на диске Blu-ray и профиль упакованных носителей глобально исполняемого MHP ( GEM).
BD-J позволяет сделать бонусный контент на заголовках дисков Blu-ray гораздо более сложным, чем бонусный контент, предоставляемый стандартным DVD , включая доступ к сети, «картинка в картинке» и доступ к расширенному локальному хранилищу . В совокупности эти функции (кроме доступа в Интернет) называются « Бонусный просмотр », а добавление доступа в Интернет называется « BD Live ». BD-J был разработан ассоциацией Blu-ray Disc Association . Все проигрыватели дисков Blu-ray, поддерживающие видеоконтент, согласно спецификации должны поддерживать BD-J. [1] Начиная с 31 октября 2007 г., все новыеплееры должны иметь аппаратную поддержку функций «Bonus View», но игрокам могут потребоваться будущие обновления прошивки для включения этих функций. Поддержка «BD Live» всегда является необязательной для проигрывателя BD. [2]
PlayStation 3 от Sony была де-факто лидером в соблюдении и поддержке BD-J. [ необходима цитата ] PlayStation 3 добавила поддержку 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 [ развернуть аббревиатуру ] .
- Фреймворк GUI в 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 . Более того, пакет Java для безопасных соединений ( JSSE ) включен как часть платформы BD-J. Прежде чем приложение 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] [9]
Образец кода
Среда BD-J предназначена для запуска Xlets с доступными не- пакетами, чтобы воспользоваться преимуществами функций, характерных для этой платформы, помимо тех, что определены Java TV .javax.*
Даже такой простой пример, как FirstBDJApp. [10]
Разработчик может выбрать не пакеты, а вместо этого использовать: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 ME 3.0 SDK .
import javax.tv.xlet.XletContext ;импортировать org.havi.ui.HScene ; import org.havi.ui.HSceneFactory ;import java.awt.Container ; import javax.tv.graphics.TVContainer ;// Получить контейнер для экрана можноpublic void initXlet ( контекст XletContext ) { // API Java TV для совместимости с Java TV TVContainer scene = TVContainer . getRootContainer ( контекст );// Или для BD-J, чтобы использовать функции HAVi, недоступные в Java TV HScene scene = HSceneFactory . getInstance (). getDefaultHScene ();// Или, возможно, в более общем плане ... Container container = null ; логическое realBDJ = true ; если ( realBDJ ) контейнер = HSceneFactory . getInstance (). getDefaultHScene (); еще контейнер = TVContainer . getRootContainer ( контекст ); ... }
и то же самое для других пакетов. Аналогичным образом, при попытке воспроизвести видео можно вызвать утилиту Blu-ray и DAVIC, а не использовать общий JMF:javax.*
import javax.media.Player ; import org.bluray.net.BDLocator ; import org.davic.media.MediaLocator ; MediaLocator stars = новый MediaLocator ( новый BDLocator ( "bd: //0.PLAYLIST: 00003" )); Игрок player = Менеджер . createPlayer ( звезды );// Вместо традиционного и портативного, но более ограниченного чистого JMFimport java.net.URL ; import javax.media.Manager ; import javax.media.Player ; Player mediaPlayer = Менеджер . createRealizedPlayer ( новый URL ( "файл: /mymovie.mov" ));
Связанная публикация
- Программирование HD DVD и Blu-ray Disc Поваренная книга HD (2008) Майкла Зинка, Филипа С. Старнера, Билла Фута - ISBN 978-0-07-149670-4 - веб-сайт книги
Смотрите также
- Расширенный контент , аналог BD-J на HD DVD
- Диск Blu-ray
Рекомендации
- ^ «Разработка приложений Blu-ray BD-J с использованием Java ME» . Архивировано из оригинала на 2008-09-11 . Проверено 21 октября 2008 .
- ^ «Blu-ray Disc Assn. Продвигает новый бонусный просмотр» .
- ^ HDCookbook для BD-J
- ^ «Примечания и рекомендации по созданию дисков Blu-ray Java и GEM / MHP / OCAP» . Архивировано из оригинала на 2008-12-24 . Проверено 21 октября 2008 .
- ^ Получение (BD-J) программного обеспечения PC Player. Архивировано 24 декабря 2008 г. на Wayback Machine - упоминается, что могут потребоваться специальные "версии для разработчиков".
- ^ Приложение HelloWorld BD-J: Ваша первая чашка для DVD следующего поколения. Архивировано 07 февраля 2009 г. на Wayback Machine - включает примечания по включению удаленной отладки или регистрации с помощью ПК-плееров.
- ^ Единая документация разработчика для BD-J теперь возможна
- ^ Создание справочной документации по API Javadoc для разработки приложений для дисков Blu-ray
- ^ «Получение определения платформы BD-J» . Архивировано из оригинала на 2008-12-24 . Проверено 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 - Open Middleware для интерактивного телевидения
- Телевидение без границ - веб-сайт MHP / OCAP от Стивена Морриса.
- HD Cookbook - Код и другие рецепты для Blu-ray Java, GEM, MHP и OCAP
- Решения Alticast BD-J