UOMaskTableでマスクされた再生制御キーが入力されたイベントを取得するサンプルコード。
本サンプルでは、早送りキーと早戻しキーがマスクされていることを前提として、それらのキーが押された場合にマスクされていることを画面に表示する。
本サンプルでは、早送りキーと早戻しキーがマスクされていることを前提として、それらのキーが押された場合にマスクされていることを画面に表示する。
Main.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.media.Manager;
import javax.media.Player;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.media.UOMaskTableChangedEvent;
import org.bluray.media.UOMaskTableControl;
import org.bluray.media.UOMaskTableListener;
import org.bluray.media.UOMaskedEvent;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main implements Xlet, UOMaskTableListener {
Graphics g = null;
int x=50, y=100;
public void initXlet(XletContext xc){
try {
HScene hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
hs.setFont(new Font(null, java.awt.Font.BOLD, 48));
hs.setVisible(true);
g = hs.getGraphics();
g.setColor(Color.white);
Player player = Manager.createPlayer(new MediaLocator(new BDLocator("bd://1.PLAYLIST:00000")));
// UOMaskTableControlを取得
UOMaskTableControl umtc = (UOMaskTableControl) player.getControl("org.bluray.media.UOMaskTableControl");
// リスナーを登録
umtc.addUOMaskTableEventListener(this);
player.start();
} catch (Exception e){
}
}
public void startXlet(){}
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
// リスナーを実装
public void receiveUOMaskTableChangedEvent(UOMaskTableChangedEvent e) {}
public void receiveUOMaskedEvent(UOMaskedEvent e) {
String s = "ここでの";
// どのキーがマスクされていたかをチェック
if( e.getUOMaskPosition() == UOMaskTableControl.FORWARD_PLAY_MASK_INDEX )s += "早送りは";
if( e.getUOMaskPosition() == UOMaskTableControl.BACKWARD_PLAY_MASK_INDEX )s += "早戻しは";
g.drawString(s+"禁止", x, y); y+=50;
}
}