你去java.sun.com去下jmf的包,然后按照帮助文档去作了。也可以在网上下些资料看看。

解决方案 »

  1.   

    昨天好象看见一个类似的帖子
    http://expert.csdn.net/Expert/topic/1229/1229337.xml?temp=.1626245
    资源共享
      

  2.   

    1.给你帖个实际的例子,自然有很多感悟,不过首先要下载JMF2.1,安装之后,至少要把其目录下的jmf.jar加入到classpath里,那样下面的例子就可以成功编译了.2.建议用bingle.pku.edu.cn搜索,国内实现下载3.参考标签:
       <applet code=SimplePlayerApplet.class width=640 height=510> 
       <param name=file value="1.MPG"> 
       </applet> import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;
    import java.lang.String;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.io.IOException;
    import java.util.Properties;
    import javax.media.*;
    //import com.sun.media.util.JMFSecurity;public class SimplePlayerApplet extends Applet implements ControllerListener {
        
        // media Player
        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;    /**
         * Read the applet file parameter and create the media 
         * player.
         */
        public void init() {
    //$ System.out.println("Applet.init() is called");
    setLayout(null);
    setBackground(Color.white);
    panel = new Panel();
    panel.setLayout( null );
    add(panel);
    panel.setBounds(0, 0, 320, 240); // input file name from html param
    String mediaFile = null;
    // URL for our media file
    MediaLocator mrl = null;
    URL url = null; // Get the media filename info.
    // The applet tag should contain the path to the
      // source media file, relative to the html page.

    if ((mediaFile = getParameter("FILE")) == null)
        Fatal("Invalid media file parameter"); try {
        url = new URL(getDocumentBase(), mediaFile);
        mediaFile = url.toExternalForm();
    } catch (MalformedURLException mue) {
    }

    try {
        // Create a media locator from the file name
        if ((mrl = new MediaLocator(mediaFile)) == null)
    Fatal("Can't build URL for " + mediaFile);     /*
        try {
    JMFSecurity.enablePrivilege.invoke(JMFSecurity.privilegeManager,
       JMFSecurity.writePropArgs);
    JMFSecurity.enablePrivilege.invoke(JMFSecurity.privilegeManager,
       JMFSecurity.readPropArgs);
    JMFSecurity.enablePrivilege.invoke(JMFSecurity.privilegeManager,
       JMFSecurity.connectArgs);
        } catch (Exception e) {}
        */
        
        // Create an instance of a player for this media
        try {
    player = Manager.createPlayer(mrl);
        } catch (NoPlayerException e) {
    System.out.println(e);
    Fatal("Could not create player for " + mrl);
        }     // Add ourselves as a listener for a player's events
        player.addControllerListener(this); } catch (MalformedURLException e) {
        Fatal("Invalid media file URL!");
    } catch (IOException e) {
        Fatal("IO exception creating player for " + mrl);
    } // This applet assumes that its start() calls 
    // player.start(). This causes the player to become
    // realized. Once realized, the applet will get
    // the visual and control panel components and add
    // them to the Applet. These components are not added
    // during init() because they are long operations that
    // would make us appear unresposive to the user.
        }    /**
         * Start media file playback. This function is called the
         * first time that the Applet runs and every
         * time the user re-enters the page.
         */    public void start() {
    //$ System.out.println("Applet.start() is called");
            // Call start() to prefetch and start the player.
            if (player != null)
        player.start();
        }    /**
         * Stop media file playback and release resource before
         * leaving the page.
         */
        public void stop() {
    //$ System.out.println("Applet.stop() is called");
            if (player != null) {
                player.stop();
                player.deallocate();
            }
        }    public void destroy() {
    //$ System.out.println("Applet.destroy() is called");
    player.close();
        }
        /**
         * This controllerUpdate function must be defined in order to
         * implement a ControllerListener interface. This 
         * function will be called whenever there is a media event
         */
        public synchronized 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) {
        
        controlPanelHeight = controlComponent.getPreferredSize().height;
        panel.add(controlComponent);
        height += controlPanelHeight;
    }
        if (visualComponent == null)
    if (( visualComponent =
          player.getVisualComponent())!= null) {
        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) {
    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) {
            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;
        Fatal(((ControllerErrorEvent)event).getMessage());
            } else if (event instanceof ControllerClosedEvent) {
        panel.removeAll();
    }
        }    void Fatal (String s) {
    // Applications will make various choices about what
    // to do here. We print a message
    System.err.println("FATAL ERROR: " + s);
    throw new Error(s); // Invoke the uncaught exception
        // handler System.exit() is another
        // choice.

        }
    }