Player Status Register(PSR)の値を取得するサンプルコード。
本サンプルでは、再生中のAutostart PlayListのPresentation timeを格納するPSRであるPSR8の値を取得・表示する。
なお、動作にはAutostart PlayListを使用する設定が必要。
なお、動作にはAutostart PlayListを使用する設定が必要。
Main.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.system.RegisterAccess;
import org.havi.ui.HScene;
import org.havi.ui.HSceneFactory;
import org.havi.ui.HScreen;
public class Main extends Component implements Xlet {
String msg = "";
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(new Color(0,0,0,0));
hs.setBackgroundMode(HScene.BACKGROUND_FILL);
hs.add(this);
hs.setVisible(true);
// PSR値取得のためのハンドルを取得
RegisterAccess ra = RegisterAccess.getInstance();
for( ;; ){
// PSR8(Presentation Time)の値を取得し更新
msg = "PSR#8(Presentation Time)= "+ ra.getPSR(org.bluray.system.RegisterAccess.PSR_PRES_TIME);
hs.repaint();
}
} catch (Throwable e) {
msg = e.toString(); hs.repaint();
}
}
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) {}
}