(转)java JMF的配置方法

java JMF的配置方法


 


Java推出的JMF(Java Media Framework)之后标着Java进入了多媒体时代,如果你想编写能播放视频的Java程序,必须下载sun公司的JMF2.1(或者更高的版本),它为我们提供了编写多媒体必须的包:java.media

 

没有安装JFM的在编译*.java的时候会提示找不到java.media包

 

java JMF的配置方法

1.首先去sun公司的主页去下载安装包: 点击链接下载

2.下载得到一个名为jdk-6u12-windows-i586-p 的文件

3.双击安装,默认的安装路径是C:\Program Files\JMF2.1.1e(可以根据自己的需要改变这个路径)

4.安装后,需要配置下面的几个变量(vista系统和XP相同),下面以vista系统为例子

  a.点击我的电脑--->属性--->高级系统设置--->环境变量

  b.找到CLASSPATH,分别增加jmf.jar和sound.jar

    C:\Program Files\JMF2.1.1e\lib\jmf.jar;

    C:\Program Files\JMF2.1.1e\lib\sound.jar;

   (其中 C:\Program Files\JMF2.1.1e为你的JFM的安装路径

  c.找到PATH,增加动态库

    C:\Program Files\JMF2.1.1e\bin;

    提示:每添加一项后,不要忘记了后面的分号

 

好运~

 

附一个用JAVA编写播放视频的程序

 

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.media.*;
public class JavaVideo extends Applet implements ControllerListener,Runnable,ItemListener
{
   Player player;
   String str;
   Thread mythread;
   Choice choice;
   Component visualCompoment,controlCompoment,progressBar;
   String mediaFile;
   URL mediaURL,codeBase;
   Frame frame;
   public void init()
   {
       str="music.MPE";
       mythread=new Thread(this);
       choice=new Choice();
       choice.add("music01.MPG");
       choice.add("music02.avi");
       choice.add("music03.avi");
       choice.addItemListener(this);
       frame=new Frame("Movie System");
       frame.setSize(640,480);
       frame.addWindowListener(new WindowAdapter()
               {
                   public void windowClosing(WindowEvent e)
                   {
                       if(player!=null)
                         {
                             player.stop();
                             player.deallocate();
                         }
                       frame.setVisible(false);
                       System.exit(0);
                   }
               });
       add(choice);
   }
   public void stop()
   {
       if(player!=null)
       {
           player.stop();
       }
   }
   public synchronized void controllerUpdate(ControllerEvent event)
   {
       player.getDuration();
       if(event instanceof RealizeCompleteEvent)
         {
             if((visualCompoment=player.getVisualComponent())!=null)
                {
                  frame.add("Center",visualCompoment);
                }
             if((controlCompoment=player.getControlPanelComponent())!=null)
                  if(visualCompoment!=null)
                      frame.add("South",controlCompoment);
                  else
                      frame.add("Center",controlCompoment);
             frame.validate();
             frame.pack();
         }
         else if(event instanceof PrefetchCompleteEvent)
         {
             player.start();
         }
   }
   public void itemStateChanged(ItemEvent e)
   {
       str=choice.getSelectedItem();
       if(player==null) {}
       else
         {
            player.stop();
            player.deallocate();
         }
       frame.removeAll();
       frame.setVisible(true);
       frame.setBounds(300,100,150,100);
       frame.validate();
       if(!(mythread.isAlive()))
         {
            mythread=new Thread(this);   
         }
       try{
              mythread.start();
          }
       catch(Exception ee) {}
   }
   public synchronized void run()
   {
       try{
             mediaURL=new URL(codeBase,str);
             player=Manager.createPlayer(mediaURL);
             player.getDuration();
             if(player!=null)
               {
                   player.addControllerListener(this);
               }
             else
               {
                   System.out.println("failed to creat player for"+mediaURL);
               }
          }
        catch(MalformedURLException e)
          {
               System.out.println("URL for"+mediaFile+"is invalid");
          }
        catch(IOException e)
          {
               System.out.println("URL for"+mediaFile+"is invalid");
          }
        catch(NoPlayerException e)
          {
               System.out.println("Can't find a player"+mediaURL);
          }
        if(player!=null)
          {
              player.prefetch();
          }
   }  
}

转载于:https://my.oschina.net/u/152840/blog/28452

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值