PSR値の取得

Player Status Register(PSR)の値を取得するサンプルコード。

 

本サンプルでは、再生中のAutostart PlayListのPresentation timeを格納するPSRであるPSR8の値を取得・表示する。
なお、動作には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) {}
}

 


関連する項目

コメントを残す

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

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