再生制御キーイベントを取得するサンプルコード。
再生制御キーを取得するためには以下の条件がそろう必要がある。
- Index Table fileにおいて、該当タイトルのTitle TypeがBD-J Interactive Titleと定義されていること
- BD-J Object fileのkeyInterestTableにおいて、取得する再生制御キーに該当するビットが立っていること。詳細はBD-J Object fileを参照。本サンプルではVK_PLAYとVK_STOPを取得しているため0xC0000000とした。
Main.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.ui.event.HRcEvent;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main implements Xlet, KeyListener {
Graphics g;
int x = 100, y = 50;
public void initXlet(XletContext context){
try {
HScene hs= HSceneFactory.getInstance().getFullScreenScene(
HScreen.getDefaultHScreen().getDefaultHGraphicsDevice());
g = hs.getGraphics();
g.setColor(Color.white);
g.setFont(new Font(null, Font.BOLD, 48));
hs.setVisible(true);
hs.requestFocus();
hs.addKeyListener(this);
} catch (Throwable thr){
}
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){}
public void keyPressed(KeyEvent e) {
switch( e.getKeyCode() ){
case HRcEvent.VK_PLAY :
g.drawString("VK_PLAY pressed", x, y); y+=50;
break;
case HRcEvent.VK_STOP:
g.drawString("VK_STOP pressed", x, y); y+=50;
break;
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
関連する項目
- BD-J Object file: KeyInterestTableにおいて、取得する再生制御キーに該当するビットを立てておく必要あり
- Index Table file:該当タイトルのTitle TypeをBD-J Interactive Titleにしておく必要あり
- キーイベント: