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.bluray
javax.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.*
-
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.HScene
javax.tv.graphics.TVContainer
java.awt.Container
-
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.UserEventListener
java.awt.event.KeyListener
- 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.*
-
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é
- Advanced Content , protějšek BD-J na HD DVD
- Disk Blu-ray
Reference
externí odkazy
- Oficiální fóra java.net BD-J - oficiální fóra Sun java.net pro disky Blu-ray Disc Java.
- bdjforum.com - Neoficiální fórum pro vývojáře BD-J a problémy týkající se vytváření HD.
- Technická zasedání JavaOne 2007: Produkce Blu-ray Java softwarových titulů pro Hollywood
- Oficiální web pro DVB-MHP a DVB-GEM - Open Middleware pro interaktivní TV
- TV bez hranic - web MHP / OCAP od Stevena Morrise.
- HD kuchařka - kód a další recepty na Blu-ray Java, GEM, MHP a OCAP
- Řešení Alticast BD-J