BDメディア挿入排出イベント(org.bluray.ti.DiscStatusEvent)を取得するサンプルコード。
BDメディアを排出し再度同じBDメディアを挿入すると、それぞれのタイミングで以下のイベント名を表示する。
BDメディアを排出し再度同じBDメディアを挿入すると、それぞれのタイミングで以下のイベント名を表示する。
- 排出時: DiscEjectedEvent
- 挿入時: DiscInsertedEvent
なお、本サンプルはDisc unbound application用設定を使用し、Disc unbound applicationとして実行されることを前提としている。
Monitor.java
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.ti.DiscManager;
import org.bluray.ti.DiscStatusEvent;
import org.bluray.ti.DiscStatusListener;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
// リスナーを実装
public class Monitor extends Component implements Xlet, DiscStatusListener {
String msg = "Init";
HScene hs = null;
public void initXlet(XletContext xc){
try {
hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
setBounds(hs.getBounds());
setFont(new Font(null, Font.BOLD, 32));
hs.setBackground(Color.black);
hs.setBackgroundMode(HScene.BACKGROUND_FILL);
hs.add(this);
hs.setVisible(true);
// リスナーを登録
DiscManager.getDiscManager().addDiscStatusEventListener(this);
} catch (Throwable thr){
}
}
public void paint(Graphics g){
int x = 100, y = 100;
g.setColor(Color.white);
g.drawString(msg, x, y); y+=50;
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){}
public void receiveDiscStatusEvent(DiscStatusEvent arg0) {
msg = "Event:"+arg0.getClass().toString();
hs.repaint();
}
}