БД-Дж
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 г., все новые игроки должны иметь аппаратную поддержку функций «Bonus View», но игрокам могут потребоваться будущие обновления прошивки для включения этих функций. Поддержка BD Live всегда является дополнительной для BD-проигрывателя. [2]
от Sony PlayStation 3 стала фактическим лидером по совместимости и поддержке 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, таких как
java.awt.Button
), поэтому для создания анимации и графического интерфейса используются дополнительные классы. BD-J использует модель устройства Havi UI и набор виджетов для дистанционного управления, но он расширен, чтобы обеспечить поддержку разрешений, поддерживаемых BD, и элементов управления A/V, поддерживаемых BD. - BD-J имеет классы, которые позволяют пользователю точно синхронизировать определенные кадры фильма.
- Разрешены два типа синхронизации видео: один называется «свободной синхронизацией», который использует метод обратного вызова и работает с точностью до нескольких кадров события, а другой — «жесткая синхронизация», которая использует пакет
org.bluray
. Тесная синхронизация позволяет приложениям точно синхронизироваться с точным кадром, используя таймкоды из пакета.javax.media.Time
JMF ( Java Media Framework ). - Графическим пользовательским интерфейсом приложения 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 могут использовать
java.net
пакет для подключения к серверам в Интернете. Физическое соединение может различаться в зависимости от реализации, например Ethernet, телефонная линия и т. д. На сетевом уровне TCP/IP поддерживается HTTP и может использоваться протокол включен Java-пакет для безопасных соединений ( JSSE . Более того, в состав платформы BD-J ). Прежде чем приложение BD-J сможет использовать сетевое соединение, оно должно пройти аутентификацию и иметь соответствующее разрешение на использование сети. - Веб-сайты, на которые будет переходить приложение, находятся под полным контролем Контент-провайдера. Этот контроль обеспечивается двумя способами:
- При воспроизведении диска разрешено запускать только (дисковые) аутентифицированные приложения 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 с не- javax.*
доступны пакеты, позволяющие воспользоваться преимуществами функций, характерных для этой платформы, помимо тех, которые определены Java TV .
Даже простой пример, такой как FirstBDJApp. [9]
Разработчик может решить использовать не javax.*
пакеты и вместо этого используйте:
- Классы HAVi в дереве пакетов
org.havi.*
: альтернативные классы для получения, например,org.havi.ui.HScene
далеко за пределами того, что предусмотреноjavax.tv.graphics.TVContainer
(они оба являются расширениямиjava.awt.Container
) - Классы цифрового видеовещания (DVB) в дереве пакетов
org.dvb.*
: альтернативные классы, например,org.dvb.event.UserEventListener
интерфейс, а неjava.awt.event.KeyListener
для поддержки нажатий клавиш и кодов клавиш, специфичных для популярных устройств CDC. - Классы дисков Blu-ray в дереве пакетов
org.bluray.*
: классы DAVIC и DVB зависят от распознавания дополнительных событий, характерных для платформы BD-J, таких как всплывающие меню, и поиска мультимедиа на диске Blu-ray. - Классы API DAVIC в дереве пакетов
org.davic.*
: небольшой набор классов, обертывающий или расширяющий другие сетевые и мультимедийные ресурсы, характерные для интерактивного телевидения, которые классы HAVi, DVB и Blu-ray используют для локаторов и специализированных исключений, выходящих за рамки JMF (например, авторизация контента).
Рабочим примером программы, использующей некоторые функции каждого из деревьев классов, может быть BdjGunBunny Xlet (очень простая версия Space Invaders, использующая изображение кролика в качестве стрелка и черепах в качестве целей), представленный в качестве примера в Java. МЕ 3.0 SDK .
import javax.tv.xlet.XletContext;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import java.awt.Container;
import javax.tv.graphics.TVContainer;
// Getting a container for the screen could be
public void initXlet(XletContext context) {
// Java TV API to be compatible with Java TV
TVContainer scene = TVContainer.getRootContainer(context);
// Or for BD-J, to utilize HAVi features not available in Java TV
HScene scene = HSceneFactory.getInstance().getDefaultHScene();
// Or perhaps more generally...
Container container = null;
boolean realBDJ = true;
if (realBDJ)
container = HSceneFactory.getInstance().getDefaultHScene();
else
container = TVContainer.getRootContainer(context);
...
}
и то же самое для других не- javax.*
пакеты. Аналогично, при попытке воспроизвести видео можно вызвать утилиту Blu-ray и DAVIC, а не использовать стандартный JMF:
import javax.media.Player;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;
MediaLocator stars = new MediaLocator(new BDLocator("bd://0.PLAYLIST:00003"));
Player player = Manager.createPlayer(stars);
// Rather than traditional and portable but more limited pure JMF
import java.net.URL;
import javax.media.Manager;
import javax.media.Player;
Player mediaPlayer = Manager.createRealizedPlayer( new URL("file:/mymovie.mov" ));
Связанная публикация
[ редактировать ]- Программирование дисков HD DVD и Blu-ray. Поваренная книга HD (2008) Майкла Зинка, Филипа К. Старнера, Билла Фута - ISBN 978-0-07-149670-4 - сайт книги
См. также
[ редактировать ]- Расширенный контент , аналог BD-J на HD DVD
Ссылки
[ редактировать ]- ^ «Разработка приложений 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