资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
毕业设计论文毕业设计论文课程名称:面向对象课程设计 题 目:Android 手机音乐播放器程序设计任务书设计题目: 手机音乐播放器设计目的本课程的设计的目的是通过实践使同学们经历 android 开发全过程和受到一次综合训 练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的开发案例,理解并初 步掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)主要任务: 1 完成主界面设计 2 选择要播放的文件,构成播放列表 3 实现播放、暂停、结束功能 4 实现音量调节和循环播放选择功能 5 实现后台运行设计报告撰写格式要求:设计报告撰写格式要求:大标题:黑体黑体 三号字三号字 加粗加粗小标题:宋体宋体 四号字四号字 加粗加粗正文: 宋体 五号字时间安排:16 周-19 周消化资料、系统调查 1 天 系统分析 1 天 总体设计 2 天 实施计划(编写代码) 3 天 撰写报告 1 天 演示、验收 1 天具体要求1、明确课程设计的目的和重要性,认真领会课程设计的题目,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。 2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同 者一律以抄袭论处。设计报告正文字数不少于 0.2 万字(不包括附录)指 导 教 师 签 字: 年 月 日系 主 任 签 字: 年 月 日1、播放器的主要功能播放器的主要功能1、自动查找 sd 卡中的音乐播放文件,生成播放列表。2、具有播放,暂停,下一曲,上一曲,循环播放的功能。3、打接电话时音乐停止,挂掉电话后重新回到播放界面继续播放音乐。4、可以进行后台播放功能。5、若新增 MP3 格式的音乐文件可以自动将该音乐文件添加到播放列表。2、使用到的相关知识使用到的相关知识Android 各种页面布局,Android 中的 MediaPlayer 媒体创建,Android 中 service 后台控制播放方法,Intent 意图进行 Activity 之间进行多页面跳转, Button 按钮事件监听控制,3、实现该音乐播放器的整体思路实现该音乐播放器的整体思路要实现这个音乐播放器。 首先应该考虑到的就是他的功能,要有后台播放功能以及显示正在播放的 文件和把手机中的音乐文件以列表的形式显示在手机上,这就要使用到 listview 类。 另外在本地歌曲列表和正在播放的歌曲之间要进行动态菜单的跳转故而想 到用 tabhost 这个容器进行布局。 后台播放创建一个类继承 service 方法,在该类中使其具有播放暂停下一首 上一首的功能的方法,从而是它在各个 Activity 之间进行跳转的时候为其他的 类提供相应的方法。 创建一个新建文件类和过滤文件信息的类,用以存贮特定的文件信息和当 用户改变文件夹终不改的内容的时候同步更新播放列表。 于接打电话这个问题,创建一个类进行监听,当电话进来或出去的时候调 用 service 方法停止音乐播放并记下播放点。4、在实现过程遇到的相关问题以及解决的办法在实现过程遇到的相关问题以及解决的办法对于刚接触 Android 开发的我们,在很多的知识点上还是不是很理解,鉴 于此在制作的过程难免会遇到各种问题,解决的办法就是通过百度,goolge 各 种搜索引擎。 1、首先在开始动手构思音乐播放器界面的时候就遇到了难题,要实现动态 菜单(本地音乐、正在播放的歌曲); 2、如何实现后台播放; 3、如何进行多页面之间的跳转; 4、如何进行电话监听; 5、如何将 sd 卡中的 MP3 音乐文件过滤读取到播放列表中; 6、如何自动添加更新播放列表;7、对于 listview 中点击 Item 时触发相应的播放事件;5、得到得到 MP3 界面图展示界面图展示: 六、具体实现步骤六、具体实现步骤1、创建 main.xml 布局文件。通过 tabhost 进行布局显示本地播放和正在播 放。 实现的主要代码及步骤效果图:(1)main.xml正在播放时候正在播放时候的界的界面本地歌曲列表本地歌曲列表(2)创建TabViewActivity类继承TabActivity类向tabhost容器中加入动态 menu以及创建一个music类进行sd卡的音乐文件的存取和读取,创建utilFile 进行文件的创建和判断。在SD卡创建存放MP3的目录代码片段: public void createDirInSDCard() throws IOException if(new File(FileUtils.MUSIC).exists() = false) File file = new File(MUSIC); file.mkdir(); 在SD卡上创建文件代码片段: public File creatFile(String fileName) throws IOException File file = new File(MUSIC+fileName); file.createNewFile(); return file; /* 判断文件是否存在*/ public boolean isFileExist(String fileName) File file = new File(MUSIC + fileName); return file.exists(); 向tabhost容器中加入动态菜单项的代码片段: public void initializePlayer() / 因为继承了TabActivity,所以可以用getTabHost()获取TabHost, tabHost = this.getTabHost(); / 设置Intent指向的类 intent = new Intent(this, LocalListActivity.class); / 创建一个tabSpec,并设置它的标签和要跳转到的IntenttabSpec = tabHost.newTabSpec(“local“).setIndicator(“本地歌曲“) .setContent(intent);/ 将tabSpec添加到tabHost(这样就把一个分页的标签添加进去了) tabHost.addTab(tabSpec);/添加第二个标签 intent = new Intent(this, PlayingMusicActivity.class); tabSpec = tabHost.newTabSpec(“playingMusic“).setIndicator(“歌曲播放“) .setContent(intent); tabHost.addTab(tabSpec);(3)创建Mp3Info类,定义初始话音乐信息 private static final long serialVersionUID = 1L; private String id ; private String mp3Name; private String author; private String lrcName ; private String lrcSize ;public Mp3Info() public Mp3Info(String id, String mp3Name, String author, String lrcName, String lrcSize) super(); this.id = id; this.mp3Name = mp3Name; this.author = author; this.lrcName = lrcName; this.lrcSize = lrcSize; public String toString() return “Mp3Info author=“ + author + “, id=“ + id + “, lrcName=“ + lrcName + “, lrcSize=“ + lrcSize + “, mp3Name=“ + mp3Name+ “; public String getId() return id; public void setId(String id) this.id = id; public String getMp3Name() return mp3Name; public void setMp3Name(String mp3Name) this.mp3Name = mp3Name; public String getAuthor() return author; public void setAuthor(String author) this.author = author; public String getLrcName() return lrcName; public void setLrcName(String lrcName) this.lrcName = lrcName; public String getLrcSize() return lrcSize; public void setLrcSize(String lrcSize) this.lrcSize = lrcSize; 2、创建playmusic.xml布局文件用以显示播放下一首上一首控制按钮和显示 正在播放的音乐文件的名字具体代码片段:3、创建一个playmusicService类行进后台控制音乐播放功能为Playmusic类用 以控制音乐播放功能的方法。 Service代码片段: public class PlayMusicService extends Service private static MediaPlayer mediaPlayer;private static final String MUSIC_PATH = “/sdcard/Music/“;/ 歌曲是否正在播放 public static boolean isPlaying = false;/ 当前播放的歌曲 public static int CURRENT_SONG = 0;/ 声明一个Bundle对象,用来放置接收到的Bundle对象 Bundle bundle = null;Override public IBinder onBind(Intent arg0) / TODO Auto-generated method stub return null; Override public void onCreate() / TODO Auto-generated method stub super.onCreate(); / 生成MediaPlayer对象 mediaPlayer = new MediaPlayer(); Override public void onStart(Intent intent, int startId) / TODO Auto-generated method stub super.onStart(intent, startId);/ 从接收到的Bundle对象中获取当前播放歌曲的位置 bund
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号