BD-Jは、J2ME PBPに基づくBD向けのJava仕様である。ここではその機能と特徴を機能カテゴリ毎を説明する。
ページコンテンツ
グラフィックス・UI
BD-Jのグラフィックス描画は、一部例外はあるもののJava2水準のAWTに基づく。
一方UIは、BDプレーヤーのハードウェア・OS上で、コンテンツの雰囲気に合った魅力的なユーザエクスペリエンスを提供することに最適化しているため、PC向けJavaと大きく異なり、以下のような特徴を備える。
- プラットフォームのウインドウシステムを前提としない、簡易ウィンドウ機能(HScene)
- 3層プレーンの重ね合わせによる表示モデル
- 見た目のカスタマイズが可能なUIウィジェット (HAVi Level 2 UI)
- コンテンツ独自フォントの使用可能なフォント設定機能
- リモコン操作を考慮したキー入力取得
AV再生
BD-JのAV再生機能にはJava Media Framework (JMF)を採用しており、BD独自のJMF Controlを通じて、音声切換などBDのすべてのAV再生機能をJavaから制御可能である。
また、Movie PlayListやInteractive Audioの指定のために独自のLocatorが定義されている。
タイトル制御
BD-Jには、BDMVにおけるコンテンツの最小単位であるTitleを制御するための機能が用意されている。詳しくはここを参照されたい。
Titleの指定には、Locatorの仕組みを利用している。
アプリケーション制御
BD-Jアプリケーションの最小単位はXletである。XletはAppletを簡略化したようなものであり、BD-Jには、Xletを制御するための機能が用意されている。詳しくはここを参照されたい。
アプリケーションのライフサイクルは、原則としてTitleに従属するが、設定によりTitleやBDメディアの境界をまたぐアプリケーションも作成可能である(Title unbound application / Disc unbound application)。
また、悪意のあるアプリケーションに備えて、アプリケーション認証の仕組みが用意されている。
ファイルI/O・ネットワーク
BD-Jは、Java2水準の標準的なファイルアクセスおよびネットワーク接続機能を備える。ファイルアクセスの対象はBDメディアおよびローカルストレージである。
BD-Jでは、BDメディアとローカルストレージに格納したファイルを紐づけ、疑似的にBDメディアを更新する機能(Virtual File System)を備える。
また、Progressive PlayListと呼ぶ、細切れにしたAVデータをネットワークからローカルストレージにダウンロードし、ダウンロードできたところから順に再生を開始することで疑似ストリーミングを実現する機能を提供する。
その他
システム設定情報
BD-Jからは、BDプレーヤの属性(System Property)およびユーザ設定情報(User Preference)を取得可能である。