BD-J - BD-J

BD-J nebo Blu-ray Disc Java , je specifikace podporující Xlets Java ME (konkrétně profil Personal Basis konfigurace připojeného zařízení nebo CDC) pro pokročilý obsah na disku Blu-ray Disc a profil Packaged Media globálně spustitelného MHP ( KLENOT).

BD-J umožňuje, aby byl bonusový obsah na titulech disků Blu-ray mnohem propracovanější než bonusový obsah poskytovaný standardním DVD , včetně přístupu k síti, obrazu v obraze a přístupu k rozšířenému místnímu úložišti . Společně jsou tyto funkce (jiné než přístup k internetu) označovány jako „ Bonus View “ a přidání přístupu k internetu se nazývá „ BD Live “. BD-J byl vyvinut Blu-ray Disc Association . Všechny přehrávače disků Blu-ray podporující videoobsah podle specifikace vyžadují podporu BD-J. Počínaje 31. říjnem 2007 musí mít všichni noví hráči hardwarovou podporu pro funkce „Bonus View“, ale pro aktivaci těchto funkcí mohou hráči vyžadovat budoucí aktualizace firmwaru. Podpora „BD Live“ je u přehrávače BD vždy volitelná.

Sony PlayStation 3 je de facto lídrem v oblasti dodržování předpisů a podpory BD-J. PlayStation 3 přidala podporu Blu-ray Profile 1.1 s upgradem firmwaru a byla použita k předvedení BD-Live na CES 2008 v lednu.

Funkce BD-J Xlet

  • Vyvolání BD-J Xletů je spuštěno událostmi, které se kolem nich vyskytnou - například výběrem názvu filmu nebo vložením nového disku. Xlets pak mohou volat další Xlets do hry.
  • Zabezpečení v BD-J je založeno na modelu zabezpečení platformy Java. To znamená, že podepsané aplikace v JAR mohou provádět více úkolů než nepodepsané, například přístup pro čtení / zápis k místnímu úložišti, přístup k síti, výběr dalších titulů na disku BD-ROM a ovládání dalších spuštěných aplikací BD-J.
  • Xlety (jako součást profilu CDC Personal Basis Profile) nemají žádné grafické uživatelské rozhraní (tj. Žádné widgety AWT, jako například ), takže jsou povolány další třídy pro generování animace a grafického uživatelského rozhraní. BD-J používá model zařízení UI Havi a sadu widgetů pro použití na dálkové ovládání, ale je rozšířen, aby umožňoval BD podporovaná rozlišení a BD podporované A / V ovládací prvky.java.awt.Button
  • BD-J má třídy, které uživateli umožňují přesnou synchronizaci s konkrétními snímky ve filmu.
  • Jsou povoleny dva typy synchronizace videa, jeden s názvem „uvolněná synchronizace“, který používá metodu zpětného volání a je přesný v rámci několika snímků události, a druhý je „těsná synchronizace“, která používá balíček . Těsná synchronizace umožňuje aplikacím přesně synchronizovat přesný snímek pomocí časových kódů z balíčku JMF ( Java Media Framework ).org.blurayjavax.media.Time
  • GUI aplikace BD-J lze ovládat dálkovým ovládáním s požadovanou sadou kláves a volitelným ukazovacím zařízením. Sada požadovaných klíčů zahrnuje alespoň klíče potřebné k podpoře uživatelských operací v aplikacích HDMV.
  • Rámec GUI v BD-J zahrnuje rámec UI HAVi (6) nařízený GEM ; není to desktopový GUI framework jako Swing nebo AWT . Rámec GUI je založen na jádru AWT, jak je specifikováno PBP, ale sada widgetů obsahuje mechanismy pro navigaci na dálku z GEM a snadné přizpůsobení vzhledu a chování z HAVi.
  • BD-J zahrnuje mediální rámec podobný JMF pro přehrávání mediálního obsahu souvisejícího s diskem BD-ROM. Předpokládá se, že disk BD-ROM bude hlavním zdrojem mediálních souborů, ale nebude jediný; dalšími zdroji by mohl být webový server studia a místní úložiště.
  • BD-J obsahuje standardní knihovny Java pro dekódování a zobrazování obrázků ve formátech JFIF ( JPEG ), PNG a dalších. Tyto obrázky lze zobrazit v grafické rovině Java pomocí standardních grafických funkcí Java. Obrázek lze také vykreslit v rovině pozadí pomocí balíčku specifického pro BD-J.
  • Text lze vykreslit pomocí standardních textových funkcí Java. Tyto funkce pro vykreslování textu jsou rozšířeny o pokročilejšího správce rozložení textu, který je integrován do rozhraní BD-J UI. Text se vykresluje pomocí vektorového písma, které vychází z disku, přehrávače (výchozí písmo) nebo se stáhne ze sítě.
  • Zvuky tlačítek z HDMV lze také použít v rozhraní Java UI. Zvukové soubory lze načíst a vykreslit jako reakci na stisknutí klávesy uživatelem nebo jako reakci na označenou událost související s filmem - nebo jako reakci na jakoukoli událost vygenerovanou aplikací BD-J.
  • Ověřené aplikace mohou použít (podepsaný) soubor žádosti o oprávnění k získání oprávnění, která přesahují karanténu BD-J. Oprávnění lze získat pro:
    • Čtení a zápis na místní a systémové úložiště
    • Použití síťového připojení (pro připojení k definovaným serverům)
    • Přístup do systému souborů na disku BD-ROM
    • Výběr titulu dalších titulů na disku BD-ROM
    • Ovládání dalších spuštěných aplikací BD-J
  • Aplikace BD-J mohou balíček použít k připojení k serverům v Internetu. Fyzické připojení se může mezi implementacemi lišit, např. Ethernet, telefonní linka atd. Na úrovni sítě je podporován protokol TCP / IP a lze použít protokol HTTP . Součástí platformy BD-J je navíc balíček Java pro zabezpečená připojení ( JSSE ). Dříve, než aplikace BD-J bude moci používat síťové připojení, musí být ověřena a musí mít vhodné oprávnění k používání sítě.java.net
  • Webové stránky, na které aplikace přejde, jsou plně pod kontrolou poskytovatele obsahu. Tato kontrola je zaručena dvěma způsoby:
    • Při přehrávání disku je povoleno spouštět pouze (BD) J ověřené aplikace. Aplikace řídí použití síťového připojení.
    • Oprávnění definovaná na disku mohou navíc omezit použití síťového připojení (TCP / IP) na určité weby.
  • BD-J bude zahrnovat podporu úložiště. Zahrnuty jsou dvě varianty úložiště: povinné systémové úložiště a volitelné místní úložiště. Veškeré úložiště je přístupné pomocí metod z balíčku Java IO. Cesta pro místní úložiště je uvedena v [GEM].
  • Systémové úložiště je úložiště, které bude přítomno ve všech přehrávačích BD-J. Požadovaná minimální velikost tohoto systémového úložiště umožní ukládání aplikačních dat, jako jsou nastavení, vysoké skóre atd. Nebude dostatečně velká pro uložení staženého AV materiálu. Pro tento účel je k dispozici volitelné místní úložiště. Systémové úložiště bude obvykle implementováno pomocí paměti Flash a volitelné místní úložiště bude implementováno na pevném disku.
  • Protože úložiště je sdílený prostředek mezi všemi disky přehrávanými v přehrávači, je řízení přístupu Java součástí BD-J. Aplikace BD-J mají přístup pouze k určité části úložného prostoru specifické pro disk a nemají přístup k části patřící k jiným diskům.

