Interactive Audioの定位制御

Interactive Audioの定位を設定すると同時に、設定時のイベントを取得するサンプルコード。本プログラムでは左右に定位を振っている(-1: 左~0: 中央~1: 右)。
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()));
    }
}

 


関連する項目

コメントを残す

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

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