swt 播放器

  import  java.awt.BorderLayout;   
  • import java.io.File;   
  •   
  • import org.eclipse.swt.SWT;   
  • import org.eclipse.swt.SWTError;   
  • import org.eclipse.swt.layout.FillLayout;   
  • import org.eclipse.swt.ole.win32.OLE;   
  • import org.eclipse.swt.ole.win32.OleAutomation;   
  • import org.eclipse.swt.ole.win32.OleControlSite;   
  • import org.eclipse.swt.ole.win32.OleFrame;   
  • import org.eclipse.swt.ole.win32.Variant;   
  • import org.eclipse.swt.widgets.Composite;   
  • import org.eclipse.swt.widgets.Display;   
  •   
  • public class WMP extends Composite   
  • {   
  •     private OleAutomation player;   
  •   
  •     /**  
  •      * Create the composite  
  •      * @param parent  
  •      * @param style  
  •      */  
  •     public WMP(Composite parent, int style)   
  •     {   
  •         super(parent, style);   
  •         setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));   
  •         createContents();   
  •     }   
  •   
  •     protected void createContents()   
  •     {   
  •         setLayout(new FillLayout());   
  •         OleControlSite controlSite;   
  •   
  •         try  
  •         {   
  •             OleFrame frame = new OleFrame(this, SWT.NO_TRIM);   
  •             frame.setLayoutData(new BorderLayout(00));   
  •             // frame.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));   
  •             controlSite = new OleControlSite(frame, SWT.NO_TRIM, "WMPlayer.OCX.7");   
  •             // controlSite.setBackgroundImage(SWTResourceManager.getImage(WMP.class,   
  •             // "/res/mp3/BackColorIndex.png"));   
  •             controlSite.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));   
  •             controlSite.setRedraw(true);   
  •             controlSite.setLayoutDeferred(true);   
  •             controlSite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLACK));   
  •             controlSite.doVerb(OLE.OLEIVERB_INPLACEACTIVATE);   
  •             controlSite.pack();   
  •         }   
  •         catch (SWTError e)   
  •         {   
  •             System.out.println("Unable to open activeX control");   
  •             return;   
  •         }   
  •         player = new OleAutomation(controlSite);   
  •         setFocus();   
  •         setUIMode("none");    
  •         File file = new File(".");   
  •         if (file.exists())   
  •         {   
  •             File fs[] = file.listFiles();   
  •             addPlayList(fs);   
  •         }   
  •         setMode("loop"true);   
  •         play();   
  •   
  •     }   
  •   
  •     public boolean loadFile(String URL)   
  •     {   
  •         int[] ids = player.getIDsOfNames(new String[] { "URL" });   
  •         if (ids != null)   
  •         {   
  •             Variant theFile = new Variant(URL);   
  •             return player.setProperty(ids[0], theFile);   
  •         }   
  •         return false;   
  •     }   
  •   
  •     public void setUIMode(String s)   
  •     {   
  •         int ids[] = player.getIDsOfNames(new String[] { "uiMode" });   
  •         if (ids != null)   
  •         {   
  •             player.setProperty(ids[0], new Variant(s));   
  •         }   
  •     }   
  •   
  •     public void setVolume(int v)   
  •     {   
  •         int value = getVolume();   
  •         OleAutomation o = getSetting();   
  •         ;   
  •         int id[] = o.getIDsOfNames(new String[] { "volume" });   
  •         if (id != null)   
  •         {   
  •             int vv = v + value;   
  •             if (vv > 100)   
  •             {   
  •                 vv = 100;   
  •             }   
  •             o.setProperty(id[0], new Variant(vv));   
  •         }   
  •   
  •     }   
  •   
  •     public int getVolume()   
  •     {   
  •         int value = 0;   
  •         OleAutomation o = getSetting();   
  •         int id[] = o.getIDsOfNames(new String[] { "volume" });   
  •         if (id != null)   
  •         {   
  •             Variant vv = o.getProperty(id[0]);   
  •             if (vv != null)   
  •                 value = vv.getInt();   
  •         }   
  •         return value;   
  •     }   
  •   
  •     /**  
  •      * autoRewind Mode ———indicating whether the tracks are rewound to the  
  •      * beginning after playing to the end. Default state is true.  
  •      *   
  •      * loop Mode ——– indicating whether the sequence of tracks repeats itself.  
  •      * Default state is false.  
  •      *   
  •      * showFrame Mode ——— indicating whether the nearest video key frame is  
  •      * displayed at the current position when not playing. Default state is  
  •      * false. Has no effect on audio tracks.  
  •      *   
  •      * shuffle Mode ———- indicating whether the tracks are played in random  
  •      * order. Default state is false.  
  •      *   
  •      * @param m  
  •      * @param flag  
  •      */  
  •   
  •     public void setMode(String m, boolean flag)   
  •     {   
  •         OleAutomation o = getSetting();   
  •         int ids[] = o.getIDsOfNames(new String[] { "setMode" });   
  •         if (ids != null)   
  •         {   
  •             o.invoke(ids[0], new Variant[] { new Variant(m), new Variant(flag) });   
  •         }   
  •   
  •     }   
  •   
  •     private OleAutomation getSetting()   
  •     {   
  •         OleAutomation o = null;   
  •         int ids[] = player.getIDsOfNames(new String[] { "settings" });   
  •         if (ids != null)   
  •         {   
  •             o = player.getProperty(ids[0]).getAutomation();   
  •         }   
  •         return o;   
  •     }   
  •   
  •     private OleAutomation getControls()   
  •     {   
  •         OleAutomation o = null;   
  •         int ids[] = player.getIDsOfNames(new String[] { "controls" });   
  •         if (ids != null)   
  •         {   
  •             o = player.getProperty(ids[0]).getAutomation();   
  •         }   
  •         return o;   
  •     }   
  •   
  •     public void setPostion(int s)   
  •     {   
  •         OleAutomation o = getControls();   
  •         int ids[] = o.getIDsOfNames(new String[] { "currentPosition" });   
  •         if (ids != null)   
  •         {   
  •             o.setProperty(ids[0], new Variant(s));   
  •         }   
  •     }   
  •   
  •     public void play()   
  •     {   
  •         OleAutomation o = getControls();   
  •         int ids[] = o.getIDsOfNames(new String[] { "play" });   
  •         if (ids != null)   
  •         {   
  •             o.invoke(ids[0]);   
  •         }   
  •     }   
  •   
  •     public void stop()   
  •     {   
  •         OleAutomation o = getControls();   
  •         int ids[] = o.getIDsOfNames(new String[] { "stop" });   
  •         if (ids != null)   
  •         {   
  •             o.invoke(ids[0]);   
  •         }   
  •     }   
  •   
  •     public void pause()   
  •     {   
  •         OleAutomation o = getControls();   
  •         int ids[] = o.getIDsOfNames(new String[] { "pause" });   
  •         if (ids != null)   
  •         {   
  •             o.invoke(ids[0]);   
  •         }   
  •     }   
  •   
  •     public void fullScreen(boolean b)   
  •     {   
  •         if (true && getSize().x == 0)   
  •         {   
  •             return;   
  •         }   
  •         int ids[] = player.getIDsOfNames(new String[] { "fullScreen" });   
  •         if (ids != null)   
  •         {   
  •             player.setProperty(ids[0], new Variant(b));   
  •         }   
  •     }   
  •   
  •     public int getPlayState()   
  •     {   
  •         int state = 0;   
  •         int ids[] = player.getIDsOfNames(new String[] { "playState" });   
  •         if (ids != null)   
  •         {   
  •             Variant sv = player.getProperty(ids[0]);   
  •             if (sv != null)   
  •                 state = sv.getInt();   
  •         }   
  •         return state;   
  •     }   
  •   
  •     public void closeMedia()   
  •     {   
  •         int ids[] = player.getIDsOfNames(new String[] { "close" });   
  •         if (ids != null)   
  •         {   
  •             player.invoke(ids[0]);   
  •         }   
  •   
  •     }   
  •   
  •     public void addPlayList(File urls[])   
  •     {   
  •         int ids[] = player.getIDsOfNames(new String[] { "currentPlaylist" });   
  •         if (ids != null)   
  •         {   
  •             OleAutomation o = player.getProperty(ids[0]).getAutomation();   
  •             int idsaddma[] = o.getIDsOfNames(new String[] { "appendItem" });   
  •             int idsma[] = player.getIDsOfNames(new String[] { "newMedia" });   
  •             if (idsaddma != null && idsma != null)   
  •             {   
  •                 for (File url : urls)   
  •                 {   
  •                     Variant media = player.invoke(idsma[0], new Variant[] { new Variant(url.getAbsolutePath()) });   
  •                     if (media != null)   
  •                     {   
  •                         o.invoke(idsaddma[0], new Variant[] { media });   
  •                     }   
  •   
  •                 }   
  •             }   
  •   
  •         }   
  •     }   
  •   
  •     public void play(String url)   
  •     {   
  •         int idsma[] = player.getIDsOfNames(new String[] { "newMedia" });   
  •         if (idsma != null)   
  •         {   
  •             Variant media = player.invoke(idsma[0], new Variant[] { new Variant(url) });   
  •             int cmedia[] = player.getIDsOfNames(new String[] { "currentMedia" });   
  •             if (cmedia != null)   
  •             {   
  •                 player.setProperty(cmedia[0], media);   
  •                 play();   
  •             }   
  •         }   
  •     }   
  •   
  •   
  •     public void playList()   
  •     {   
  •         File file = new File("");   
  •         if (file.exists())   
  •         {   
  •             File fs[] = file.listFiles();   
  •             addPlayList(fs);   
  •         }   
  •         setMode("loop"true);   
  •         play();   
  •     }   
  •   
  • }  

     

     

     

     

     

    import org.eclipse.swt.SWT;   

  • import org.eclipse.swt.layout.FillLayout;   
  • import org.eclipse.swt.widgets.Display;   
  • import org.eclipse.swt.widgets.Shell;   
  •   
  • public class Player   
  • {   
  •   
  •     protected Shell shell;   
  •   
  •     /**  
  •      * Launch the application  
  •      * @param args  
  •      */  
  •     public static void main(String[] args)   
  •     {   
  •         try  
  •         {   
  •             Player window = new Player();   
  •             window.open();   
  •         }   
  •         catch (Exception e)   
  •         {   
  •             e.printStackTrace();   
  •         }   
  •     }   
  •   
  •     /**  
  •      * Open the window  
  •      */  
  •     public void open()   
  •     {   
  •         final Display display = Display.getDefault();   
  •         createContents();   
  •         shell.open();   
  •         shell.layout();   
  •         while (!shell.isDisposed())   
  •         {   
  •             if (!display.readAndDispatch())   
  •                 display.sleep();   
  •         }   
  •     }   
  •   
  •     /**  
  •      * Create contents of the window  
  •      */  
  •     protected void createContents()   
  •     {   
  •         shell = new Shell();   
  •         shell.setLayout(new FillLayout());   
  •         shell.setSize(500375);   
  •         shell.setText("SWT Application");   
  •   
  •         final WMP composite = new WMP(shell, SWT.NONE);   
  •         composite.play("New Stories (Highway Blues).wma");   
  •   
  •         //   
  •     }   
  •   
  • }  

     

  • 你可能感兴趣的:(shell,String,null,url,SWT)