BDメディア挿入排出イベントの取得

BDメディア挿入排出イベント(org.bluray.ti.DiscStatusEvent)を取得するサンプルコード。
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();
    }
}

関連する項目

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください