Interactive Audioの定位を設定すると同時に、設定時のイベントを取得するサンプルコード。本プログラムでは左右に定位を振っている(-1: 左~0: 中央~1: 右)。
setFrontRear()メソッドで前後にも設定できるはず。
なお、定位の設定ができるのは モノラル音声のみ である。
setFrontRear()メソッドで前後にも設定できるはず。
なお、定位の設定ができるのは モノラル音声のみ である。
Main.java
import javax.media.Manager;
import javax.media.Player;
import javax.tv.xlet.*;
import org.bluray.media.PanningChangeEvent;
import org.bluray.media.PanningChangeListener;
import org.bluray.media.PanningControl;
import org.bluray.net.BDLocator;
import org.davic.media.MediaLocator;
// PanningChangeListenerを実装
public class Main implements Xlet, PanningChangeListener{
public void initXlet(XletContext context){
try {
String url = "bd://SOUND:00";
Player player = Manager.createPlayer(new MediaLocator(new BDLocator(url)));
// PanningControlを取得
PanningControl pc = (PanningControl)player.getControl("org.bluray.media.PanningControl");
// PanningChangeListenerとして本クラスを登録
pc.addPanningChangeListener(this);
// 左端に設定
pc.setLeftRight(-1F);
player.start();
Thread.sleep(2000);
pc.setLeftRight(-0.5F);
player.start();
Thread.sleep(2000);
// 中央に設定
pc.setLeftRight(0F);
player.start();
Thread.sleep(2000);
pc.setLeftRight(0.5F);
player.start();
Thread.sleep(2000);
// 右端に設定
pc.setLeftRight(1F);
player.start();
} catch(Throwable thr) {
}
}
public void startXlet(){ }
public void pauseXlet(){ }
public void destroyXlet(boolean unconditional){ }
// PanningChangeListenerを実装
public void panningChange(PanningChangeEvent arg0) {
System.out.println( Float.toString(arg0.getLeftRight()));
}
}