Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 BD-J Xlet capabilities  





2 Content development  





3 Sample code  





4 Related publication  





5 See also  





6 References  





7 External links  














BD-J






Deutsch
Español
Français
Italiano


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from Blu-ray Disc Java)

BD-J, or Blu-ray Disc Java, is a specification supporting Java ME (specifically the Personal Basis Profile of the Connected Device Configuration or CDC) Xlets for advanced content on Blu-ray Disc and the Packaged Media profile of Globally Executable MHP (GEM).

BD-J allows for more sophisticated bonus content on Blu-ray Disc titles than standard DVD, including network access, picture-in-picture and access to expanded local storage. Collectively, these features (other than internet access) are referred to as "Bonus View", and the addition of internet access is called "BD Live". BD-J was developed by the Blu-ray Disc Association. All Blu-ray Disc players supporting video content are required by the specification to support BD-J.[1] Starting on October 31, 2007, all new players are required to have hardware support for the "Bonus View" features, but the players may require future firmware updates to enable the features. "BD Live" support is always optional for a BD player.[2]

Sony's PlayStation 3 has been the de facto leader in compliance and support of BD-J, adding Blu-ray Profile 1.1 support with a firmware upgrade, used to showcase BD-Live at CES 2008 in January.

BD-J Xlet capabilities[edit]

Content development[edit]

Content authors have a variety of development strategies available, including the use of traditional Integrated Development Environments (IDEs) like NetBeansorEclipse, non-programming graphical environments similar to Macromedia Director, or via rendering engines which consume standard data formats such as HTML, XML, or SVG. Having a full programming environment available on every Blu-ray Disc player provides developers with a platform for creating content types not bound by the restrictions of standard DVD. In addition to the standard BD-J APIs, developers may make use of existing Java libraries and application frameworks, assuming they do not use features outside the constraints of the BD-J platform, include that Java ME only supports Java version 1.3 class files.

A set of freely available tools that allow Java developers to produce complete disc images incorporating BD-J is available from the HD Cookbook Project.[3] In order to test content in a typical development environment (MS Windows), one needs either a PlayStation 3 or a third-party software player for Windows, paying attention to player versions to ensure that the player supports BD-J.[4][5][6]

Because of the many different standards and components involved, creating unified documentation on BD-J has proven to be a challenge.[7][8]

Sample code[edit]

The BD-J environment is designed to run Xlets with non-javax.* packages available to take advantage of the features particular to this platform beyond that defined by Java TV.

Even a simple example such as FirstBDJApp.[9]

A developer might choose to use not javax.* packages and instead use:

  1. HAVi classes in package tree org.havi.*: alternative classes to obtain, for example, an org.havi.ui.HScene far beyond what is provided by javax.tv.graphics.TVContainer (they are both extensions of java.awt.Container)
  2. Digital Video Broadcasting (DVB) classes in package tree org.dvb.*: alternative classes to, for example, the org.dvb.event.UserEventListener interface rather than java.awt.event.KeyListener for support for key presses and keycodes specific to popular CDC devices.
  3. Blu-ray Disc classes in the package tree org.bluray.*: the DAVIC and DVB classes depend upon to recognize additional events peculiar to the BD-J platform such as popup menus and to locate media on the Blu-ray disc.
  4. DAVIC API classes in package tree org.davic.*: A small set of classes wrapping or extending other network and media resources peculiar to interactive TV the HAVi, DVB and Blu-ray classes use for locators and specialized exceptions beyond the realm of JMF (such as content authorization).

A working example of a program using some features from each of the class trees would be the BdjGunBunny Xlet (a very simple version of Space Invaders using an image of a rabbit as the shooter and turtles as the targets) provided as an example in the Java 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);
...
}

and the same for the other non-javax.* packages. Likewise, when trying to play a video, one might call the Blu-ray and DAVIC utility rather than using generic 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" ));

Related publication[edit]

See also[edit]

References[edit]

  • ^ [hdcookbook.jovial.com/ HDCookbook for BD-J]
  • ^ "Blu-ray Disc Java and GEM/MHP/OCAP Authoring Notes and Guidelines". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  • ^ Getting (BD-J) PC Player software Archived 2008-12-24 at the Wayback Machine - mentions that special "developer versions" of the play might be required
  • ^ HelloWorld BD-J Application: Your first cup for the next generation DVD Archived 2009-02-07 at the Wayback Machine - includes notes on enabling remote debugging or logging with PC players
  • ^ Building Javadoc API Reference Documentation for Blu-ray Disc Application Development
  • ^ "Getting a BD-J Platform Definition". Archived from the original on 2008-12-24. Retrieved 2008-10-21.
  • ^ Blu-ray Disc Application Development with Java ME, Part 1: Creating Your First Application Bruce Hopkins, September 2008
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=BD-J&oldid=1140383764"

    Categories: 
    Blu-ray Disc
    Interactive television
    Java platform
    120 mm discs
    High-definition television
    Video storage
    Hidden categories: 
    Webarchive template wayback links
    Articles with short description
    Short description is different from Wikidata
     



    This page was last edited on 19 February 2023, at 21:33 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki