swt player java_SWT调用MediaPlayer.MediaPlayer.1 | 学步园

/**

*

*/

package org.eclipse.swt.snippets;

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionAdapter;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.layout.FillLayout;

import org.eclipse.swt.ole.win32.OleAutomation;

import org.eclipse.swt.ole.win32.OleClientSite;

import org.eclipse.swt.ole.win32.OleFrame;

import org.eclipse.swt.ole.win32.Variant;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.FileDialog;

import org.eclipse.swt.widgets.Menu;

import org.eclipse.swt.widgets.MenuItem;

import org.eclipse.swt.widgets.Shell;

/**

* @author cuiran

*

*/

public class SWTVideoPlayer {

static OleClientSite site;

static OleAutomation auto;

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setSize(300,180);

shell.setText("SWT Video Player");

shell.setLayout(new FillLayout());

OleFrame frm = new OleFrame(shell, SWT.NONE);

site = new OleClientSite(frm, SWT.NONE,"MediaPlayer.MediaPlayer.1");

auto = new OleAutomation(site);

int[] ids = auto.getIDsOfNames(new String[] { "Play" });

auto.invoke(ids[0]);

addFileMenu(frm);

shell.open();

while (!shell.isDisposed()){

if (!display.readAndDispatch()){

display.sleep();

}

}

site.deactivateInPlaceClient();

site.dispose();

auto.dispose();

}

public static void addFileMenu(OleFrame frame) {

final Shell shell = frame.getShell();

Menu menuBar = shell.getMenuBar();

if (menuBar == null) {

menuBar = new Menu(shell, SWT.BAR);

shell.setMenuBar(menuBar);

}

MenuItem fileMenu = new MenuItem(menuBar, SWT.CASCADE);

fileMenu.setText("&File");

Menu menuFile = new Menu(fileMenu);

fileMenu.setMenu(menuFile);

frame.setFileMenus(new MenuItem[] { fileMenu });

MenuItem menuFileOpen = new MenuItem(menuFile, SWT.CASCADE);

menuFileOpen.setText("Open");

menuFileOpen.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

fileOpen();

}

});

MenuItem menuFileExit = new MenuItem(menuFile, SWT.CASCADE);

menuFileExit.setText("Exit");

menuFileExit.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {

shell.dispose();

}

});

}

public static void fileOpen() {

FileDialog dialog = new FileDialog(site.getShell(), SWT.OPEN);

dialog.setFilterExtensions(new String[] { "*.wma","*.mp3","*.wav" });

String filename = dialog.open();

if (filename != null) {

OleAutomation player = new OleAutomation(site);

int playURL[] = player.getIDsOfNames(new String[] { "Open" });

if (playURL != null) {

Variant theFile = new Variant(filename);

player.invoke(playURL[0],new Variant[] { theFile});

}

}

}

public static void setURL(String fileName){

if (fileName != null) {

OleAutomation player = new OleAutomation(site);

int playURL[] = player.getIDsOfNames(new String[] { "Open" });

if (playURL != null) {

Variant theFile = new Variant(fileName);

player.invoke(playURL[0],new Variant[] { theFile});

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值