JAVA带面板的视频播放器制作课程设计

合集下载

教你利用VC 和JAVA 设计视频播放器的详细步骤

教你利用VC  和JAVA 设计视频播放器的详细步骤

音量控制和媒体播放对象对界面管理存在依赖关系,这两个对象要从 界面获取控制指令,它们的属性要在界面上显示。本播放器的类图如图 2 所示。
界面管理 +媒体文件信息 +播放控制指令 +界面隐藏/显示指令 +音量控制 +显 示 播放 情 况 ():void +查找文件():void +播放():void +暂停():void +退出():void +全屏():void
图5
ActiveMovie 添加控件
4. 在对话框类的文件夹中包含控件类,添加的代码如下:
//MovieDlg.h : header file #include “activemovie3.h”
5. OnPaint( )
播放器对话框函数。 void CMediaPlayerDlg::OnPaint() { if (IsIconic()) { CPaintDC dc (this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); //在用户端长方形中置图像 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON);
CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter); ∥定义打开对话框对象 if (dlg.DoModal()==IDOK) { CString PathName=dlg.GetPathName();//获取一个字符串 PathName.MakeUpper(); m_ActiveMovie.SetFileName(PathName);//设置该 串为媒体播 放器文件 } } 其中, 第一条语句用于设置选择文件的类型, 第二条语句用于创建一个 “打 开文件”的对话框,后面的语句用于选择要播放的文件。 ( 2) 添加 【 关闭】按 钮 的处理函 数,它的 主要功 能是利用文 件对话框 关 闭视频文件,具体实现步骤同(1) ,添加的代码如下: void CMediaPlayerDlg::OnClose() { //在这里增加控制处理程序代码 m_ActiveMovie.CloseWindow(); //关闭窗口 } ( 3) 添加 【 播放】按 钮 的处理函 数,我们 先判断 文件的状态 ,再调用 控 件的有关方法来播放视频文件,具体代码如下: void CMediaPlayerDlg::OnPlay() { m_ActiveMovie.Run(); SetTimer(0,20, NULL); //设置定时器模式 } ( 4) 添加 【 停止】按 钮 的处理函 数,它的 主要功 能是利用文 件对话框 停 止视频文件的播放,具体实现如下: void CMediaPlayerDlg::OnStop() { //在这里增加控制处理程序代码 m_ActiveMovie.Stop(); KillTimer(0); //关掉定时器 } ( 5) 添加 【 暂停】按 钮 的处理函 数,它的 主要功 能是利用文 件对话框 暂 停视频文件的播放,具体实现如下: void CMediaPlayerDlg::OnPause() { // 在这里增加控制处理程序代码

《设计与制作播放器界面》项目教学设计

《设计与制作播放器界面》项目教学设计

《设计与制作播放器界面》项目教学设计一、项目情境听音乐、看电视是网络生活中的重要内容,各种播放软件遍布于网络的每一个角落。

其媒体的播放质量,技术含量也相差无几。

关键在于播放器设计的个性化、人性化和美观程度,使人们有欲望试用,并且长期使用。

因此,播放界面的设计与制作环节显得非常重要。

播放器界面也常常被人们称作为“皮肤”。

一般来说,改变“皮肤”主要是在原播放器界面的颜色和色调上做文章,也就是设计制作一款播放器界面后,改变其不同的颜色或色调来实现。

当然,也有从播放界面布局的变化而形成风格各异的界面。

本项目就是要求学生使用Photoshop CS4软件,根据教材提供的素材图片,设计制作播放器界面。

二、项目目标学生通过完成本项目,达成以下目标:知识与技能:深入了图层样式和图层混合模式的功能,尝试使用图层样式和图层的混合模式处理图像;了解界面设计的基本知识方法与过程:能够根据项目的要求,确定完成项目的所需要的技术与方法,并较熟练的完成任务;能对自己和他人的活动过程与结果进行评价与交流,能归纳利用信息技术解决问题的基本思想与方法。

情感、态度、价值观:通过完成本项目,能够感受到信息技术给人们工作、学习和生活带来的方便与快捷。

三、项目分析在完成本项目的过程中,主要使用到图层样式、图层混合模式、形状绘图和图层蒙版等技术。

这些知识与技术在些项目中或多或少均有使用,对学生来说并不陌生,使用起来就会得心就手。

在完成本项目的过程,学生需要更进一步了解,图层样式的参数设置,方可完成本项目。

因此,学生需要具备如下基本知识与技能:1.了解图层样式参数面板中的属语和参数设计方法。

2.深入尝试图层混合模式的使用方法。

在完成本项目的过程中,除了制作播放器“控制按钮”需要一定的操作技巧外,其他操作都比较简单,整体难度不大。

在学生制作播放器界面之前,需要引导学生了解“播放器”的功能,界面各元素的一般布局。

当学生了解了播放器的相关知识后,制作起来就会得心应手。

安卓视频开发课程设计

安卓视频开发课程设计

安卓视频开发课程设计一、课程目标知识目标:1. 理解安卓视频开发的基本概念和原理,掌握视频播放、录制和编解码的相关技术;2. 学会使用安卓平台提供的API进行视频应用开发,了解不同版本安卓系统的兼容性问题;3. 掌握至少一种视频处理框架,如MediaPlayer、ExoPlayer等,并能应用于实际项目中。

技能目标:1. 能够独立设计并开发简单的安卓视频播放器、录制器等应用;2. 学会使用调试工具和性能分析工具,对视频应用进行优化和调试;3. 掌握版本控制工具,如Git,以便于团队合作和代码管理。

情感态度价值观目标:1. 培养学生热爱编程,对安卓视频开发产生兴趣,提高学习积极性;2. 培养学生的团队协作精神,学会与他人共同解决问题,提高沟通能力;3. 增强学生的创新意识,鼓励尝试新技术和新方法,培养勇于探索的精神。

课程性质:本课程为实践性较强的课程,要求学生在理解理论知识的基础上,动手实践,培养实际开发能力。

学生特点:学生具备一定的编程基础,对安卓开发有一定了解,但视频开发方面可能较为陌生。

教学要求:结合实际案例,引导学生掌握视频开发的核心技术,注重实践与理论相结合,提高学生的实际开发能力。

在教学过程中,关注学生的个体差异,提供针对性的指导。

通过课程学习,使学生能够达到上述设定的课程目标。

二、教学内容1. 安卓视频开发基础理论- 视频播放原理与编解码技术- 安卓系统视频API介绍2. 安卓视频播放器开发- MediaPlayer框架的使用- ExoPlayer框架的介绍与使用- 视频播放器界面设计与实现3. 安卓视频录制与编辑- MediaRecorder的使用- 视频编辑技术简介- 视频合成与特效处理4. 安卓视频应用性能优化- 视频播放性能分析- 内存与线程管理- 优化工具与技巧5. 安卓视频项目实战- 项目需求分析与设计- 功能模块划分与开发- 测试与调优教学大纲安排:第一周:安卓视频开发基础理论第二周:MediaPlayer框架的使用第三周:ExoPlayer框架的介绍与使用第四周:MediaRecorder的使用与视频编辑技术第五周:安卓视频应用性能优化第六周:项目实战与总结教学内容关联教材章节:- 安卓视频开发基础理论:教材第3章- 安卓视频播放器开发:教材第4章- 安卓视频录制与编辑:教材第5章- 安卓视频应用性能优化:教材第6章- 安卓视频项目实战:教材第7章三、教学方法本课程采用以下多样化的教学方法,旨在激发学生的学习兴趣,提高学生的主动性和实践能力:1. 讲授法:教师通过生动的语言和形象的表达,讲解安卓视频开发的基本概念、原理和技术要点。

JAVA课程设计报告 视频播放器

JAVA课程设计报告   视频播放器

重庆大学课程设计说明书题目:Java程序设计之课程设计院系:计算机学院专业班级:计算机科学与技术4班学生:代金龙(20065231)程飞(20065265)王小东(2006)指导教师:李芝兴2009年1月6日目录1、学生成绩评定表 (3)2、课程设计任务说明书 (6)3、需求分析 (7)4、程序设计过程 (7)4.1实验原理 (7)4.2程序设计图 (12)4.3核心代码 (13)5、实验结果 (23)6、总结分析 (23)8、参考文献 (23)姓名:代金龙学号:20065231项目分值优秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名:年月日姓名:程飞学号:20065265项目分值优秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名:年月日姓名:王小东学号:2006项目分值优秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)评分参考标准参考标准参考标准参考标准参考标准学习态度15学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作学习态度尚可,能遵守组织纪律,能按期完成任务学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度技术水平与实际能力25设计合理、理论分析与计算正确,实验数据准确,有很强的实际动手能力、经济分析能力和计算机应用能力,文献查阅能力强、引用合理、调查调研非常合理、可信设计合理、理论分析与计算正确,实验数据比较准确,有较强的实际动手能力、经济分析能力和计算机应用能力,文献引用、调查调研比较合理、可信设计合理,理论分析与计算基本正确,实验数据比较准确,有一定的实际动手能力,主要文献引用、调查调研比较可信设计基本合理,理论分析与计算无大错,实验数据无大错设计不合理,理论分析与计算有原则错误,实验数据不可靠,实际动手能力差,文献引用、调查调研有较大的问题创新10有重大改进或独特见解,有一定实用价值有较大改进或新颖的见解,实用性尚可有一定改进或新的见解有一定见解观念陈旧论文(计算书、图纸)撰写质量50结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰指导教师评定成绩:指导教师签名:年月日课程设计任务说明书课程设计题目Java程序设计之课程设计学院计算机学院专业计算机科学与技术年级2006实验教学的目的、任务与要求Java程序设计是计算机网络工程专业一门重要的专业必修课。

视频播放器的程序设计及代码示例

视频播放器的程序设计及代码示例

视频播放器的程序设计及代码示例一、介绍视频播放器是一种常用的应用程序,用于播放电影、电视剧、MV等各种类型的视频文件。

它可以提供良好的用户体验,具备快进、快退、调节音量、全屏播放等功能。

在本文中,将介绍视频播放器的程序设计原理,并给出一些示例代码来帮助读者更好地理解和实践。

二、程序设计原理1. 用户界面设计:视频播放器的用户界面需要简洁明了,并提供直观的操作按钮,如播放、暂停、停止、快进/快退、音量调节等。

可以使用图标、按钮、滑块等控件来实现,并合理布局,以便用户轻松地操作和控制播放器。

2. 视频解码与显示:视频播放器需要将视频文件进行解码,并实时将解码后的图像进行显示。

常见的视频解码算法有H.264、MPEG-2等。

可以使用像素缓冲区来存储解码后的图像数据,并使用界面库或图形库将图像数据显示在屏幕上。

3. 音频解码与播放:视频文件中通常包含音频轨道,视频播放器需要将音频数据解码并实时播放。

音频解码可以使用MP3、AAC等常见的音频解码算法。

播放音频可以使用操作系统提供的音频播放接口,如Windows下的DirectSound、Linux下的ALSA等。

4. 文件格式支持:视频播放器需要支持常见的视频文件格式,如MP4、AVI、MKV等。

这涉及到对不同格式文件的解析和支持,需要使用相应的解析库或者开源框架。

5. 视频控制功能:视频播放器除了基本的播放、暂停、停止功能外,还应该提供快进/快退、跳转指定位置、循环播放、调节音量和亮度等高级控制功能。

通过对用户操作的监测,可以实现这些功能,并更新界面以反映当前的播放状态。

三、代码示例以下是一个基于Java编写的简单视频播放器的代码示例,用于展示播放视频文件和基本的控制功能:```javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.File;import ponent.EmbeddedMediaPlayerComponent;import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;public class SimpleVideoPlayer {private JFrame frame;private JPanel playerPanel;private JButton playButton;private JButton pauseButton;private JButton stopButton;private EmbeddedMediaPlayer mediaPlayer;public SimpleVideoPlayer() {frame = new JFrame("Simple Video Player");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(800, 600);playerPanel = new JPanel();frame.getContentPane().add(playerPanel, BorderLayout.CENTER);playButton = new JButton("Play");pauseButton = new JButton("Pause");stopButton = new JButton("Stop");playerPanel.add(playButton);playerPanel.add(pauseButton);playerPanel.add(stopButton);mediaPlayer = newEmbeddedMediaPlayerComponent().getMediaPlayer();playButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {mediaPlayer.play();}});pauseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {mediaPlayer.pause();}});stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {mediaPlayer.stop();}});frame.setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {SimpleVideoPlayer player = new SimpleVideoPlayer();}});}}```这段代码使用了Java语言,基于VLCJ (VLC Java Bindings)库来实现视频播放器。

计算机网络技术专业Android程序设计课程设计-视频播放器的设计与实现

计算机网络技术专业Android程序设计课程设计-视频播放器的设计与实现

课程设计任务书
题目:视频播放器的设计与实现
学号:
姓名:
专业:计算机网络技术
课程:android程序设计指导教师:职称:讲师
完成时间:2013年11月----2013年12月
课程设计任务书及成绩评定
目录
1 软件产品介绍 (5)
1.1 软件产品名称 (5)
1.2 软件总体功能 (5)
2 软件开发环境 (5)
2.1 JDK安装 (5)
2.2 Android SDK安装以及系统设置 (5)
2.3 Eclipse安装以及ADT工具的安装 (5)
3 软件功能说明 (6)
3.1 软件布局 (6)
3.2 视频文件搜索功能 (7)
3.3播放控制功能 (8)
3.4其他功能 (9)
4 程序流程图 (10)
5 软件界面及程序主要代码 (10)
5.1 软件在虚拟机上调试及分析 (10)
5.2 软件在手机上的调试及分析...................................................错误!未定义书签。

5.3 程序主要代码 (11)
6 设计总结 (12)
7 附录 (12)。

基于Java的在线影音播放器开发及优化

基于Java的在线影音播放器开发及优化

基于Java的在线影音播放器开发及优化一、引言随着互联网的普及和网络带宽的提升,在线影音播放器已经成为人们日常娱乐生活中不可或缺的一部分。

基于Java语言的在线影音播放器具有跨平台性、易维护性和良好的扩展性等优点,因此备受开发者青睐。

本文将探讨基于Java的在线影音播放器的开发过程以及优化方法,帮助开发者更好地实现高性能、稳定可靠的在线影音播放器。

二、开发环境搭建在进行基于Java的在线影音播放器开发之前,首先需要搭建相应的开发环境。

通常情况下,我们可以选择使用JavaFX作为界面开发框架,结合FFmpeg等多媒体处理库来实现音视频播放功能。

同时,还需要考虑到网络通信模块的集成,以实现在线流媒体播放功能。

三、功能设计与实现1. 音视频格式支持在开发在线影音播放器时,需要考虑支持常见的音视频格式,如MP4、AVI、MKV等。

通过集成FFmpeg等多媒体处理库,可以实现对不同格式的音视频文件进行解码和播放。

2. 播放控制功能在线影音播放器通常具备播放、暂停、快进、快退、音量调节等基本控制功能。

通过JavaFX提供的界面组件和事件处理机制,可以轻松实现这些功能,并提供良好的用户体验。

3. 网络流媒体支持为了实现在线直播和点播功能,需要集成网络通信模块,支持HTTP、RTMP等流媒体协议。

通过网络请求和数据解析,可以实现从网络获取音视频数据并进行实时播放。

四、性能优化策略1. 资源管理优化在播放大规模音视频文件时,需要合理管理内存和线程资源,避免内存泄漏和资源浪费。

可以通过使用线程池管理线程、定时清理无用资源等方式来优化资源管理。

2. 缓冲策略优化为了提高在线影音播放器的流畅度和加载速度,可以采用预加载、分段缓冲等策略来优化缓冲机制。

通过合理设置缓冲区大小和加载策略,可以有效减少卡顿和加载时间。

3. 码率自适应优化针对不同网络环境和设备性能,可以实现码率自适应功能,根据当前网络带宽和设备性能动态调整音视频码率。

耿祥义java视频课程设计

耿祥义java视频课程设计

耿祥义java视频课程设计一、课程目标知识目标:1. 学生能够掌握Java语言的基本语法和结构,理解面向对象编程的基本概念。

2. 学生能够运用Java编程实现数据的输入、处理和输出,解决实际问题。

3. 学生了解Java集合框架,掌握常用的数据结构和算法。

技能目标:1. 学生能够独立编写、调试和运行Java程序,具备基本的编程能力。

2. 学生能够运用面向对象的思想,设计和实现简单的类和对象。

3. 学生能够运用Java集合框架解决实际问题,提高编程效率。

情感态度价值观目标:1. 学生通过学习Java编程,培养解决问题的能力和逻辑思维能力。

2. 学生在学习过程中,养成积极探究、合作分享的学习态度。

3. 学生能够认识到编程在现代社会中的重要作用,激发对计算机科学的兴趣。

课程性质:本课程为Java语言编程入门课程,注重理论与实践相结合,培养学生具备初步的编程能力。

学生特点:学生处于初中阶段,对计算机编程有一定的好奇心,具备一定的逻辑思维能力,但注意力容易分散,需要通过趣味性和实用性强的案例来激发学习兴趣。

教学要求:教师应注重启发式教学,引导学生主动探索,关注学生的个体差异,提供个性化的指导。

在教学过程中,强调实践操作,使学生能够将所学知识应用于实际问题的解决中。

同时,关注学生的情感态度,营造积极、和谐的学习氛围。

通过分解课程目标为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. Java基本语法与结构- 数据类型、变量和常量- 运算符、表达式和语句- 控制结构(顺序、分支、循环)- 数组的使用2. 面向对象编程基础- 类与对象的概念- 构造方法与实例方法- 封装、继承与多态- 抽象类与接口3. Java集合框架- 集合的概念与分类- 常用集合类(List、Set、Map)- 集合的遍历与操作4. 数据结构与算法- 简单排序算法(冒泡、选择、插入)- 复杂数据结构(链表、树、图)- 算法分析与优化5. Java编程实践- 编程规范与调试技巧- 实例分析与项目实践- 代码优化与重构教学内容安排与进度:第一周:Java基本语法与结构第二周:控制结构及数组的使用第三周:面向对象编程基础第四周:Java集合框架第五周:数据结构与算法第六周:Java编程实践(含项目实践)教材章节关联:《Java程序设计》第一章至第六章,涵盖本教学内容所列举的所有知识点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:201017010227姓名:朱林同组成员: 李伟指导教师: 唐石目录第1章课程设计的目的和意义 (3)1.1 设计目的 (3)1.2 设计意义 (3)第2章课程设计要求 (3)第3章需求分析 (4)第4章程序设计过程 (5)4.1 实验原理 (5)4.2 程序设计图 (6)4.3 设计及核心代码 (7)第5章系统测试 (15)第6章心得体会 (19)第7章参考文献 (20)第1章课程设计的目的和意义1.1 设计目的1.训练掌握,加深理解并巩固《java语言程序设计》课程中所学到的基本概念、编程思路以及语法知识2.综合运用java程序设计的编程方法,能够利用这些程序设计方法来解决工程和科研中常见的实际问题3.培育分析问题解决问题的能力,进一步提高并巩固进行大型程序设计的能力4.提高学生实践论文撰写能力1.2 设计意义java 是一种高级编程语言,是编程的基本工具,是为软件开发,网页制作等与计算机编程有关专业的基础课程!学好java语言程序设计对计算机专业的人来说必不可少的一件事,对大学生将来进入软件行业从事java软件开发有着不可替代的作用,为大学生提供了一种锻炼自我勇于实践的能力,也提高大学生的动手能力,所以课程设计是相当的重要。

第2章课程设计要求《Java程序设计》是计算机网络工程专业一门重要的专业必修课。

为了进一步巩固课堂上所学到的知识,深刻把握Java技术的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设Java程序设计的课程设计。

课程设计的任务是完成课程设计内容,写出课程设计报告。

要求学生掌握:1.掌握Java的语言规范,面向对象的核心概念和特性;2.掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;3.掌握Java应用软件的开发环境和开发过程;4.掌握基于Jsp网站的开发环境和开发过程;5.掌握面向对象的思想和程序设计方法。

第3章需求分析3.1任务目的:1.实现视频文件的正确播放;2. 能够实现对视频播放的控制,如暂停,播放,快进,快退,上一个,下一个等功能;3.能够进行文件视频的选择,全屏,音量的控制,拖动,播放模式的控制等;4.任意改变播放视频界面大小等功能。

3.2程序的设计、调试、运行的软件环境:操作系统:Windows XP(SP2)数据库及数据库管理软件:SQL Server 2005JDK环境:Java SE Development Kit(JDK)Version 6开发工具:Eclipse运行平台:Windows、Linux各个版本、MAC等任何平台运行环境:Java SE Runtime Environment(JRE)Version第4章程序设计过程4.1实验原理JMF提供了一个平台无关的框架来呈现时基媒体(time-based media)。

JavaMediaPlayerAPI的设计目标是支持多种标准的媒体格式,包括MPEG-1,MPEG-2,QuickTime,AVI,WAV,AU和MIDI.使用JMF,可以同步呈现不同来源的时基媒体。

现有的一些媒体播放器都严重依赖原生码来执行解压缩、渲染等计算密集型任务。

而JMF API则隐藏了具体实现,只提供抽象的编程接口。

举例来说,一个用JMF制作的播放器,具体运行的过程中可能会调用到操作系统的本地方法,但开发者写代码时可以无视本地方法的存在。

JMF Player API :∙接入不同的协议和分发(传输)机制∙接入不同的媒体数据类型定义事件模型,用于Player和应用程序间的异步通信JMF对于errors(错误)和exceptions(异常)作如下约定。

∙Java Media Errors 是当程序调用了一个当前状态下非法的方法时抛出的。

Errors是在外部程序有控制权的状态下执行了非法的请求而抛出的。

举例来说,调用一个处于Started的Player的方法时抛出的就是error。

开发者有责任在调用方法前确认Player已被停止。

JMF error是可以通过优化代码来避免的,应用程序不应该捕获JMF errors, 好的应用程序不会碰到这些错误。

∙Java Media Exceptions是当程序调用了不能完成的方法或在当前状态下不适用的方法。

Exceptions是在外部程序没有控制权的状态下抛出的。

例如当我们试图同步两个time-base不匹配的Player时,就会抛出异常。

之所以是异常而不是错误,是因为我们无从检测time-base是否匹配,是无法预期的。

有时,JMF的一些方法会返回非预期的结果,通过检查返回直,我们可以检测实际发生的事情:∙我们可以通过返回直检查实际被设置的数值,例如:并不是所有的播放器都可以每周期5次的速率呈现媒体数据,如果我们调了setRate(5.0),播放器将会设置一个合法的近似直,这个数值可能是5.0也可能是1.0,我们需要检查返回数据来确认被设置的数据。

∙有时,我们请求的信息是不可用的。

例如:Player在播完一个媒体之前,可能不知道媒体的时长,这时如果我们调了getDuration(),getDuration 会返回DURATION_UNKNOWN.当媒体被播放完一次,再调getDuration时,则会返回正确的时长。

4.2程序设计图4.3设计及核心代码创建“文件”菜单●创建“打开”菜单●把JMFMediaPlayer对象注册成功为“打开”菜单项动作事件的监听器●把“打开”菜单项加入“文件”菜单●把“文件”菜单中加入一条水平分隔线●创建带检查框的“循环”菜单项●把JMFMediaPlayer对象注册成功为“循环”菜单项动作事件的监听器●把“循环”菜单项加入“文件”菜单●在“文件”菜单项中加入一条水平分隔线●按照创建“打开”菜单项的过程,创建“退出”菜单项●创建“播放”菜单●创建“上一个”菜单●创建“下一个”菜单项●创建“保存”菜单●把JMFMediaPlayer对象注册成功为“暂停”菜单项动作事件的监听器●把“暂停”菜单项加入“设置”菜单●在“设置”菜单中加入一条水平分隔线●创建“删除”菜单项●把JMFMediaPlayer对象注册成功为“删除”菜单项动作事件的监听器●创建一个菜单条(MenuBar)●把“文件”菜单加入到菜单条●把“播放控制”菜单加入到菜单条●把“播放列表”菜单加入到菜单条// 创建播放器的菜单JMenu zhu= new JMenu("设置");JMenu fileMenu = new JMenu("文件");JMenu zhu1= new JMenu("播放");JMenu zhu2= new JMenu("上一个");JMenu zhu3= new JMenu("下一个");JMenuItem openMemuItem = new JMenuItem("打开");JMenuItem haha1 = new JMenuItem("暂停");JMenuItem haha2 = new JMenuItem("删除");openMemuItem.addActionListener(this);fileMenu.add(openMemuItem);zhu.add(haha1);zhu.addSeparator();zhu.add(haha2);zhu.addSeparator();zhu.add(haha3);zhu.addSeparator();zhu.add(haha4);zhu.addSeparator();zhu.add(haha5);zhu.addSeparator();// 添加一个分割条fileMenu.addSeparator();// 创建一个复选框菜单项JCheckBoxMenuItem loopMenuItem = new JCheckBoxMenuItem("循环", false); loopMenuItem.addItemListener(this);fileMenu.add(loopMenuItem);fileMenu.addSeparator();JMenuItem exitMemuItem = new JMenuItem("退出");exitMemuItem.addActionListener(this);fileMenu.add(exitMemuItem);JMenuBar menuBar = new JMenuBar();menuBar.add(fileMenu);menuBar.add(zhu);menuBar.add(zhu1);menuBar.add(zhu2);menuBar.add(zhu3);this.setJMenuBar(menuBar);this.setSize(200, 200);try {// 设置界面的外观,为系统外观UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this);} catch (Exception e) {e.printStackTrace();}this.setVisible(true);}动作监听器动作监听器根据用户的操作作出相应的反应(1)如果动作事件起源于“退出”菜单项,触发一个给查监听器的窗口关闭事件(2)如果动作事件起源于“播放“菜单项,判断当前是否存在一个播放器,存在则将该播放器置于运动状态(3)如果动作事件起源于“暂停”菜单项,判断当前是否存在一个播放器,存在则停止该播放器的播放(4)如果动作事件起源于“下一个”菜单项,判断当前是否存在一个播放器,存在则停止该播放器的播放,并把播放指针移到下一个文件(5)如果动作事件起源于“打开”菜单,则:●创建一个“打开媒体文件“对话框●把对话框的当前目录设置为上次关闭时的目录●显示对话框。

这个对话框是一个模式对话框●如果用户没有通过对话框选择媒体文件,则返回(6)如果出现异常●显示错误信息,然后返回●把主窗口的标题设置为媒体文件的名字●把JMFMediaPlayer对象注册为来自JMF播放器对象的控制器事件的监听器●让JMF播放器对象预先提取媒体内容/*** 实现了ActionListener接口,处理组件的活动事件*/public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("退出")) {// 调用dispose以便执行windowCloseddispose();return;}FileDialog fileDialog = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);fileDialog.setDirectory(currentDirectory);fileDialog.setVisible(true);// 如果用户放弃选择文件,则返回if (fileDialog.getFile() == null){return;}currentDirectory = fileDialog.getDirectory();if (player != null){// 关闭已经存在JMF播放器对象player.close();}try {// 创建一个打开选择文件的播放器player = Manager.createPlayer(new MediaLocator("file:" + fileDialog.getDirectory() + fileDialog.getFile())); } 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;this.setTitle(fileDialog.getFile());// 播放器的控制事件处理player.addControllerListener(this);// 预读文件内容player.prefetch();}控制监听器控制监听器完成与控制相关的操作,具体包括以下几种情况(1)当控制器被关闭,如果JMF播放器的视觉部分存在,从JMFMediaPlayer容器拆除视觉部件。

相关文档
最新文档