请问怎样用JAVA代码实现播放媒体流数据?谢谢!!

解决方案 »

  1.   

    有开源的项目可以用 www.sourceforge.org
    自己找找看吧
      

  2.   

    用JMF可以做....JMF(Java Media Framework)是Sun 公司提出的Java 媒体架构。它是对应Java 2平台标准版(J2SE)的一种可选用的应用编程接口(API)。
    使用JMF来实现在一个Applet中播放本地MPEG格式视频文件:
    1.  确定视频文件的位置MediaLocator mrl=new MediaLocator(new java.lang.String(“文件路径和文件名”)); 2.  利用Manager.createPlayer创建一个播放器(Player)Player player=null;player=Manager.createPlayer(mrl); 3.  使用addControllerListener将此applet注册为播放器的控制器监视器。注册此监视器的目的是只要播放器载入一个媒体事件,那么该applet将会自动调用controllerUpdate方法。player.addControllerListener(this); 4.  播放player.start(); 5.  停止与释放player.stop();player.deallocate();//调用此方法可以释放所有独占资源,这样可以避免其它播放器无法启动。 6.  关闭player.close();//释放所有资源。 7.   ①controllerUpdate方法可以通知applet对播放器的事件作出反应。②一个播放器的用户接口容器只有在该播放器的状态为Realized时才能显示。③用户接口容器包括:可视容器(VisualComponent)和控制面板容器(ControlPanelComponent)。源代码:PlayerApplet.java import java.applet.Applet;import java.awt.BorderLayout;import java.awt.Component; import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.Player;import javax.media.RealizeCompleteEvent; public class PlayerApplet extends Applet implements ControllerListener {       /**        * Playing an MPEG Movie in an Applet        */       private static final long serialVersionUID = 1L;        Player player = null;        public void init() {              setLayout(new BorderLayout());              MediaLocator mrl = new MediaLocator(new java.lang.String(                            "file:///D:/Dvp/workspace/JavaSound/foo.wav"));                            try {                      player = Manager.createPlayer(mrl);                     //System.out.println("test1:" + player);                     player.addControllerListener(this);              } catch (Exception e) {                     System.err.println("Got exception " + e);              }       }        public void start() {              player.start();       }        public void stop() {              player.stop();              player.deallocate();       }        public void destroy() {              player.close();       }        public synchronized void controllerUpdate(ControllerEvent event) {              if (event instanceof RealizeCompleteEvent) {                     Component comp;                     if ((comp = player.getVisualComponent()) != null)                            add("Center", comp);                     if ((comp = player.getControlPanelComponent()) != null)                            add("South", comp);                     validate();              }       }}
      

  3.   

    applet里面的播放器AudioClip好象格式不支持流镁体的,