BD-J

BD-J 또는 블루레이 디스크 자바(Blu-ray Disc Java)는 자바 ME (특히 연결 장치 구성 또는 CDC의 개인 기본 프로필) Xlet을 지원하는 사양으로, 블루레이 디스크의 고급 콘텐츠와 GEM (Globally Executable MHP)의 패키지 미디어 프로필을 위한 것이다.

BD-J는 네트워크 액세스, 픽처 인 픽처, 확장된 로컬 저장소 액세스를 포함하여 표준 DVD보다 더 정교한 보너스 콘텐츠를 블루레이 디스크 타이틀에 허용한다. 이러한 기능(인터넷 액세스 제외)을 통칭하여 "보너스 뷰(Bonus View)"라고 하며, 인터넷 액세스가 추가된 것을 "BD 라이브(BD Live)"라고 한다. BD-J는 블루레이 협회에서 개발했다. 비디오 콘텐츠를 지원하는 모든 블루레이 디스크 플레이어는 사양에 따라 BD-J를 지원해야 한다. 2007년 10월 31일부터 모든 신규 플레이어는 "보너스 뷰" 기능을 위한 하드웨어 지원이 필요하지만, 플레이어는 위에 언급된 기능을 활성화하기 위해 향후 펌웨어 업데이트가 필요할 수 있다. "BD 라이브" 지원은 BD 플레이어에서 항상 선택 사항이다.

소니의 플레이스테이션 3는 BD-J 규정 준수 및 지원에서 사실상의 선두 주자였으며, CES 2008에서 BD-Live를 선보이기 위해 사용된 펌웨어 업그레이드를 통해 블루레이 프로필 1.1 지원을 추가했다.

BD-J Xlet 기능

콘텐츠 개발

콘텐츠 저작자는 넷빈즈나 이클립스와 같은 기존의 통합 개발 환경 (IDE), 매크로미디어 디렉터와 유사한 비프로그래밍 그래픽 환경, 또는 HTML, XML, SVG와 같은 표준 데이터 형식을 사용하는 렌더링 엔진을 포함하여 다양한 개발 전략을 사용할 수 있다. 모든 블루레이 디스크 플레이어에서 완전한 프로그래밍 환경을 사용할 수 있다는 것은 개발자에게 표준 DVD의 제한에 묶이지 않는 콘텐츠 유형을 만들 수 있는 플랫폼을 제공한다. 표준 BD-J API 외에도 개발자는 기존 자바 라이브러리 및 응용 프로그램 프레임워크를 사용할 수 있다. 단, BD-J 플랫폼의 제약 조건 외의 기능을 사용하지 않고, 자바 ME가 자바 버전 1.3 클래스 파일만 지원한다는 점을 포함한다.

HD 쿡북 프로젝트에서 자바 개발자가 BD-J를 통합한 완전한 디스크 이미지를 생성할 수 있도록 하는 무료 도구 세트를 제공한다. 일반적인 개발 환경(MS 윈도우)에서 콘텐츠를 테스트하려면 플레이스테이션 3 또는 윈도우용 타사 소프트웨어 플레이어가 필요하며, 플레이어가 BD-J를 지원하는지 확인하기 위해 플레이어 버전에 주의해야 한다.

많은 다양한 표준과 구성 요소가 관련되어 있기 때문에, BD-J에 대한 통합 문서를 만드는 것은 도전과제로 입증되었다.

샘플 코드

BD-J 환경은 Xlet을 실행하도록 설계되었으며, 자바 TV에서 정의된 것 외에 이 플랫폼의 특정 기능을 활용하기 위해 비-javax.* 패키지를 사용할 수 있다.

FirstBDJApp와 같은 간단한 예시도 있다.