Vývoj obsahu

Autoři obsahu mají k dispozici celou řadu vývojových strategií, včetně použití tradičních integrovaných vývojových prostředí (IDE), jako jsou NetBeans nebo Eclipse , neprogramovacích grafických prostředí podobných Macromedia Director nebo prostřednictvím vykreslovacích strojů, které využívají standardní datové formáty, jako je HTML, XML nebo SVG. Mít k dispozici úplné programovací prostředí na každém přehrávači disků Blu-ray poskytuje vývojářům platformu pro vytváření typů obsahu, které nejsou vázány omezeními standardního DVD. Kromě standardních rozhraní API BD-J mohou vývojáři využívat stávající knihovny Java a aplikační rámce za předpokladu, že nepoužívají funkce mimo omezení platformy BD-J, včetně toho, že prostředí Java ME podporuje pouze soubory třídy Java verze 1.3 .

Sada volně dostupných nástrojů, které vývojářům Java umožňují vytvářet kompletní obrazy disků zahrnující BD-J, je k dispozici v HD Cookbook Project. Abyste mohli otestovat obsah v typickém vývojovém prostředí (MS Windows), potřebujete buď PlayStation 3 nebo softwarový přehrávač jiného výrobce pro Windows, přičemž věnujte pozornost verzi přehrávače, abyste zajistili, že přehrávač podporuje BD-J.

Vytvoření jednotné dokumentace na BD-J se ukázalo jako výzva z důvodu mnoha různých standardů a komponent.

Ukázkový kód

Prostředí BD-J je navrženo pro běh Xletů s nebalenými balíčky, aby bylo možné využívat výhod konkrétních funkcí této platformy nad rámec definovaný v Java TV . javax.*

Dokonce i jednoduchý příklad, jako je FirstBDJApp.

Vývojář se může rozhodnout použít ne balíčky a místo toho použít: javax.*

  1. Třídy HAVi ve stromu balíčků : alternativní třídy k získání například daleko za to, co poskytuje (obě jsou rozšířeními )org.havi.*org.havi.ui.HScenejavax.tv.graphics.TVContainerjava.awt.Container
  2. Třídy digitálního vysílání videa (DVB) ve stromu balíčků : alternativní třídy, například k rozhraní, spíše než k podpoře stisknutí kláves a kódů specifických pro populární zařízení CDC.org.dvb.*org.dvb.event.UserEventListenerjava.awt.event.KeyListener
  3. Třídy disků Blu-ray ve stromu balíčku : Třídy DAVIC a DVB závisí na rozpoznání dalších událostí, které jsou pro platformu BD-J charakteristické, jako jsou rozbalovací nabídky, a na vyhledání média na disku Blu-ray.org.bluray.*
  4. Třídy DAVIC API ve stromu balíčků : Malá sada tříd zahrnujících nebo rozšiřujících další síťové a mediální zdroje typické pro interaktivní TV, které třídy HAVi, DVB a Blu-ray používají pro vyhledávače a specializované výjimky mimo oblast JMF (například autorizace obsahu) .org.davic.*

Fungujícím příkladem programu využívajícího některé funkce z každého ze třídních stromů by byl BdjGunBunny Xlet (velmi jednoduchá verze Space Invaders používající obrázek králíka jako střelce a želv jako cílů) poskytovaný jako příklad v Javě ME 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);
...
}

a totéž pro ostatní nebalené balíčky. Podobně, když se pokoušíte přehrát video, můžete použít nástroj Blu-ray a DAVIC namísto použití obecného JMF: javax.*

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" ));

Související publikace

  • Programování HD DVD a Blu-ray Disc The HD Cookbook (2008), Michael Zink, Philip C. Starner, Bill Foote - ISBN  978-0-07-149670-4 - webové stránky knihy

Viz také

Reference

externí odkazy