




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
添加学校名称本科毕业论文(设计)材料册姓 名: 学 号: 年 级: 2010级2班所在 院系 名称: 数学与信息工程系专 业 名 称: 计算机科学与技术指导教师姓名: 指导教师职称: 基于android平台的在线音乐播放系统设计与实现数学与信息工程系 计算机科学与技术专业 xx级 xx指导教师:xx摘 要:手机运用越来越广泛,人们对手机软件的要求越来越高,音乐播放器就是其中一项重要软件。本文以android开发平台为基础,首先介绍了android开发平台、以及当前发展现状。然后使用java语言和开发工具eclipse对音乐播放器代码进行编写,通过设计能实现音乐的播放、暂停、上一曲、下一曲等功能。这款软件不仅可以下载网站上的音乐到本地,更主要的是它支持音乐的边下载边播放的功能。关键词:安卓;音乐播放器;开发与设计abstract:mobile phone use more and more widely,people more and more high to the requirement of mobile phone software,music player is one of the important software. this article takes the android development platform as a foundation. first it briefly introduces the android development platform,as well as the current domestic and foreign development present situation. then use the java language and eclipse development tools to write music player code,the design can realize music play, pause, a song, the next song and other functions.this software can not only download music on the website,but also support the music playing while downloading more importantly.key words:android: android; music player; the development and design目录摘要1abstract1第1章 绪论 1.1 研究背景及现状41.2 研究目的4第2章 认识android2.1 智能手机操作系统52.2 关于android52.2.1 android基本概念52.2.1 android简介52.3 android的基本特点6 2.3.1完全的开放性6 2.3.2无界限的应用程序6 2.3.3应用程序是在平等的条件下创建的6 2.3.4应用程序可以轻松地嵌入网络功能支持6 2.3.5应用程序可以并行运行6第3章 播放系统设计3.1 android mp3在线播放系统原理分析73.2平台整体架构设计73.3 设计与实现7 3.3.1 界面设计8 3.3.2 用户交互9第4章 在线播放的实现4.1获取资源文件94.2 下载音乐和播放音乐的设计与实现114.3 播放器播放流程 12第5章 系统测试15第 6章 总结16参考文献 171 绪论 1.1 研究背景及现状自1983年世界上第一款商用手机发布到现在,手机已经成为人们必不可少的通信工具。从最初没有显示屏幕到黑白显示屏,再到现在的彩色显示屏,手机显示技术已经完成3次大的飞跃。随着达到高清电视全屏显示效果的新一代显示屏出现,手机业将掀起又一轮革新风暴1。消费者对手机产品在商务和娱乐方面的要求越来越高,让手机成为便携式的商务或娱乐终端。在硬件的推动下,用户对手机软件的功能需求也越来越高。而android系统也在不断更新以满足需求,因此手机多媒体的技术的开发也就不可避免成为热点。在无线网络高速接入互联网技术迅速发展的时代,网络已经渗透到社会的各个领域,尤其是移动设备领域。通过移动设备用户可以随时随地从互联网上获取信息。随着网络技术和智能移动设备的发展,用户的需求也越来越高,要求智能移动设备提供更多更好的即时服务。当今时代手机尤其是智能机不再是单纯的通讯工具了,如今的手机更多的是作为我们的娱乐工具、生活帮手。我们需要随时用手机查看天气预报、查询路线等,也要用手机打游戏、看电影、听音乐等。1.2 研究意义在线音乐服务是手机用户最重要的娱乐需求之一。人们习惯在等车、坐车、排队等人的时候用手机来听音乐;现金社会生活紧张,而欣赏音乐史也是其中最好的舒缓压力的方式之一。这些都让音乐作为人们不可或缺的一部分,为了让人们可以随时随地享受音乐带来的美妙享受,需要开发人员设计出好用、实用的在线播放系统。随着4g 时代到来,在移动终端与网络互联来获取网络资源越来越受到人们欢迎, 对多媒体在线浏览或下载需求量也越来越大, 因此针对android 系统而开发的多媒体与网络的互联变得越来越有市场,目前android 手机在线播放功能尚未完善,为实现在线的音乐播放,提高用户体验,本文将通过缓存和流媒体播放技术,逐步完善mp3 音乐文件的边下载边播放功能。2 认识android2.1智能手机操作系统 智能手机系统是一种运算能力及功能比传统的手机系统更强大的系统。使用最多的有:android、ios、symbian、windows phone和blackberry os。智能手机能够显示与个人电脑所显示出来一致的正常网页,它具有独立的操作系统以及良好的用户界面,拥有很强大的应用扩展性、能方便随意地安装和删除应用程序2。2.2 关于android 2.2.1 android基本概念 android 一次本意是指“机器人”,当然现在大家都知道它是google推出的开源手机操作系统。android基于linux平台,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它是由一个30多家科技公司和手机公司组成的“开放手机联盟”共同研发的,这将大大降低新型手机设备的研发成本。完全整合的全移动功能性产品成为“开放手机联盟”的最终目标3。2.2.2 android简介android已经从最初的智能电话领域主机进入教育、医疗、军事、汽车、家居等重要领域。它一路披荆斩棘,攻城拔寨,发展势头有目共睹,已经成为移动平台领域当之无愧的王者。目前,已有众多设备开始使用android系统,比如智能手机、智能电视、平板电脑、智能相机等;相信在不就的未来,还将有更多采用android系统的高科技术产品进入我们的生活4。android作为google移动互联网战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。google的目标是让移动通信不依赖于设备,甚至是平台。出于这个目的,android将完善而不是替代google长期以来推行的移动发展战略:通过与全球各地的手机制造商和移动运营商成为合作伙伴,开发既实用又有吸引力的移动服务,并推广这些产品。android平台的研发队伍阵容强大,包括google、htc、t-mobile、高通、摩托罗拉、三星、lg以及中国移动在内的30多家企业都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。“开放手机联盟”表示,android平台可以促使移动设备的创新,让用户体验到优质的移动服务。同时,开发商也将得到一个新的开放级别,更方便地精心协同合作,从而保障新型移动设备的研发速度。因此android是第一个完整、开放、免费的手机平台4。2.3 android 的特点52.3.1完全的开放性 google与开放手机联盟合作开发了android,google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。2.3.2 无界限的应用程序 android上的应用程序可以通过标准api访问核心移动设备功能。应用程序可以访问设备上的核心数据,如联系人信息,短消息;使用设备的任何硬件资源,如摄像头、gps等。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。2.3.3 应用程序是在平等的条件下创建的 移动设备上的核心应用程序可以被替换或扩展,即使是拨号程序或主屏这样的核心组件也一样。2.3.4 应用程序可以轻松地嵌入网络功能支持 android天生就是为访问互联网而生的,它内置了强大的web浏览器引擎,支持html5标准,因此应用程序可以轻松地嵌入html、javascript和样式表,还可以通过webview显示网络内容等。2.3.5 应用程序可以并行运行 从1.0版本起,android就支持多任务特性,是一种完整的多任务环境,可以像windows桌面应用系统一样,允许多个应用程序并行运行。而ios直到4.2版本才解决此问题。3 播放系统设计 3.1 android mp3在线播放系统原理分析在线播放器并不是基于web 页面的播放,而是通过应用程序对音乐网站上的mp3 资源文件进行解析,同时将解析出来的信息显示到音乐盒界面,包括音乐文件名、音乐文件大小、歌词文件名等,这些资源文件构成了在线播放的原始数据,通过这些数据读取音乐文件并且下载到缓冲区或sd 卡,然后利用android 提供的应用于多媒体操作的类mediaplayer 对mp3 文件进行播放,而所谓的边下载边播放,从本质上也是对文件下载之后再在播放,只是将下载和播放两个功能分别定义在两个线程中,使得二者可以异步进行,这里面涉及到了线程通信,即播放当前文件的时间如果小于源文件的当前播放位置时,就把播放停止,等待下载一段时间,当下载的文件可以支持播放后在继续播放6。3.2 平台整体架构设计android 平台的在线播放器整体架构设计如图3-1 所示,首先搭建一个mp3 网站,将mp3 基本信息定义在服务端,android 客户端定义一些接口用来与服务器通信,主要使用http 协议读取网站内容,同时将网站的资源信息进行解析或下载,得到具体的mp3 文件信息到本地7。图3-1 音乐盒与网站通信3.3 ui设计与实现3.3.1 界面设计首先,播放系统是用linerlayout作为一个大框架进行总体布局。接着考虑要用的组件依次往框架里添加。如button、textview等12。关键代码如下:. .随后调整组件的位置,组件于组件之间的距离等。最后需要设计好的音乐播放器面展示在界面上需要用到activity的oncreate方法13。重要代码如下:super.oncreate(savedinstancestate);setcontentview(r.layout.lw);设计好的播放系统如图3-2所示。图3-2 音乐播放系统3.3.2用户交互 要实现用户界面交互就要使用activity和intent。activity是应用程序的界面框架,负责动态加载各种用户界面视图,实现底层的消息传递等。在avd中一个手机的界面就是一个activity,在众多activity中,配置了的activity最先运行。创建activity要注意的是一个activity就是一个类,并且要继承android平台提供的activity。需要复写oncreate()方法。并且每一个activity都需要在android.mainfest.xml文件中进行配置。activity之间是通过intent来进行页面跳转的。intent在两个activity之间传送数据,这两个activity并不要求在通一个应用程序下,在不同应用程序中也可以。activity之间是通过intent来进行页面跳转的14。这两个activity并不要求在同一个应用程序下,在不同的应用程序中也是可以的。4 在线播放的实现4.1 获取资源文件与服务器进行通信首先在androidmanifest.xml 设置访问权限:服务器端定义一个resourse.xml 的文件,将mp3 信息写入文件供客户端读取解析。读取资源文件之前首先要下载文件,下载文件的过程通常使用传统的下载文件过程进行下载,将得到的资源文件保存在一个字符串数组中,部分代码如下: /创建一个url对象 url=new url(urlstr); /创建一个http对象 httpurlconenction urlconn=(httpurlconnection)url.openconnection(); /使用io流读数据buffer=new bufferedreader(new inputstreamreader(urlconn.getinputstream();while(line = buffer.readline()! =null)sb.append(line);将得到的字符串sb 传入到自定义的handler 中,解析内部信息,如文件名、文件大小等,并将信息存入到实体类mp3info 的对象集合中。解析资源文件用到android 类saxparserfactory,将自定义的contenthandler 信息传入到该类的实例,最终将解析结果返回给一个mp3info 集合15,解析器部分代码如下:/创建一个saxparserfactorysaxparserfactory saxparserfactory=saxparserfactory.newinstance();list infos = new arraylist();xmlreader xmlreader = saxparserfactory.newsaxparser().getxmlreader();mp3listcontenthandler mp3listcontenthandler = new mp3listcontenthandler(infos);/为xmlreader 设置内容处理器xmlreader.setcontenthandler(mp3listcontenthandler);/开始解析文件xmlreader.parse(new inputsource(new stringreader (xmlstr);sax 工作原理9:对文档进行顺序扫描,当扫描到文档开始与结束、元素开始与结束,产生事件通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。将文件解析成功后将信息定义在一个adapter 中,并显示在android 客户端。4.2 下载音乐和播放音乐的设计与实现下载和播放过程状态图如图4-1所示。图4-1 音乐播放下载异步示意图程序的工作原理是通过runnable所发起的运行线程,利用运行线程的特性,在线下载远程网站的mp3文件,通过网络传输(urlconnection)的方式进行下载。与在存储上有些差别,这是将下载的文件存储到缓冲区或者sd 卡中,这样当播放文件的时候,可以直接在缓冲区或者sd 卡中选择源文件进行播放10,下载文件的过程关键代码如下:downloadingmediafile = new file (downloadcachedir,downloading-media_ + (counter+) + .dat);/在缓冲区定义一个类型为.dat 的文件,用于存储下载的数据fileoutputstream out = new fileoutputstream(downloadingmediafile);.byte buf = new byte16384;int numread = mediacnstream.read(buf); / mediacnstream 即来自服务端的输入流out.write(buf, 0, numread);/将输入流数据写入缓冲区里的固定文件上述下载过程应定义在一个单独的线程中,以实现以播放的异步,关键代码如下:runnable r = new runnable() public void run() downloadstream(mediaurl,lrcurl);/调用下载文件函数 ;new thread(r).start();4.3 播放器播放流程 播放器的播放涉及到与服务器通信,下载文件、存储文件、播放文件等独立功能,同时也对下载和播放两个功能进行连带设计和实现。如流程图4-2。图 4-2 播放器详细流程图播放文件的关键代码如下:file bufferedfile = new file(downloadcachedir,playingmedia + (counter+) + .dat);/缓冲区定义一个.dat 文件,用于将下载的文件复制到该文件中filesystemutil.copyfile(downloadingmediafile,bufferedfile);/主要用于将下载的文件downloadingmediafile 复制到bufferedfile 中,为播放提供源文件mediaplayer mplayer = new mediaplayer();fileinputstream fis = new fileinputstream(bufferedfile);mplayer.setdatasource(fis.getfd();/此方法返回与流相关联的文件说明符。mplayer.setaudiostreamtype(audiomanager.stream_music);/ 设置播放类型为播放流文件runnable updater = new runnable() public void run() mediaplayer.start();handler.post(updater);播放文件被定义在一个线程中,该线程运行在主线程队列,当播放文件时间与播放位置差距小于一定值时,如下:mediaplayer.getduration() - mediaplayer.getcurrentposition() = 2000即暂停播放,等待将下载的文件覆盖播放文件后,继续执行播放,这样就基本实现了播放与下载的异步与通信,关键代码如下:pause();/执行暂停播放filesystemutil.copyfile(downloadingmediafile,bufferedfile);/ 等待将下载的文件覆盖播放文件mediaplayer = mediaplayerservice.createmediaplayer(bufferedfile);/重新创建播放文件if(mediaplayer.getduration() - mediaplayer.getcurrentposition() = 2000) start(mp3info);/重新执行播放5 系统测试 首先打开eclipse软件,然后开启虚拟机。可以通过多种方法来运行编写的程序16。如其中一个方法是解锁虚拟机后,在虚拟机桌面上上找到编写的程序的图标,然后点击程序图标运行。还可以用选中列表中所编写函数mainactivity.java,点击运行按钮运行的方法。出现如图5-1所示界面后选择android application,最后点击ok键,程序就开始运行。虚拟机界面所显示效果图如5-2所示。5-1 对话框图5-2 播放效果6 总结 在android
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年贵州省安全员考试题库
- 2025年吉林省安全员B证考试题库
- 重庆工商大学派斯学院《酒店营销》2023-2024学年第二学期期末试卷
- 青岛港湾职业技术学院《口腔设备学》2023-2024学年第二学期期末试卷
- 武汉东湖学院《社会哲学》2023-2024学年第二学期期末试卷
- 2025年海南省建筑安全员-C证考试(专职安全员)题库附答案
- 南京信息工程大学《少儿体操与健美操》2023-2024学年第二学期期末试卷
- 南京审计大学金审学院《生物合成实验》2023-2024学年第二学期期末试卷
- 广东青年职业学院《建筑法规1》2023-2024学年第二学期期末试卷
- 武汉生物工程学院《妇女健康与康复》2023-2024学年第二学期期末试卷
- 加德纳多元智能测评量表【复制】
- (完整)PEP人教版小学生英语单词四年级上册卡片(可直接打印)
- 面神经疾病课件
- 基本公共卫生服务项目绩效考核的课件
- 三年级下册小学科学活动手册答案
- 国家电网有限公司十八项电网重大反事故措施(修订版)
- 班、团、队一体化建设实施方案
- 最全的人教初中数学常用概念、公式和定理
- 桥面结构现浇部分施工方案
- 开网店全部流程PPT课件
- 人教部编版四年级语文下册《第1课 古诗词三首》教学课件PPT小学优秀公开课
评论
0/150
提交评论