ビデオ表示サイズ・位置の変更

ビデオの表示サイズおよび表示位置を変更するサンプルコードである。

 

JMF Controlの1つであるjavax.tv.media.AWTVideoSizeControlを使用している。BD-JのAWTVideoSizeControlは次のことが可能である。
  • ビデオ表示サイズを1/2または1/4に縮小
  • その際、表示位置をピクセル単位で指定

 

APIの仕様を見る限り、Clippingも可能そうだが、PS3のAVCHD再生ではできなかった。

 

Main.java

import java.awt.Rectangle;
import javax.media.Manager;
import javax.media.Player;
import javax.tv.media.AWTVideoSize;
import javax.tv.media.AWTVideoSizeControl;
import javax.tv.xlet.Xlet;
import javax.tv.xlet.XletContext;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;
 
public class Main implements Xlet {
 
    public void initXlet(XletContext context){
        try {
            // JMFプレイヤーを生成
            BDLocator loc = new BDLocator("bd://1.PLAYLIST:00000");
            MediaLocator ml = new MediaLocator(loc);
            Player player = Manager.createPlayer(ml);
            // AWTVideoSizeControlを取得
            AWTVideoSizeControl avsc = (AWTVideoSizeControl) player.getControl("javax.tv.media.AWTVideoSizeControl");
            // 再生開始
            player.start();
            // 再生途中でも変更可能
            Thread.sleep(5000);
            // 縮小前のサイズを指定
            Rectangle src = new Rectangle(0, 0,1920,1080);
            // 表示位置と、縮小後のサイズを指定
            Rectangle dest = new Rectangle(500, 500, 1920/4,1080/4);
            AWTVideoSize avs = new AWTVideoSize(src, dest);
            // 縮小
            avsc.setSize(avs);
        } catch(Throwable thr) {
        }
    }
    public void startXlet(){	}
    public void pauseXlet(){	}
    public void destroyXlet(boolean unconditional){	}
}

関連する項目

コメントを残す

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

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