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

📄 让java活起来jmf媒体框架2—java大本营-java教程 java游戏 java电子书 j2me j2ee java源代码.htm

📁 JMF编程的基础教程。。。 html格式配有源码。。。 非常适合初学者学习
💻 HTM
📖 第 1 页 / 共 3 页
字号:
                                dualPlayer;<BR>  在Play()方法中,通过使用FileDialog获得媒体文件的路径和文件名,并保存在filename中。 
                                <BR>  <BR>  try {<BR>    FileDialog fd = 
                                <BR>     new FileDialog(this, "Select File", 
                                FileDialog.LOAD);<BR>    fd.show();<BR>    String 
                                filename = fd.getDirectory() + 
                                fd.getFile();<BR>    ...<BR>   }<BR>   catch 
                                (Exception e) 
                                {<BR>    System.out.println(e.toString());<BR>   }<BR>  然后你需要通过媒体管理器Manager间接创建一个Player对象。你可以使用Manager类的createPlayer()方法或者createProcessor()方法来获得一个Player对象或Processor对象。在play()方法中,我使用的是createPlayer()方法。 
                                <BR>  dualPlayer = 
                                Manager.createPlayer<BR>     (new 
                                MediaLocator("file:///" + 
                                filename));<BR>  有时你需要使用一个Player对象来控制多个其他的Player和Controller对象,我们把这个Player对象称为主对象,并把这些对象组成一个组。通过调用主对象中的start()、stop()、setMediaTime()等方法就可以激活组中所有成员的相应方法。主对象控制所有的状态变化和事件发布。然后使用addControllerListerner()方法来将一个ControllerListener对象绑定到Player对象上,Controller对象将向该ControllerListener对象发送事件消息。 
                                <BR>  dualPlayer.addControllerListener(this);<BR>  最后需要调用start()方法来启动Player对象。start()方法将Player对象的状态设置为Started。如果Player没有被实体化(Realize)或预取(Prefetch),start()方法会自动执行这些操作。 
                                <BR>  dualPlayer.start();<BR>  由于JMF类实现了ControllerLister接口,因此需要实现该接口中的controllerUpdate()方法,该方法在Controller对象产生一个事件时被调用。 
                                <BR>  <BR>  public synchronized void 
                                controllerUpdate(ControllerEvent event) 
                                {<BR>   if (event instanceof 
                                RealizeCompleteEvent) {<BR>    Component 
                                comp;<BR>    if ((comp = 
                                dualPlayer.getVisualComponent()) != 
                                null)<BR>     add ("Center", comp);<BR>    if 
                                ((comp = dualPlayer.getControlPanelComponent()) 
                                != null)<BR>     add("South", 
                                comp);<BR>    validate();<BR>   }<BR>  }<BR>  当JMF类产生了一个RealizeCompleteEvent事件后,controllerUpdate()方法在界面上增加两个Component对象,一个用于播放媒体,一个用于放置控制按钮,例如播放、停止等。 
                                <BR>  在运行程序的过程中,程序会产生下面的输出。 <BR>  Starting 
                                player 
                                ...javax.media.TransitionEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Unrealized,<BR>   current=Realizing,<BR>   target=Started]<BR>  Open 
                                log file: 
                                C:\test\Java\JMF\JMF\jmf.log<BR>  javax.media.DurationUpdateEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,duration=<BR>   javax.media.Time@2a37a6<BR>  javax.media.RealizeCompleteEvent<BR>  [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Realizing,<BR>   current=Realized,<BR>   target=Started]<BR>  Adding 
                                visual component<BR>  Adding control 
                                panel<BR>  javax.media.TransitionEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Realized,<BR>   current=Prefetching,<BR>   target=Started]<BR>  javax.media.PrefetchCompleteEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Prefetching,<BR>   current=Prefetched,target=Started]<BR>  javax.media.StartEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Prefetched,<BR>   current=Started,<BR>   target=Started,<BR>   mediaTime=javax.media.Time@56a05e,timeBaseTime=<BR>   javax.media.Time@3a8602]<BR>  javax.media.EndOfMediaEvent<BR>   [source=com.sun.media.content.video.mpeg.Handler@71bb78,<BR>   previous=Started,<BR>   current=Prefetched,<BR>   target=Prefetched,<BR>   mediaTime=javax.media.Time@1d332b]<BR>  前面提到,当调用start()方法的时候,Player会切换到Started状态。从上面列出的信息中可以看到Player对象的状态从Unrealized变成了Started。当EndOfMedia事件被激活时(这时Player对象完成了媒体文件的播放),状态从Started变成了Prefetched。图二显示了程序正在播放多媒体文件时的情况。 
                                <BR>   <IMG alt="" 
                                src="让JAVA活起来JMF媒体框架2—java大本营-java教程 java游戏 java电子书 j2me j2ee java源代码.files/2256101.jpg"> 
                                <BR>  图二 程序正在播放媒体文件<BR>  2.注册音频和视频截取设备 
                                <BR>  在例子中,注册音频和视频截取设备的方法只在程序的内部注册这些设备,在程序外则不起作用。该方法的作用是当用户的计算机上存在多和音频和视频截取设备时,告诉程序因该使用哪个设备和这些设备支持的音频和视频格式。因此在进行截取处理之前需要获得设备的配置信息。在例子中,当在Configure菜单上按下Capture 
                                Device命令后,会弹出CaptureDeviceDialog对话框。如果在截取音频或视频前没有设定设备的配置,也会弹出该对话框。图三显示了该对话框。 

                                <CENTER>共3页: <A 
                                href="http://www.javadby.com/shiyongjiqiao/20071115/2984.html">上一页</A> 
                                <A 
                                href="http://www.javadby.com/shiyongjiqiao/20071115/2984.html">[1]</A> 
                                2 <A 
                                href="http://www.javadby.com/shiyongjiqiao/20071115/2984_3.html">[3]</A> 
                                <A 
                                href="http://www.javadby.com/shiyongjiqiao/20071115/2984_3.html">下一页</A> 
                                </CENTER><BR>
                                <TABLE cellSpacing=0 cellPadding=0 width="100%" 
                                border=0>
                                <TBODY>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080203/5131.html">Java中实现增、删、改、查功能 
                                </A>(02-03)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080202/5121.html">Windows 
                                平台上长路径名文件的解决方法</A>(02-02)<BR></TD></TR>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080202/5119.html">将静态内容映射到servlet中(如html) 
                                </A>(02-02)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080127/5102.html">Java中设置Jpanel的背景 
                                </A>(01-27)<BR></TD></TR>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080123/5086.html">配置log4j,替代log4j.properties 
                                (log4</A>(01-23)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080123/5085.html">Jakarta-Common-Chain的使用 
                                </A>(01-23)<BR></TD></TR>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080123/5084.html">Eclipse中起动Weblogic 
                                报错 java.lang</A>(01-23)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080121/5077.html">Hibernate 
                                本地SQL查询的简单使用 </A>(01-21)<BR></TD></TR>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080121/5075.html">如何用hibernate 
                                SQLQuery实现动态表 </A>(01-21)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080121/5069.html">JAVA中static的用法 
                                </A>(01-21)<BR></TD></TR>
                                <TR>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080121/5068.html">JAVA 
                                中URL链接中文参数乱码解决之道 </A>(01-21)<BR></TD>
                                <TD width="50%">·<A 
                                href="http://www.javadby.com/shiyongjiqiao/20080120/5056.html">不规则数组的构建 
                                </A>(01-20)<BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
                          <TR>
                            <TD style="BORDER-TOP: #cccccc 1px solid" 
                            align=right bgColor=#ffffff height=36>
                              <DIV align=left><FONT 
                              color=#ff0000><B>复制地址发给您的好友:</B> </FONT><INPUT 
                              id=__furl title="由于本站使用分帧技术, 故浏览器地址栏显示的并非本页地址" 
                              style="PADDING-RIGHT: 10px; FONT-SIZE: 11px; OVERFLOW: visible; COLOR: red; FONT-FAMILY: tahoma" 
                              onclick="this.select();document.execCommand('copy');" 
                              value=http://www.javadby.com name=Input> <FONT 
                              color=#ff0000></FONT><INPUT title="由于本站使用分帧技术, 故浏览器地址栏显示的并非本页地址" onclick="document.getElementById('__furl').select();document.execCommand('Copy');" type=button value=" 复制 " name=button>
                              <SCRIPT language=javascript>document.getElementById('__furl').value=window.location.href;</SCRIPT>
                               <FONT color=#ff0000></FONT>[<A 
                              href="http://www.javadby.com/plus/recommend.php?arcID=2984" 
                              target=_blank>推荐文章</A>] <A 
                              href="http://www.javadby.com/shiyongjiqiao/20071115/2984_2.html#top">[返回顶部]</A> 
                              <A onclick=window.print(); 
                              href="http://www.javadby.com/shiyongjiqiao/20071115/2984_2.html#"></A><A 
                              onclick=window.close(); 
                              href="http://www.javadby.com/shiyongjiqiao/20071115/2984_2.html#">[关闭窗口]</A> 
                              </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
                  <TABLE height=0 cellSpacing=0 cellPadding=0 width=760 
                  align=center bgColor=#9ec9f4 border=0>
                    <TBODY>
                    <TR>
                      <TD vAlign=top bgColor=#ffffff height=26>
                        <TABLE cellSpacing=0 cellPadding=0 width=758 
                        align=center border=0>
                          <TBODY>
                          <TR>
                            <TD bgColor=#ffffff colSpan=2 height=6></TD>
                          <TR>
                            <TD vAlign=top 
                      bgColor=#eaf9ff></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
            <TABLE cellSpacing=0 cellPadding=0 align=center border=0>
              <TBODY>
              <TR>
                <TD align=middle>版权所有 <A href="http://www.javadby.com/" 
                  target=_blank>Java大本营</A> 1999-2007 转载请注明出处<BR>
                  <SCRIPT language=JavaScript 
                  src="让JAVA活起来JMF媒体框架2—java大本营-java教程 java游戏 java电子书 j2me j2ee java源代码.files/stat.htm" 
                  charset=gb2312></SCRIPT>
                </TD></TR></TBODY></TABLE>
            <DIV></DIV></TR></TBODY></TABLE></TR></TBODY></TABLE></CENTER></BODY></HTML>

⌨️ 快捷键说明

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