| 发表于:2007-03-20 20:56:523楼 得分:0 |
用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(); } } } | | |
|