全屏的SWT多媒体播放器

SWT可以内嵌系统控件,这样理论就可以打开任何格式的文件。

下面代码是一个全屏的多媒体播放器。

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(
640480);
        
        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);
        
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 实现多媒体播放器可以使用 JavaFX 来完成,下面是一个简单的实现步骤: 1. 导入 JavaFX 库,可以从官网下载或者使用 Maven/Gradle 等工具进行导入。 2. 创建一个 JavaFX 应用程序,并添加一个界面,例如一个包含媒体播放器控件的面板。 3. 配置播放器控件,例如 Media、MediaPlayer 和 MediaView 等。 4. 实现播放、暂停、停止、快进、快退等基本功能的操作方法。 5. 监听媒体播放器的事件,例如播放完成、媒体加载失败等事件。 6. 可以添加一些额外的功能,例如音量控制、全屏播放、播放列表等。 下面是一个简单的代码示例,实现了一个基本的媒体播放器: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.stage.Stage; public class MediaPlayerExample extends Application { private MediaPlayer mediaPlayer; @Override public void start(Stage primaryStage) { // 创建一个 BorderPane,用于放置媒体播放器控件 BorderPane root = new BorderPane(); // 创建一个 Media 对象 Media media = new Media("http://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4"); // 创建一个 MediaPlayer 对象 mediaPlayer = new MediaPlayer(media); // 创建一个 MediaView 对象,并设置它的 MediaPlayer 属性 MediaView mediaView = new MediaView(mediaPlayer); root.setCenter(mediaView); // 创建一个 Scene,将 BorderPane 设置为根节点 Scene scene = new Scene(root, 800, 600); // 设置舞台的 Scene primaryStage.setScene(scene); // 开始播放媒体 mediaPlayer.play(); // 显示舞台 primaryStage.show(); } @Override public void stop() { // 停止播放媒体 mediaPlayer.stop(); } public static void main(String[] args) { launch(args); } } ``` 这只是一个简单的示例,你可以根据自己的需求进行定制和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值