安卓音乐播放器课程设计报告
㈠ android音乐播放器的测试怎么写
软件工程数据库课程设计——测试报告 1 引言 1.1 编写目的 编写该测试报告主要由以下几个目的 1.通过对测试结果的分析,得到对软件质量的评价 2.分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考 3.评估测试执行和测试计划是否符合 4.分析系统存在的缺陷,为修复和预防 bug 提供建议 1.2 背景说明 说明: 1. 被测试软件系统的名称:android 音乐播放器 2. 该软件的任务提出者:android 老师。 1.3 定义 严重 bug:出现以下缺陷,测试定义为严重 bug 系统无响应,处于死机状态,需要其他人工修复系统才可复原。 点击某个按钮后出现“ Unexpect error,the application has been stopped”或 者返回异常错误。 进行某个操作后,出现“ Unexpect error,the application has been stopped” 或者返回异常错误。 当切换音乐时,出现” Unexpect error,the application has been stopped”或 者返回异常错误。 1.4 参考资料 列出要用到的参考资料,如: 1. 2. 《android 需求和实际和说明书》 《android 项目数据字典》 第1页 软件工程数据库课程设计——测试报告 3. 《android 后台管理系统测试计划》 4. 《android 项目计划》 5. 《android 程序设计基础》 2 测试概要 Android 音乐播放器系统测试从 2014 年 5 月 25 日开始到 2014 年 6 月 1 日结束, 共持续 6 天,测试功能点 6 个,执行 10 个测试用例,平均每个功能点执行测试用例 2 个,测试共发现 5 个 bug,其中严重级别的 1 个,无效 1 个,平均每个测试功能点 1 个 bug。 3 测试结果及发现 3.1 测试 1(功能键测试) 在本次测试中对各个功能键进行了相关的测试,并把各个功能键该有的功能给体现出来。 最后的测试结果是,各个功能键基本符合预想的要求,但是在测试中间,不时会出现一些系 统错误。 3.2 测试 2(音乐清单测试) 在对音乐清单模块进行测试时,先了解音乐清单的具体功能的体现与要求。音乐清单模 块具备自动扫描功能,自动更新,删除重复,删除错误功能。测试过程比较繁琐,不停更换 音乐,增加重复音乐,增加错误来对该项进行测试。对音乐清单界面转变,字体等还需改进。 4 对软件功能的结论 4.1 功能 1(功能键) 名称:播放 参与者:用户 目标:用户点击播放音乐列表中的歌曲 前置条件:播放器正在运行 基本事件:1.用户单击列表中歌曲 2.播放器将播放列表中的点击 的歌曲 名称:暂停 参与者:用户 目标:使得用户可以暂停正在播放的歌曲 第2页 软件工程数据库课程设计——测试报告 前置条件:歌曲正在播放且未停止和暂停 基本事件:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲 名称:上一首/下一首 参与者:用户 目标:使得用户可以点播上一首或下一首音乐 前置条件:歌曲正在播放或歌曲暂停中 基本事件:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首歌曲或下一首歌曲 4.1.1 能力 本部分是对播放音乐时的一些简单的操作,如播放,暂停,切歌。为满足这部分功能, 进行不断的测试已将可以预料到的错误,进行了修改,大体上不会再出现此类错误。 4.2 功能 2(音乐清单) 名称:音乐列表 参与者:用户 目标:使得用户可以进入音乐列表 前置条件:程序在运行 基本事件:1.用户单击“音乐”分区 2.播放器进入音乐列表 4.2.1 能力 本部分是对音乐列表的功能的测试,此项目的音乐列表的基本功能可以实现。对于一些 界面方面的操作,在测试中始终出现错误,排除不了。相对来说测试是成功的,界面上的操 作与音乐播放器的主要功能没有影响,所以可以删除此部分。 5 分析摘要 5.1 能力 Android 音乐播放器的测试今本上是成功的。对于一些基本功能,都能够实现。本软件的 可移植性还是比较强的,只要是 android 手机都可以安装本软件,并且不会出现系统不兼容 第3页 软件工程数据库课程设计——测试报告 的问题。最终的测试结果,也暴露了一些问题,与要求的差一些。就是在音乐清单部分,对 于字体的修改以及界面的转换方面没有完全实现。本软件本就是 android 软件,在测试环境 与运行环境上不存在差异,这完全是因为 android 太强大了。 5.2 缺陷和限制 1. 缺陷描述:音乐清单有乱码,音乐无名称,查看不方便 缺陷影响:其他音乐都有名称,音乐无名称,查看不方便 推迟原因:目前的日志 为了调试方便,显示了很多其它信息,在项目正式发布时会统一处理的。 2. 缺陷描述:数据字典种类修改,默认值设置后,在调用该数据字典种类的数据字典, 默 认值无显示 缺陷影响:数据字典种类的默认值设置后,不能显示设置的默认值,相当于数据字 典种类默认值设置功能未实现 推迟原因:该功能暂时不好实现,需要和和系统的默认语种一起处理。 3. 缺陷描述:多媒体添加,文件上传功能未实现 缺陷影响:文件上传功能未实现 推迟原因:该功能暂时不好完成,在下个版本中完成 5.3 建议 在项目开始的时候应该制定编码标准,数据库标准,需求变更标准,开发和测 试人员都 严格按照标准进行,可以在后期减少因为开发,测试不一致而导致的问题,同时也可以降低 沟通成本。 发布版本的时候,正确布置测试环境,减少因为测试环境,测试数据库数据的 问题而出 现的无效 bug。 开发人员解决 bug 的时候,填写 bug 原因以及解决方式,方便 bug 的跟踪。 开发人员在开发版本上发现 bug,可以通知测试人员,因为开发人员发现的 bug 很有可 能在测试版本上出现,而测试人员和开发人员的思路不同,有可能测试人员没有发现该 bug, 而且,这样可以保证发现的 bug 都能够被跟踪。 。 5.4 评价 本软件经测试,可以在任何 android 设备上运行,安全性得到了保证,可以交付使用。 第4页
㈡ 安卓音乐播放器主页面和播放列表设计流程怎简单介绍一下
首先你要 确定手机里装有音乐播放器 是在手机内存不是在存储卡 然后在桌面长按之后会弹出一个框子就选小工具再选你要添加的播放器
㈢ 安卓一个音乐播放器的框架应该怎么设计
JAVA的播放器源代码 import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MediaPlayer extends JFrame implements ActionListener, ItemListener, ControllerListener { String title; Player player; boolean first = true, loop = false; Component vc, cc; String currentDirectory=null; // 构造函数,其中包括了设置响应窗口事件的监听器。 MediaPlayer(String title) { super(title); /* 关闭按钮的实现。。 */ addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } public void windowClosed(WindowEvent e) { if (player != null) player.close(); System.exit(0); } }); // 调用程序菜单栏的方法成员完成菜单的布置 setupMenu(); setSize(400, 400); setVisible(true); } // 本方法用以设置程序菜单栏 public void setupMenu() { // 设置一个菜单 Menu f = new Menu("文件"); // 往设置的菜单添加菜单项 MenuItem mi = new MenuItem("打开"); f.add(mi); mi.addActionListener(this); f.addSeparator(); CheckboxMenuItem cbmi = new CheckboxMenuItem("循环", false); cbmi.addActionListener(this); f.add(cbmi); f.addSeparator(); MenuItem ee = new MenuItem("退出"); ee.addActionListener(this); f.add(ee); f.addSeparator(); 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?; mb.add(l); // 将构造完成的菜单栏交给当前程序的窗口; setMenuBar(mb); } // 动作时间响应成员;捕捉发送到本对象的各种事件; public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String cufile, selectfile, currentDirectory; 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); 2008-2-6 02:46 回复 肆方茉莉 62位粉丝 6楼 fd.setVisible(true); // 如果用户放弃选择文件,则返回 if (fd.getFile() == null) { return; } // 保存了所选文件的名称及其路径名称已被稍后使用 // 同时设置当前文件夹路径 selectfile = fd.getFile(); currentDirectory = fd.getDirectory(); cufile = currentDirectory + selectfile; // 将用户选择的文件作为一个菜单项加入播放列表,该菜单项名为该文件名; // 被点击后给出的命令串是该文件的全路径名 MenuItem mi = new MenuItem(selectfile); mi.setActionCommand(cufile); MenuBar mb = getMenuBar(); Menu m = mb.getMenu(2); mi.addActionListener(this); m.add(mi); } else { // 程序逻辑运行到次表示用户选择了一个“播放列表”中的媒体文件 // 此时可以通过如下动作获得该文件的全路径名 cufile = e.getActionCommand(); selectfile = cufile; } // 如果存在一个播放器,则先将其关闭,稍后再重新创建 // 创建播放器时需要捕捉一些异常 if (player != null) { player.close(); } try { player = Manager.createPlayer(new MediaLocator("file:" + cufile)); } catch (Exception e2) { System.out.println(e2); return; }/* * catch(NoPlayerException e2){ System.out.println("不能找到播放器"); * return ; } */ if (player == null) { System.out.println("无法创建播放器"); return; } first = false; setTitle(selectfile); // 设置处理播放控制器实际的对象; /**/ player.addControllerListener(this); player.prefetch(); } // 菜单状态改变事件的响应函数; public void itemStateChanged(ItemEvent arg0) { // TODO Auto-generated method stub } public static void main(String[] args) { // TODO Auto-generated method stub new MediaPlayer("播放器"); } // 调用绘图函数进行界面的绘制 // public void update() { // } // 绘图函数成员 //public void paint(Graphics g) { // } public void controllerUpdate(ControllerEvent e) { // TODO Auto-generated method stub Container tainer = getContentPane(); // 调用player.close()时ControllerClosedEvent事件出现 // 如果存在视觉部件,则该部件应该拆除(为了一致起见,我们对控制面版部件也执行同样的操作,下一次需要时再构造) if (e instanceof ControllerClosedEvent) { if (vc != null) { remove(vc); vc = null; } if (cc != null) { remove(cc); cc = null; } } // 播放结束时,将播放指针置于文件之首,如果设定了循环播放,则再次启动播放器; if (e instanceof EndOfMediaEvent) { player.setMediaTime(new Time(0)); if (loop) { player.start(); } return; } // PrefetchCompletEvent事件发生后调用start,正式启动播放 if (e instanceof PrefetchCompleteEvent) { player.start(); return; } // 本事件表示由于播放的资源已经确定;此时要将媒体的图形conmopnent // 如果有显示出来,同时将播放器player的控制显示到窗口里; if (e instanceof RealizeCompleteEvent) { // 如果媒体中有图像,将对应图像component载入窗体; vc = player.getVisualComponent(); if (vc != null) tainer.add(vc, BorderLayout.CENTER); // 将对应控制器component载入窗体; cc = player.getControlPanelComponent(); cc.setBackground(Color.blue); if (cc != null) tainer.add(cc, BorderLayout.SOUTH); // 有一些特殊媒体在播放时提供另外的控制手段,将控制器一并加入窗口; /* * gc=player.getGainControl(); gcc=gc.getControlComponent(); * if(gcc!=null) tainer.add(gcc,BorderLayout.NORTH); */ // 根据媒体文件中是否有图像,设定相应的窗口大小 if (vc != null) { pack(); return; } else { setSize(300, 75); setVisible(true); return; } } } }
㈣ 求安卓课程设计音乐播放器代码及其讲解
你好,朋友。 你在网络里面搜索“安卓巴士”,里面有大量Android应用的源码!不过没有ppt。 里面也有你想要的平台音乐播放器源码。 希望能帮上楼主,望采纳!
㈤ 基于安卓的音乐播放器论文中用到了哪些数据结构
把毕业论文分为专题型、论辩型、综述型和综合型四大类:
1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。
2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。如《家庭联产承包责任制改变了农村集体所有制性质吗?》一文,是针对“家庭联产承包责任制改变了农村集体所有制性质”的观点,进行了有理有据的驳斥和分析,以论辩的形式阐发了“家庭联产承包责任制并没有改变农村集体所有制”的观点。另外,针对几种不同意见或社会普遍流行的错误看法,以正面理由加以辩驳的论文,也属于论辩型论文。
3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。
4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。