⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound.java

📁 这是一个简单的用JMF完成的播放器软件
💻 JAVA
字号:
/*
 * Sound.java
 *
 * Created on 2008年3月28日, 上午11:41
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.gjunit.CRT;


  import   java.awt.Component;   
  import   java.awt.Dimension;   
  import   java.awt.Panel;   
  import   java.io.IOException;   
  import   javax.media.CachingControl;   
  import   javax.media.CachingControlEvent;   
  import   javax.media.Controller;   
  import   javax.media.ControllerClosedEvent;   
  import   javax.media.ControllerErrorEvent;   
  import   javax.media.ControllerEvent;   
  import   javax.media.ControllerListener;   
  import   javax.media.EndOfMediaEvent;   
  import   javax.media.MediaLocator;   
  import   javax.media.NoPlayerException;   
  import   javax.media.Player;   
  import   javax.media.RealizeCompleteEvent;   
  import   javax.media.Time;   
  import   javax.swing.JFrame;   
  import   javax.media.Manager;   
    
 public   class   Sound   extends   JFrame   implements   ControllerListener   {   
   public   Sound(
           )   {   
   setDefaultCloseOperation(EXIT_ON_CLOSE);   
   this.setBounds(200,   200,   325,   290);   
   setLayout(null);   
   panel   =   new   Panel();   
   panel.setLayout(null);   
   add(panel);   
   panel.setBounds(0,   0,   320,   240);   
   MediaLocator   mrl   =   new   MediaLocator("d:\\");   
   try   {   
   player   =   Manager.createPlayer(mrl);   
   }   catch   (NoPlayerException   e)   {   
  e.printStackTrace();   
  }   catch   (IOException   e)   {   
  e.printStackTrace();   
  }   
  player.addControllerListener(this);   
  player.start();   
  setVisible(true);   
  }   
    
  public   void   controllerUpdate(ControllerEvent   event)   {   
  //   If   we're   getting   messages   from   a   dead   player,   
  //   just   leave   
  if   (player   ==   null)   
  return;   
    
  //   When   the   player   is   Realized,   get   the   visual   
  //   and   control   components   and   add   them   to   the   Applet   
  if   (event   instanceof   RealizeCompleteEvent)   {   
  if   (progressBar   !=   null)   {   
  panel.remove(progressBar);   
  progressBar   =   null;   
  }   
    
  int   width   =   320;   
  int   height   =   0;   
  if   (controlComponent   ==   null)   
  if   ((controlComponent   =   player.getControlPanelComponent())   !=   null)   {   
  System.out.println("1");   
  controlPanelHeight   =   controlComponent.getPreferredSize().height;   
  panel.add(controlComponent);   
  height   +=   controlPanelHeight;   
  }   
  if   (visualComponent   ==   null)   
  if   ((visualComponent   =   player.getVisualComponent())   !=   null)   {   
  System.out.println("2");   
  panel.add(visualComponent);   
  Dimension   videoSize   =   visualComponent.getPreferredSize();   
  videoWidth   =   videoSize.width;   
  videoHeight   =   videoSize.height;   
  width   =   videoWidth;   
  height   +=   videoHeight;   
  visualComponent.setBounds(0,   0,   videoWidth,   videoHeight);   
  }   
    
  panel.setBounds(0,   0,   width,   height);   
  if   (controlComponent   !=   null)   {   
  System.out.println("3");   
  controlComponent.setBounds(0,   videoHeight,   width,   
  controlPanelHeight);   
  controlComponent.invalidate();   
  }   
    
  }   else   if   (event   instanceof   CachingControlEvent)   {   
  if   (player.getState()   >   Controller.Realizing)   
  return;   
  //   Put   a   progress   bar   up   when   downloading   starts,   
  //   take   it   down   when   downloading   ends.   
  CachingControlEvent   e   =   (CachingControlEvent)   event;   
  CachingControl   cc   =   e.getCachingControl();   
    
  //   Add   the   bar   if   not   already   there   ...   
  if   (progressBar   ==   null)   {   
  System.out.println("4");   
  if   ((progressBar   =   cc.getControlComponent())   !=   null)   {   
  panel.add(progressBar);   
  panel.setSize(progressBar.getPreferredSize());   
  validate();   
  }   
  }   
  }   else   if   (event   instanceof   EndOfMediaEvent)   {   
  //   We've   reached   the   end   of   the   media;   rewind   and   
  //   start   over   
  player.setMediaTime(new   Time(0));   
  player.start();   
  }   else   if   (event   instanceof   ControllerErrorEvent)   {   
  //   Tell   TypicalPlayerApplet.start()   to   call   it   a   day   
  player   =   null;   
  System.exit(0);   
  }   else   if   (event   instanceof   ControllerClosedEvent)   {   
  panel.removeAll();   
  }   
  }   
    
  public   static   void   main(String[]   args)   {   
  new   Sound();   
  }   
    
  Player   player   =   null;   
   //   component   in   which   video   is   playing   
  Component   visualComponent   =   null;   
  //   controls   gain,   position,   start,   stop   
  Component   controlComponent   =   null;   
  //   displays   progress   during   download   
  Component   progressBar   =   null;   
  boolean   firstTime   =   true;   
  long   CachingSize   =   0L;   
  Panel   panel   =   null;   
  int   controlPanelHeight   =   0;   
  int   videoWidth   =   0;   
  int   videoHeight   =   0;   
  }   
 




/*public class  SimplePlayerTest{       
 static {  System.loadLibrary("ChangeVol"); }                                 
    /**                 

     *如果系统不止持同时设置左右声道会忽略右声道的值                                 

     *@param   l_vol   左声道音量,最大255, 最小0                                

     *@param   r_vol   右声道音量,最大255, 最小0                                

     */       
/*  native   public   static   int   setSystemVol(int   l_vol,int   r_vol);       
  public   static   void   main(String[]   args) {                   
  if(setSystemVol(0x66,0x88)==0) {               
  System.out.println("Change   successfully!");           
  }         

  else{               
  System.out.println("Change   fail!");         
    }}} */
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -