免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录简单媒体播放器(1)一、Java概述(8)(一)java的起源与发展(8)(二)java技术的三个平台(9)(三)J2SE的安装与环境配置(10)二、Java媒体框架(JMF)(13)(一)JMF简介(13)(二)JMF 体系结构(13)三、集成开发工具Eclipse的介绍(13)(一)Eclipse的启动界面(13)(二)集成开发Eclipse工具的环境界面(14)四、媒体播放器的软件设计(15)(一)软件工程(15)(二)总体设计(15)(三)详细设计与编码(16)五、调试(22)(一)在dos命令符中调试。(22)(二)在Eclipse集成开发环境中调试。(24)六、结束语(27)七、致谢:(28)八、参考文献(29)附录:(30)媒体播放器作者:姚仔成摘 要Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。媒体播放器需要的基本功能已经实现了,例如:打开一个扩展名为.mp3的音乐,并且可以循环播放、暂停和停止。但还有好一部分功能没有实现,比如:播放wma、mid、wav、rm等格式的功能,将在以后逐步的改进和完善。关键词Java JMF Eclipse 软件工程Media playerJava is by Sun Microsystems Corporation the Java programming language which and the Java platform general name promoted in May, 1995. The HotJava browser which realizes with Java has demonstrated the Java charm: Cross platform, dynamic Web, Internet computation. Henceforth, Java widely is accepted and impelled the Web rapidly expand, the commonly used browser supports Java applet now. the Java application programming interface was the Java application has provided an independence in operating systems standard interface, might divide into the major component and the expansion part. Installs a Java platform after the hardware OR operation system platform, the Java application procedure may move. The Java platform already had inserted now the nearly all operating system. The media player needs the basic function had already realized, for example: Opens expansion named .mp3 the music, and may circulate the broadcast, the suspension and the stop. But also has the good part of functions not to realize, for instance: Broadcasts form and so on wma, mid, wav, rm functions, in the later gradual improvement and consummation.Key words:Java JMF Eclipse Software Engineering一、Java的概述(一)java的起源与发展Sun公司的Java开发小组成立于1991年,其最初的目的是开发数字控制的电子产品,但“消费性的电子产品”必须拥有独立的平台,为了解决这个问题,他们采用了虚拟机编码(Virtual Machine Code)方式,开始时因为商业原因并没有被成功的推向市场,甚至差点夭折,随着Internet的WWW由字符界面发展到图形界面,Java语言开发小组发现Java非常适合应用在网络上。很快java在WWW上所表现出的优越性,使其受到各界的关注。我们通常所说的Java有三层含义,它是一种面向对象的编程语言,也是一个开发环境,同时又是一个应用环境。Java的应用:1、所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;2、计算过程的可视化、可操作化的软件的开发;3、动态画面的设计,包括图形图像的调用;4、交互操作的设计(选择交互、定向交互、控制流程等);5、Internet的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等;6、Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件),7、与各类数据库连接查询的SQL语句实现;8、其它应用类型的程序。(二)java技术的三个平台:1999年Sun根据应用的领域不同把Java技术划归为三个平台,当时分别称为J2SE、J2EE和J2SE,现在改名为Java SE、Java EE和Java ME。Java SEJava SE 是Java平台标准版的简称(Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。Java EEJava EE是Java平台企业版的简称(Java Platform, Enterprise Edition),用于开发便于组装、健壮、可扩展、安全的服务器端Java应用。Java EE建立于Java SE之上,具有Web服务、组件模型、以及通信API等特性,这些为面向服务的架构(SOA)以及开发Web2.0应用提供了支持。Java EE基于Java SE,此外新加了企业应用所需的类库。Java MEJava ME是Java微版的简称(Java Platform, Enterprise Edition),是一个技术和规范的集合,它为移动设备(包括消费类产品、嵌入式设备、高级移动设备等)提供了基于Java环境的开发与应用平台。Java ME目前分为两类配置,一类是面向小型移动设备的CLDC(Connected Limited Device Profile ),一类是面型功能更强大的移动设备如智能手机和及顶盒,称为CDC(Connected Device Profile CDC)Java ME有自己的类库,其中CLDC使用的是专用的Java虚拟机叫做KVM。(三)J2SE的安装与环境配置为了鼓励使用Java语言开发软件,Sun Microsystems公司提供了免费的软件开发工具包(SDK),其中包括编译器、虚拟机、调试器等开发工具,称为Java开发工具包或JDK。Windows版和Solaris版的JDK可以从如下站点下载:/products/jdk/1.5/index.html1、 JDK的安装:直接运行“jdk-1_5_0_11-windows-i586-p.exe”,按照安装向导进行安装。解压“j2sdk-1_4_2-windows-i586-doc.zip”,得到JDK的开发文档。 图1-1 JDK的安装2、 安装JDK后产生如下目录结构:bin目录:Java开发工具,包括Java编译器、解释器等 demo目录:一些实例程序 lib目录:Java开发类库 jre目录: Java运行环境,包括Java虚拟机、运行类库等图1-2 安装后的目录3、 Java运行环境配置(1)右键点击桌面上的“我的电脑”,进入属性对话框。(2)在“高级” 选项中选择“环境变量”,进入环境变量对话框,如图:图1-3 系统属性(3)在“系统变量”中选择“Path”,单击“编辑”命令,如图:图1-4 配置环境变量(4)将jdk1.5.0_11目录下的lib和bin的完整路径添加进去(如:C: Javajdk1.5.0_11bin),并用分号格开,然后电击确定。如图:图1-5 添加路径4、 Java开发工具包括:C:Javajdk1.5.0_11bin;C:Javajdk1.5.0_11lib;Javac:Java编译器,用来将java程序编译成Bytecode。Java:Java解释器,执行已经转换成Bytecode的java应用程序。Jdb:Java调试器, 用来调试java程序。Javap:反编译,将类文件还原回方法和变量。javadoc:文档生成器,创建HTML文件。Appletviwer:Applet解释器, 用来解释已经转换成Bytecode的java小应用程序。二、Java媒体框架(JMF)(一) 该核心框架支持不同媒体(如:音频输出和视频输出)间的时钟同步。它是一个标准的扩展框架,允许用户制作纯音频流和视频流。JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1还支持广受欢迎的媒体类型,如Quicktime、Microsofts AVI和MPEG-1等。此外,JMF 2.1.1软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。(二)JMF 体系结构简介 在开发JMF 应用程序之前要完全理解JMF 的体系架构、接口和类。就拿我们的家用摄像机系统作个例子。首先用摄像机拍摄内容,拍摄下来的内容录制在DV带中。DV带可以放在放像机里播放、放像机提供视频信号给电视机,提供音频信号给音箱,这样我们就可以在电视机上看到画面,从音箱里听到声音。JMF API 提供的也是同样的模型。 JMF 提供的模型可大致分为七类 * 数据源(Data source) * 截取设备(Capture Device,包括视频和音频截取设备) * 播放器(Player) * 处理器(Processor) * 数据池(DataSink) * 数据格式(Format) * 管理器(Manager)三、集成开发工具Eclipse的介绍(一)启动界面图3-1 Eclipse的启动(二)集成开发环境界面如图图3-2软件开发环境界面Eclipse最初是IBM公司的一个软件产品,IBM为它投入了4000万美元的巨资。2001年11月IBM向世界宣布了两件事,第一件是创建开源项目,即IBM将Eclipse捐赠给开源社区;另外一件事是成立 Eclipse 协会(Eclipse Consortium),这个协会由一些成员公司组成,主要任务是支持并促进 Eclipse 开源项目。刚开始的时候,Eclipse的声誉并不好,受到业界的很多批评。但到了2003年3月,Eclipse 2.1版本发布的时候,引起了业界的轰动。Eclipse就像软件开发者的打铁铺,它一开始备有火炉、铁钻和铁锤。就像铁匠会用现有的工具打造新的工具,也能用Eclipse打造新工具来开发软件-这些新工具可扩充Eclipse的功能。四、媒体播放器的软件设计(一)软件工程软件工程是1968年由NATO (北大西洋公约组织)在德国Garmish召开的学术会议上,Fritz Bauer首先提出了“软件工程”概念。软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)。软件工程是一门学科,一种科学理论来指导软件系统开发,标准化,自动化的过程,考虑如何分解一个系统,以便各人分工开发;考虑如何说明每个部分的规格要求;怎样才能易于维护。软件工程是一门指导软件开发的工程学科,它是在克服软件危机的过程中产生和发展的。为了克服软件危机,提高软件开发的效率和质量,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件,并将这种工程化的思想贯穿到软件开发和维护的全过程。这些软件开发的方法和技术,对软件产业的发展起着不可估量的作用。它还是一门新兴的边缘学科,涉及到计算机科学、工程科学、管理科学、数学等多学科,研究的范围广,主要研究如何应用软件开发的科学理论和工程技术来指导大型软件系统的开发。例如现代操作系统的开发,只有采用软件工程的方法才是最合理的。软件工程的定义:对软件开发、运作、维护的系统化的、有规范的、可定量的方法之应用,即是对软件的工程化应用。(IEEE)软件工程产生的原因:软件危机的出现。软件危机:“软件危机”(Software crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。由于软件危机的出现,导致软件工程的快速发展。软件的生命周期:软件生命周期(SDLD) 是指从软件开始开发到报废的全过程,亦称软件生存期(life cycle)。GB8567中规定,软件生命周期分为7个阶段,包括:1、可行性研究和项目开发计划。2、需求分析。3、概要设计。4、详细设计。5、编码。6、测试。7、维护。但大部分分为五个阶段,即1、需求定义。2、设计。3、编码。4、测试、5、维护。(二)总体设计:总体设计部分调用超类Frame的paint()方法,该paint()方法将调用Frame包含的各个容器和部件(包括控制面板部件)的paint()方法。图4-1 播放器外观public static void main(String args) new MediaPlayer(简单媒体播放器);public void paint(Graphics g) / 调用超类Frame的paint()方法,该paint()方法将调用Frame包含的各个容器 / 和部件(包括控制面板部件)的paint()方法。 super.paint(g);/以下代码实现了在开启程序之初显示欢迎界面if (first) int w = getSize().width;int h = getSize().height;g.setColor(Color.LIGHT_GRAY);g.fillRect(0, 0, w, h);Font f = new Font(DialogInput, Font.BOLD, 18);g.setFont(f);FontMetrics fm = g.getFontMetrics();int swidth = fm.stringWidth( 简单媒体播放器 );g.setColor(Color.white);g.drawString( 简单媒体播放器 ,(w - swidth) / 2,(h + getInsets().top) / 2);(三)细设计与编码1、文件命令:包括打开、循环、退出命令。各自功能介绍如下:图4-2 打开菜单(1)、打开命令:只能打开扩展名为.mp3的音乐图4-3 打开文件/用户选择要播放的媒体文件if (e.getActionCommand().equals(打开) FileDialog fd = new FileDialog(this, 打开媒体文件, FileDialog.LOAD);fd.setDirectory(currentDirectory);fd.show();/ 如果用户放弃选择文件,则返回 if (fd.getFile() = null)return;/保存了所选文件的名称及其全路径名称已被稍后使用/同时设置当前文件夹路径selcectfile = fd.getFile();currentDirectory = fd.getDirectory();cufile = currentDirectory + selcectfile;/将用户选择的文件作为一个菜单项加入播放列表该菜单项名为该文件名;/被点击后给出的命令串是该文件的全路径名MenuItem mi = new MenuItem(selcectfile);mi.setActionCommand(cufile);MenuBar mb = getMenuBar();Menu m = mb.getMenu(2);mi.addActionListener(this);m.add(mi); else /程序逻辑运行到此表示用户选择了一个播放列表中的媒体文件/此时可以通过如下动作获得该文件的全路径名;cufile = e.getActionCommand();selcectfile = cufile;/如果已存在一个播放器,则先将其关闭,稍后重新创建/创建播放器时需要捕捉一些异常;if (player != null)player.close();try player = Manager.createPlayer(new MediaLocator(file: + cufile); catch (java.io.IOException e2) System.out.println(e2);return; catch (NoPlayerException e2) System.out.println(不能找到播放器.);return;if (player = null) System.out.println(无法创建播放器.);return;first = false;setTitle(selcectfile);/设置处理播放控制器实际的对象;player.addControllerListener(this);player.prefetch();(2)、循环命令:让正在播放的音乐进入循环播放状态。如图:图4-4循环功能/在播放结束时,将播放指针置为文件之首,如果设定了循环播放,则再次启动播放器;if (e instanceof EndOfMediaEvent) player.setMediaTime(new Time(0);if (loop) player.start();return;(3)、退出命令:没有提示的直接退出程序。图4-5 退出功能/退出媒体播放器;if (e.getActionCommand().equals(退出) / 调用dispose以便执行windowClosed dispose();return;(二)播放控制命令:包括播放、暂停、停止命令。各自功能介绍如下:图4-6 播放控制菜单(1)、播放命令:让处于暂停和停止状态的歌曲进入播放状态图4-7 播放功能/次事件表明用户选择了播放菜单命令;/如果当前有一个文件可以播放则执行播放命令;if (e.getActionCommand().equals(播放) if (player != null) player.start();return;(2)、暂停命令:让处于播放和停止状态的歌曲进入暂停状态图4-8 暂停功能/如果当前正在播放某一文件,则执行暂停;if (e.getActionCommand().equals(暂停) if (player != null) player.stop();return;(3)、停止命令:让处于播放和暂停状态的歌曲进入停止状态图4-9 停止功能/此次事件表明用户选择了播放菜单命令;/如果当前有一个文件可以播放则执行播放命令;if (e.getActionCommand().equals(停止) if (player != null) player.stop();player.setMediaTime(new Time(0);return;3、播放列表:显示播放过的歌曲。图4-10 播放列表菜单4、状态栏: 显示歌曲状态和属性。点击左边的按钮可以让歌曲在暂停和播放状态之间切换;中间的进度条显示歌曲的播放进度;右边有声音控制开关和属性开关图4-11 状态栏五、调试(一) 在dos命令符中调试。1、 运行cmd命令进入DOS环境,使用cd命令进入调试文件所在的磁盘盘符:cd 所在磁盘盘符(例如cd C:)图5-1 运行对话框2、 进入Java类所在文件夹,使用命令cd 所在文件夹(例如 cd yao)图5-2 cmd命令3、 用javac命令对每个类进行编译图5-3 DOC下编译程序4、用java命令运行图5-4 运行结果(二)在Eclipse集成开发环境中调试。1、 开始创建media项目图5-5 创建项目1、 创建包bofang图5-6 创建包2、 创建主函数MediaPlayer。图5-7 创建主函数3、 调试步骤: 选单选RunRun asJava Application 若有修改过程序,Eclipse会询问在执行前是否要存档 Tasks试图会多出Consol页标签并显示程序输出4、 逐步除错:在暂停的程序中移动最基本的作法是采逐步法(single-steping)。Eclipse提供下列的选项: Step Into 按钮(也可以按F5),进入选取的叙述内。如果该叙述是呼叫某方法,则进入执行该方法。 Step Over 按钮(也可以按F6),掠过选取的叙述内。如果该叙述是呼叫某方法,则不会进入该方法。 Step Return 按钮(也可以按F7),执行将回复,直到现行方法中下一个 return 陈述式要执行为止,且执行会暂停于下个可执行行上。 Drop to Frame 按钮,这个指令可以放回与重新输入指定的堆栈框。这项特性类似回头执行再整个重新启动程序。如果要放回堆栈框,再重新输入指定的堆栈框,请选取要放置的指定堆栈框,再选取Drop to Frame。结束语:经过两个月的努力,毕业设计终于完成了。这意味着大学三年即将结束,也意味着新的生活即将开始。在毕业设计的实践中,我不断的熟悉java知识,查看Java程序设计基础与上机指导以及相关书籍;同时,不断的向资质深的朋友和老师请教有关问题,自己的专业理论知识和经验得到了很好的补充与完善。在毕业设计中,理论和实践首次有机结合在一起,让我受益匪浅。我也充分认识到自己的不足,在以后的日子里,我将更加努力的补充各种知识,完善自我!最后,我用未来之路中比尔.盖茨先生的一句话来为我的毕业设计画上句号。“现在,我们又要开始另一次伟大的旅行。”致谢:本文是在张庆丰老师的悉心指导下完成的,衷心感谢他在论文的写作期间给与我的热情帮助和指导。张老师渊博的知识,认真负责的工作作风,平易近人的态度让我获益匪浅。在此,向张老师表示最衷心的感谢和最诚挚的敬意。 还要感谢我的同学刘光辉,他在我的论文写作过程中提出了很多建设性的意见,并给了我很多启发。 感谢安徽工业大学大学职业技术学院的全体领导和老师,你们深厚的学术功底和诲人不倦的高尚师德将让我受用一生。 感谢05计应3全班同学给予我的关心、友谊和帮助,是你们给了我美好而难忘的学习生活。最后,我要衷心感谢我的父母,是你们一直默默地给与我理解与支持,给与我勇敢面对困难的勇气和力量,让我能够顺利地完成学业。参 考 文 献1 美高斯林. Java编程规范(第三版)M.广州: 中国电力出版社, 2006.7.2 孙卫琴.JAVA面向对象编程M.北京:电子工业出版社编, 200 美塔特,杰兰德.轻快的JavaM.广州: 中国电力出版社,2006.7.4 张孝祥.Java就业培训教程M.北京:清华大学出版社,2003.95 良葛格.Java学习笔记M.北京:清华大学出版社, 2006.8. 附录A 软件源代码MediaPlay.java文件:/程序所用到的各种程序包import java.awt.BorderLayout;import java.awt.CheckboxMenuItem;import java.awt.Color;import java.awt.Component;import java.awt.Container;import java.awt.FileDialog;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.media.ControllerClosedEvent;import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.EndOfMediaEvent;import javax.media.GainControl;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.NoPlayerException;import javax.media.Player;import javax.media.PrefetchCompleteEvent;import javax.media.RealizeCompleteEvent;import javax.media.Time;import javax.swing.JFrame;/本程序对应的类;class MediaPlayerextends JFrameimplements ActionListener, ControllerListener, ItemListener /MediaPlayer类的变量成员的声明;/JMF提供的播放器对象;Player player;Component vc, cc, gcc;GainControl gc;/first值用来控制在刚开始程序时显示一幅欢迎界面;loop用以标记是否循环播放;boolean first = true, loop = false;/设立一个字符串记录当前打开文件的路径String currentDirectory;MediaPlayer(String title) super(title);/ 利用一个adapter实现对用户点击窗口系统菜单的关闭按钮 / 时的响应; addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) /调用dispose以执行windowCloseddispose();public void windowClosed(WindowEvent e) if (player != null)player.close();System.exit(0););/调用设置程序菜单栏的方法成员完成菜单的布置setupMenu(); /对窗口大小进行设置setSize(300, 200);setVisible(true);/本方法用以设置程序菜单栏public void setupMenu() /设置一个菜单Menu f = new Menu(文件);/往设置的菜单种添加菜单项MenuItem mi = new MenuItem(打开);mi.addActionListener(this);f.add(mi);f.addSeparator();CheckboxMenuItem cbmi = new CheckboxMenuItem(循环, false);cbmi.addItemListener(this);f.add(cbmi);f.addSeparator();mi = new MenuItem(退出);mi.addActionListener(this);f.add(mi);Menu l = new Menu(播放列表);Menu c = new Menu(播放控制);MenuItem move = new MenuItem(播放);move.addActionListener(this);c.add(move);c.addSeparator();MenuItem pause = new MenuItem(暂停);pause.addActionListener(this);c.add(pause);c.addSeparator();MenuItem stop = new MenuItem(停止);stop.addActionListener(this);c.add(stop);c.addSeparator();/设置一个菜单栏MenuBar mb = new MenuBar();/将设置的菜单依次加入程序的菜单栏中去mb.add(f);mb.add(c);mb.add(l);/将构造完成的菜单栏交给当前程序的窗口;setMenuBar(mb);/事件响应成员;捕捉发送到本对象的各种事件;public void actionPerformed(ActionEvent e) /设一个字符串用于暂存打开的媒体文件的路径;String cufile , selcectfile;/退出媒体播放器;if (e.getActionCommand().equals(退出) / 调用dispose以便执行windowClosed dispose();return;/次事件表明用户选择了播放菜单命令;/如果当前有一个文件可以播放则执行播放命令;if (e.getActionCommand().equals(播放) if (player != null) player.start();return;/如果当前正在播放某一文件,则执行暂停;if (e.getActionCommand().equals(暂停) if (player != null) player.stop();return;/此次事件表明用户选择了播放菜单命令;/如果当前有一个文件可以播放则执行播放命令;if (e.getActionCommand().equals(停止) if (player != null) player.stop();player.setMediaTime(new Time(0);return;/用户选择要播放的媒体文件if (e.getActionCommand().equals(打开) FileDialog fd = new FileDialog(this, 打开媒体文件, FileDialog.LOAD);fd.setDirectory(currentDirectory);fd.show();/ 如果用户放弃选择文件,则返回 if (fd.getFile() = null)return;/保存了所选文件的名称及其全路径名称已被稍后使用/同时设置当前文件夹路径selcectfile = fd.getFile();currentDirectory = fd.getDirectory();cufile = currentDirectory + selcectfile;/将用户选择的文件作为一个菜单项加入播放列表该菜单项名为该文件名;/被点击后给出的命令串是该文件的全路径名MenuItem mi = new MenuItem(selcectfile);mi.setActionCommand(cufile);MenuBar mb = getMenuBar();Menu m = mb.getMenu(2);mi.addActionListener(this);m.add(mi); else /程序逻辑运行到此表示用户选择了一个播放列表中的媒体文件/此时可以通过如下动作获得该文件的全路径名;cufile = e.getActionCommand();selcectfile = cufile;/如果已存在一个播放器,则先将其关闭,稍后重新创建/创建播放器时需要捕捉一些异常;if (player != null)player.close();try player = Manager.createPlayer(new MediaLocator(file: + cufile); catch (java.io.IOException e2) System.out.println(e2);return; catch (NoPlayerException e2) System.out.println(不能找到播放器.);retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州六校联考试题及答案
- 护理部的考试题及答案
- 安全常识竞赛题库及答案
- 2型呼衰护理病历
- 冬天的雪景纯净的世界写景7篇
- 腰穿刺护理知识
- 县人力资源和社会保障局“党建红・人社暖”365党建品牌创建方案
- 教育机构师资能力评价综合标准模板
- 伴侣犬性格测试题及答案
- 湿热袋敷疗法
- 2023初中化学课程标准(2022年版)考试题库及答案
- 山西水利职业技术学院单招《职业技能测试》参考试题库(含答案)
- 采购部供应商评审与筛选标准
- 早餐券模板可编辑
- 车联网技术与应用PPT完整全套教学课件
- 医患沟通技能评价量表(SEGUE)
- 如何识别与消除七大浪费演示文稿
- 第四章-集成运算放大电路
- 病毒性肝炎的免疫学检查
- 第一章(诱发电位概论)+第二章(体感诱发电位)(2013年)
- GB/T 25085.3-2020道路车辆汽车电缆第3部分:交流30 V或直流60 V单芯铜导体电缆的尺寸和要求
评论
0/150
提交评论