BD-J(Blu-ray Disc Java)为蓝光光盘(BD-Video)之交互式内容的基盘,由 Blu-ray Disc Association 所开发。在蓝光光盘中,使用 BD-J 的附加视频内容比 DVD-Video 中的更加洗练,可登录网络(下载最新预告、观赏幕后花絮等)及使用子母画面与读取辅助存储设备。支持播放蓝光光盘视频的蓝光光盘播放机都有支持 BD-J 的义务,但初期的播放机并不支持登录网络及读取辅助存储设备与使用子母画面的功能,(除了登录网络之外)这些功能都称作 "Bonus View" ,包含登录网络在内的功能则称作 "BD Live" 。2007年10月31日之后发售的蓝光光盘播放机都有加装 "Bonus View" 的义务,不过依不同机种,有些机种必须更新固件才可使用。"BD Live" 现在则为附加功能。
BD-J 遵循 Globally Executable MHP(GEM)的数据包媒体标准协议,GEM 为数字电视之应用服务标准。多用途的播放标准协议有 Multimedia Home Platform(DVB-MHP);北美有线电视使用的标准协议有 OpenCable Application Platform(OCAP);在美国播放用的标准协议有 Advanced Common Application Platform(ACAP)。GEM 为 ETSI 的标准,DVB-MHP 为 DVB 的标准。GEM 基础类的标准一切皆遵循Sun微系统公司之 Java 技术。由于 BD-J、MHP、OCAP、ACAP 全部都是 Java 基础类,因此兼容性非常高。举例来说,可将蓝光光盘使用的内容挪用给有线电视的随选视频使用,也可将电视播放的交互式内容制成蓝光光盘贩售。
在制作上可采用各种形式。可使用类似 NetBeans 或 Eclipse 的集成开发环境,或是不使用编程语言的图像式开发环境(如 Macromedia Director 之类的软件),另外也有使用解读 HTML/XML/SVG 等文件格式之排版引擎的方法。若将编程语言开发环境整体加装到蓝光光盘播放机上,将实现可编写出前所未有的先进内容之可能性。此种情况不限于标准的 BD-J 接口,也可使用 Java 现有的库及应用服务框架(BD-J 以 Java 1.3 版为基准)。
import javax.tv.xlet.*;public class BasicXlet implements Xlet { public BasicXlet () {} public void initXlet (XletContext context) throws XletStateChangeException {} public void startXlet () throws XletStateChangeException {} public void pauseXlet () {} public void destroyXlet (boolean unconditional) throws XletStateChangeException {}}
使用 BD-J 的产品
下列并非所有使用 BD-J 的产品。