2010年12月12日日曜日

SWTブラウザでVLCメディアプレーヤーを使用する(3)

サンプルアプリケーションの作成

次のサンプルは、Mozilla ベース SWT ブラウザに、「SWTブラウザでVLCメディアプレーヤーを使用する(2)」で作成したWebプラグイン埋め込みHTML をセットします。そして、ボタンのセレクトイベントで、Java から Javascript を呼ぶ機能により、プラグインの API を呼び出します。
public class MozillaBrowserVLC {

   private static Shell volumeShell;
   private static double volume;
   private static Slider slider;
   private static Browser browser;
   //プレイリストにセットするビデオ
   private static String[] videos = {
        "C:/$mydoc/video/music/Britney/Britney - [1998] Baby One More Time.divx",
        "C:/$mydoc/video/music/Britney/Britney - [2000] Stronger.mp4"
   };

   private static final int GCOLS = 6;     //グリッド列の数

   public static void main(String[] args) {

        System.setProperty("org.eclipse.swt.browser.XULRunnerPath",
        "C:\\_tool\\xulrunnerVLC");
     
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(GCOLS, false));
        shell.setBounds(10, 10, 900, 600);

        try {
             browser = new Browser(shell, SWT.MOZILLA);
        } catch (SWTError e) {
             display.dispose();
             return;
        }
     
        GridData gd = new GridData(GridData.FILL_BOTH);
        gd.horizontalSpan = GCOLS;
        browser.setLayoutData(gd);
        browser.setText(HtmlTemplate.getVlcHtml("100%", "100%", "#000000", "1"));

      
        Button muteBtn = new Button(shell, SWT.PUSH);
        muteBtn.setText("Mute");
        muteBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("muteVolume()");
             }
        });

        Button stopBtn = new Button(shell, SWT.PUSH);
        stopBtn.setText("Stop");
        stopBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("stopVideo()");
             }
        });

        Button addPlaylistBtn = new Button(shell, SWT.PUSH);
        addPlaylistBtn.setText("AddPlaylist");
        addPlaylistBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("playVideo('" + videos[0] + "')");
             }
        });

        Button nextBtn = new Button(shell, SWT.PUSH);
        nextBtn.setText("Next");
        nextBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("next()");
             }
        });

        Button prevBtn = new Button(shell, SWT.PUSH);
        prevBtn.setText("Prev");
        prevBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("prev()");
             }
        });

        Button playBtn = new Button(shell, SWT.PUSH);
        playBtn.setText("Play");
        playBtn.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                  browser.execute("play();");
             }
        });

        shell.open();
        while (!shell.isDisposed()) {
             if (!display.readAndDispatch())
                  display.sleep();
        }
        display.dispose();
   }
}  

サンプルアプリケーションを実行します:

0 件のコメント: