基于Java的flash播放器_第1页
基于Java的flash播放器_第2页
基于Java的flash播放器_第3页
基于Java的flash播放器_第4页
基于Java的flash播放器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Java的flash播放器(张鹏 6069)一、 设计思路 首先我们来看看构造这个flash播放器要达到什么样的目标:flash播放器是一个菜单驱动的简单AWT应用。 flash播放器包含一个“文件”菜单,文件菜单包含三个菜单项: “打开”,用来打开媒体文件(mp3)。 “循环”,是播放一次(默认),还是重复播放。 “退出”,退出程序。 flash播放器可以在多种平台上运行。 flash播放器的核心功能通过JMF(Java Media Framework)API实现。JMF扩展了J2SE平台的多媒体能力,允许Java应用和Applet截取、回放、转换包括音频和视频在内的多种媒体。二、初步设

2、计 我们把这个媒体播放器的设计分成两个部分:GUI设计,伪代码设计。在GUI设计中,我们要了解构成程序的各个GUI部件。在伪代码设计中,我们用自然语言写出程序运行原理。 2.1 GUI设计 媒体播放器的用户界面包含一个主窗口、一个菜单和一个打开文件的对话框。首先我们来看看主窗口的设计。主窗口应该把窗口标题显示为“简单flash播放器”,显示“文件”菜单。 “文件”菜单包含三个菜单项。“打开”菜单显示一个对话框,用来选择媒体文件的位置。“循环”菜单决定媒体文件只播放一次(默认)还是反复播放(当菜单被选中)。最后,“退出”菜单关闭程序。另外,点击主窗口右上角的关闭按钮也可以关闭程序。请参见图二。

3、图二:“文件”菜单点击“文件/打开”菜单时,“打开媒体文件”对话框出现。选中媒体文件之后,点击“打开”按钮即可打开媒体文件;点击“取消”按钮中止文件打开操作。如图三所示:“打开媒体文件”对话框 除了上面提到的部件之外,媒体播放器还包含一个视觉部件、一个控制面板部件。视觉部件顺序播放媒体文件包含的各帧图像;控制面板部件允许用户暂停、开始媒体文件的回放,或进行其他控制操作,例如查看媒体文件信息。 2.2 伪代码设计 前面我们了解了构成媒体播放器GUI的各个部件,下面要开始“设想”一下这个程序的具体构造。在正式编写代码之前,我们先用伪代码的形式写出这个程序的运行过程,以后正式编写代码时只需把伪代码翻

4、译成Java代码即可。下面给出了媒体播放器的伪代码描述: 应用的类名称:Player 超类:Frame 监听器分类:动作事件,控制器事件,菜单项事件,绘图事件,窗口事件 main: * 为Player对象分配内存。调Player构造函数, 创建主窗口(同时,隐含地创建/启动了AWT后台线程) * 结束主程序线程。此时AWT线程继续运行。 flash构造函数: * 设置主窗口的标题 * 注册窗口监听器,以处理窗口关闭事件 * 创建“文件”菜单 * 创建“打开”菜单项 * 把Player对象注册成为“打开”菜单项动作事件的监听器 * 把“打开”菜单项加入“文件”菜单。 * 在“文件”菜单中加入一条

5、水平分隔线 * 创建带检查框的“循环”菜单项 * Player对象注册成为“循环”菜单项事件的监听器 * 把“循环”菜单项加入“文件菜单” * 在“文件”菜单中加入一条水平分隔线 * 按照创建“打开”菜单项的过程,创建“退出”菜单项 * 创建一个菜单条(MenuBar) * 把“文件”菜单加入到菜单条 * 把新创建的菜单条设置为主窗口的菜单条 * 显示主窗口 * 结束构造函数 动作监听器:当出现动作时: * 如果动作事件起源于“退出”菜单项, * 触发一个给窗口监听器的窗口关闭事件 * 返回 * 创建一个“打开媒体文件”对话框 * 把对话框的当前目录设置为上次关闭时的目录 * 显示对话框。这个

6、对话框是一个模式对话框 * 如果用户没有通过对话框选择媒体文件 * 返回 * 保存用户在对话框中选择的目录 * 如果以前已经创建JMF播放器对象 * 关闭该对象创建播放图片菜单其中包含一个循环播放图片的菜单条单击循环播放菜单条事件:会先停止mp3的播放,单击最大化图标接着循环播放图片,在循环播放图片的时候,可以单击播放菜单在播放图片时播放背景音乐。 * 根据指定的目录和名字,创建一个使用file:协议的媒体定位器(MediaLocator)对象,再利用该对象创建一个JMF播放器对象 * 如果出现异常 * 显示错误信息,然后返回 * 把主窗口的标题设置为媒体文件的名字 * 把Player对象注册

7、为来自JMF播放器对象的控制器事件的监听器 * 让JMF播放器对象预先提取媒体内容 * 返回 控制器监听器: 当控制器被关闭: * 如果JMF播放器的视觉部件存在,从Player容器拆除视觉部件 * 如果JMF播放器的控制面板部件存在,从Player容器拆除控制面板部件 * 返回 当媒体回放结束: * 如果“循环”菜单被选中 * 复位JMF播放器对象的开始时间 * 让JMF播放器对象开始播放媒体 * 返回 当预提取媒体内容结束: * JMF播放器对象开始播放媒体 * 返回 当实例化(realize)完成: * 获取JMF播放器对象的视觉部件 * 如果视觉部件存在,则把它加入到Player容器的

8、中间 * 获取JMF播放器对象的控制面板部件 * 如果控制面板部件存在,则把它加入到player容器的南方 * 执行pack()操作 * 返回 菜单项监听器: 当菜单项状态改变: * 切换“循环”菜单被选中的状态 * 返回 绘画事件监听器: paint()方法: * 如果尚未装入媒体文件 * 获得主窗口的宽度和高度 * 用蓝色填充窗口内的区域 * 创建一种字体(DialogInput/粗体),并将它设置为主窗口的字体 * 调用Frame超类的paint()方法,确保控制面板部件正确地画出 * 返回 update()方法: * 调用paint()方法 * 返回 窗口监听器: windowClosing: * 调用dispose以执行windowClosed * 返回 windowClosed: * 如果已经创建JMF播放器对象 * 关闭JMF播放器对象 * 结束程序 伪代码的前面三行声明了媒体播放器的类名称、超类的名称和Player类实现的监听器。带有m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论