개발자는 javax.* 패키지 대신 다음을 사용할 수 있다.

  1. 패키지 트리 org.havi.*에 있는 HAVi 클래스: 예를 들어, javax.tv.graphics.TVContainer에서 제공하는 것보다 훨씬 더 많은 기능을 제공하는 org.havi.ui.HScene을 얻기 위한 대안 클래스 (둘 다 java.awt.Container의 확장이다)
  2. 패키지 트리 org.dvb.*에 있는 디지털 비디오 브로드캐스팅 (DVB) 클래스: 예를 들어, 대중적인 CDC 장치에 특정한 키 누름 및 키 코드 지원을 위한 java.awt.event.KeyListener 인터페이스 대신 org.dvb.event.UserEventListener 인터페이스와 같은 대안 클래스
  3. 패키지 트리 org.bluray.*에 있는 블루레이 디스크 클래스: 팝업 메뉴와 같은 BD-J 플랫폼의 특이한 추가 이벤트를 인식하고 블루레이 디스크에서 미디어를 찾기 위해 DAVIC 및 DVB 클래스가 의존한다.
  4. 패키지 트리 org.davic.*에 있는 DAVIC API 클래스: JMF 범위를 넘어선 로케이터 및 특수 예외(예: 콘텐츠 인증)를 위해 HAVi, DVB 및 블루레이 클래스가 사용하는 대화형 TV에 특이한 다른 네트워크 및 미디어 리소스를 래핑하거나 확장하는 작은 클래스 세트

각 클래스 트리의 일부 기능을 사용하는 작동하는 프로그램의 예는 자바 ME 3.0 SDK에서 예시로 제공되는 BdjGunBunny Xlet (토끼 이미지를 슈터로, 거북이를 타겟으로 사용하는 매우 간단한 스페이스 인베이더 버전)이다.

import javax.tv.xlet.XletContext;

import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;

import java.awt.Container;
import javax.tv.graphics.TVContainer;

// 화면용 컨테이너를 가져오는 방법

public void initXlet(XletContext context) {

// Java TV와의 호환성을 위한 Java TV API
TVContainer scene = TVContainer.getRootContainer(context);

// 또는 Java TV에서 사용할 수 없는 HAVi 기능을 활용하기 위한 BD-J
HScene scene = HSceneFactory.getInstance().getDefaultHScene();

// 또는 더 일반적으로...
Container container = null;
boolean realBDJ = true;
if (realBDJ)
	container = HSceneFactory.getInstance().getDefaultHScene();
else
	container = TVContainer.getRootContainer(context);
...
}

다른 비-javax.* 패키지도 마찬가지이다. 마찬가지로 비디오를 재생하려고 할 때 일반 JMF를 사용하는 대신 블루레이 및 DAVIC 유틸리티를 호출할 수 있다.

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

// 전통적이고 이식성이 좋지만 더 제한적인 순수 JMF 대신

import java.net.URL;
import javax.media.Manager;
import javax.media.Player;

    Player mediaPlayer = Manager.createRealizedPlayer( new URL("file:/mymovie.mov" ));

관련 출판물

같이 보기

각주

  1. ↑ “Blu-ray BD-J Application Development using Java ME”. 2008년 9월 11일에 원본 문서에서 보존된 문서. 2008년 10월 21일에 확인함.
  2. ↑ “Blu-ray Disc Assn. promotes new Bonus View”. 2008년 12월 18일에 원본 문서에서 보존된 문서. 2025년 10월 28일에 확인함.
  3. ↑ [hdcookbook.jovial.com/ HD Cookbook for BD-J]
  4. ↑ “Blu-ray Disc Java and GEM/MHP/OCAP Authoring Notes and Guidelines”. 2008년 12월 24일에 원본 문서에서 보존된 문서. 2008년 10월 21일에 확인함.
  5. ↑ Getting (BD-J) PC Player software 보관됨 2008-12-24 - 웨이백 머신 - mentions that special "developer versions" of the play might be required
  6. ↑ HelloWorld BD-J Application: Your first cup for the next generation DVD 보관됨 2009-02-07 - 웨이백 머신 - includes notes on enabling remote debugging or logging with PC players
  7. ↑ Building Javadoc API Reference Documentation for Blu-ray Disc Application Development
  8. ↑ “Getting a BD-J Platform Definition”. 2008년 12월 24일에 원본 문서에서 보존된 문서. 2008년 10월 21일에 확인함.
  9. ↑ Blu-ray Disc Application Development with Java ME, Part 1: Creating Your First Application Bruce Hopkins, September 2008

외부 링크