全屏的SWT多媒体播放器
来源:互联网 发布:设计师的自我修养知乎 编辑:程序博客网 时间:2024/05/01 03:51
SWT可以内嵌系统控件,这样理论就可以打开任何格式的文件。
下面代码是一个全屏的多媒体播放器。
如果有话要说,请联系我。
enjoy it!
下面代码是一个全屏的多媒体播放器。
package com.kompakar.tutorial.swt.video;
import org.eclipse.swt.SWT;
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.Shell;
/**
*
* @author Benewu(at)gmail.com
* SWT Player
*/
public class SWTVideoPlayer {
public static void main(String[] args) {
Display display = new Display();
//设置全屏shell
Shell shell = new Shell(display,SWT.ON_TOP | SWT.TOOL);
// Shell shell = new Shell(display); //带title的窗口
shell.setText("SWT Video Player");
shell.setSize(640, 480);
shell.setLayout(new FillLayout());
OleFrame frm = new OleFrame(shell, SWT.NONE);
OleClientSite site = new OleClientSite(frm, SWT.NONE,
"MediaPlayer.MediaPlayer");
OleAutomation auto = new OleAutomation(site);
int[] ids = null;
ids = auto.getIDsOfNames(new String[] { "Open" });
String mediaFilePath = "D:/Program Files/eMule/Incoming/South.Park.S11E05.Fantastic.Easter.Special.DSR.XviD-CRiMSON.avi";
auto.invoke(ids[0], new Variant[] { new Variant(mediaFilePath) });
new SWTVideoPlayer().setOleAutomationPropertiy(auto);
ids = auto.getIDsOfNames(new String[] { "Play" });
auto.invoke(ids[0]);
shell.open();
while (!shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
site.deactivateInPlaceClient();
site.dispose();
auto.dispose();
}
private void setOleAutomationPropertiy(OleAutomation auto) {
Variant variant = null;
variant = new Variant(0);
int[] ids = null;
ids = auto.getIDsOfNames(new String[] { "ShowCaptioning" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowAudioControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowDisplay" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowGotoBar" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowPositionControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowStatusBar" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowTracker" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "PlayCount" });
auto.setProperty(ids[0], variant);
variant = new Variant(2);
ids = auto.getIDsOfNames(new String[] { "DisplaySize" });
auto.setProperty(ids[0], variant);
}
}
import org.eclipse.swt.SWT;
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.Shell;
/**
*
* @author Benewu(at)gmail.com
* SWT Player
*/
public class SWTVideoPlayer {
public static void main(String[] args) {
Display display = new Display();
//设置全屏shell
Shell shell = new Shell(display,SWT.ON_TOP | SWT.TOOL);
// Shell shell = new Shell(display); //带title的窗口
shell.setText("SWT Video Player");
shell.setSize(640, 480);
shell.setLayout(new FillLayout());
OleFrame frm = new OleFrame(shell, SWT.NONE);
OleClientSite site = new OleClientSite(frm, SWT.NONE,
"MediaPlayer.MediaPlayer");
OleAutomation auto = new OleAutomation(site);
int[] ids = null;
ids = auto.getIDsOfNames(new String[] { "Open" });
String mediaFilePath = "D:/Program Files/eMule/Incoming/South.Park.S11E05.Fantastic.Easter.Special.DSR.XviD-CRiMSON.avi";
auto.invoke(ids[0], new Variant[] { new Variant(mediaFilePath) });
new SWTVideoPlayer().setOleAutomationPropertiy(auto);
ids = auto.getIDsOfNames(new String[] { "Play" });
auto.invoke(ids[0]);
shell.open();
while (!shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
site.deactivateInPlaceClient();
site.dispose();
auto.dispose();
}
private void setOleAutomationPropertiy(OleAutomation auto) {
Variant variant = null;
variant = new Variant(0);
int[] ids = null;
ids = auto.getIDsOfNames(new String[] { "ShowCaptioning" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowAudioControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowDisplay" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowGotoBar" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowPositionControls" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowStatusBar" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "ShowTracker" });
auto.setProperty(ids[0], variant);
ids = auto.getIDsOfNames(new String[] { "PlayCount" });
auto.setProperty(ids[0], variant);
variant = new Variant(2);
ids = auto.getIDsOfNames(new String[] { "DisplaySize" });
auto.setProperty(ids[0], variant);
}
}
如果有话要说,请联系我。
enjoy it!
- 全屏的SWT多媒体播放器
- 全屏的SWT多媒体播放器
- 基于DirectShow的多媒体播放器,实现双击全屏,再双击就退出全屏,避免了当退出全屏时视频黑屏但有声音的问题
- swt 播放器
- Fedora9下 多媒体播放器的设置
- 带网络功能的多媒体播放器
- Android 的 MediaPlayer 多媒体播放器
- Android 的 MediaPlayer 多媒体播放器
- Android 的 MediaPlayer 多媒体播放器
- Android 的 MediaPlayer 多媒体播放器
- Android 的 MediaPlayer 多媒体播放器
- c# 多媒体播放器
- 多媒体播放器 Amarok
- AVPlayer 多媒体播放器
- 多媒体播放器
- AVPlayer 多媒体播放器
- 多媒体播放器
- Android多媒体播放器
- 获取数据库中的所有表
- 感觉意外的IsNumeric()函数
- ASP.3.0.高级编程
- ASP.NET2.0学习--N层代码示例
- 几个方面的技能
- 全屏的SWT多媒体播放器
- JSF和Spring集成2--简单配置
- GridView DropDownList 数据 绑定 RowEditing
- MFC文档/视图架构之文档
- 在网站内加入RSS功能
- RISC简介
- SVN配置
- ICAP协议分析原理
- 在cygwin下NS-2的安装