基于android的音乐播放器的研发与实现

上传人:1666****666 文档编号:39234142 上传时间:2021-11-10 格式:DOC 页数:45 大小:621.50KB
返回 下载 相关 举报
基于android的音乐播放器的研发与实现_第1页
第1页 / 共45页
基于android的音乐播放器的研发与实现_第2页
第2页 / 共45页
基于android的音乐播放器的研发与实现_第3页
第3页 / 共45页
点击查看更多>>
资源描述
The Development and Application of Music Player Based on AndroidABSTRACTThe 21st century the fast development of information age, we phone from original can only call to today's wireless Internet and video calls, people of cell phone requirements are increasingly high, because the mobile phone market development is rapid, make mobile operating system also appeared different kinds, present market has three main mobile operating system, Windows, and mobile, Google the Android symbian OS, which occupies open source advantage of the Android system has the largest development prospects, the main reason is the Android system strong adaptability, even in the hardware configuration is not high, under the situation of Android system still keeps excellent fluency. According to relevant investigation, at present domestic many well-known brand also began favours the Android. For example MeiZu cell phone future will use Android system, at present it is domestic most M8 fire smartphone one of Microsoft Windows CE, use the kernel's mMobile operating system, with higher customization sex MeiZu of their own design touch UI and machine similar the iPhone fashionable appearance occupied many markets, recently MeiZu CEO HuangZhang in BBS in utterance: final hope that through myMobile way guide Windows CE and Android double system in boot, user can choose oneself default enter operating system. Android claims to be the first to build the real mobile terminal open and integrity mobile software, we design the music player is verified by the learning and before team effort, developed a simple music player, thus deeply understand the powerful features of the Android。KEY WORDS: music player , Android 基于Android的音乐播放器的研发与实现摘 要21世纪信息时代的飞快发展,我们的手机从最初的只能接打电话到现在的无线上网以及视频通话,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景,主要原因在于Android系统强大的适应性,即便是在硬件配置不高的情况下,Android系统依然保持着出色的流畅性。据相关调查,目前国内的很多知名品牌也开始钟情于Android。例如魅族手机未来将会使用Android系统,目前M8可谓是国产最火的智能手机之一,使用了微软Windows CE内核的mMobile操作系统,凭借更高的定制性魅族自己设计的触摸UI以及整机类似iPhone的时尚外观占领了不少市场,近日魅族CEO黄章在论坛上发话:最终希望通过myMobile方式引导Windows CE和Android双系统,在开机时用户可以选择自己默认进入的操作系统。Android 号称是首个为移动终端打造的真正开放和完整的移动软件,我们设计音乐播放器目的在于通过之前的学习以及团队的共同努力,开发出一个简单的音乐播放器,从而深刻体会Android的强大功能。关键词:音乐播放器,Android,手机目 录1项目开发前景11.1 Android的市场前景及未来发展:11.2 基于android音乐播放器的开发与研制所用技术21.3 可行性研究21.3.1 经济可行性31.3.2 操作可行性31.4 相关技术介绍31.4.1 关于Android的介绍31.4.2 Java介绍41.4.3 Eclipse的相关介绍42 需求分析62.1 客户需求62.1.1 客户对音乐播放器的功能要求图62.2 客户需求的具体实现图73 总体设计思路93.1 环境配置93.1.1 JDK Eclipse Android SDK的安装93.1.2 创建Android虚拟设备(AVD)93.2 UI界面美化103.3 音乐播放器功能键的实现113.3.1 上一曲与下一曲键113.3.2 开始与停止键113.3.3 暂停与继续键113.4从SD 卡读取音乐134 基于Android的音乐播放器的详细设计及测试144.1 创建项目144.2 设计界面154.2.1 准备图片154.2.2 准备字符串资源154.2.3 设计程序的窗口布局164.3 编写Java代码184.4 运行、调试程序204.5 打包发布程序22致 谢24参考文献25附 录261 song_item.xml的代码262 songlist.xml的代码263 MusicPlayer.java的代码27毕业设计说明书(论文)缩写稿34The Abbreviation Version of the Thesis of Undergraduates381项目开发背景1.1 Android的市场前景及未来发展:21世纪信息时代的飞快发展,我们的手机从最初的只能接打电话到现在的无线上网以及视频通话,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景,主要原因在于Android系统强大的适应性,即便是在硬件配置不高的情况下,Android系统依然保持着出色的流畅性,而且Android软件商店中数万个免费的应用程序也足可以满足人们的日常需求。从国际电信运营商T-Mobile发布首款Android手机至今,短短2年的时间,Android手机的发展之路虽不平坦,但随着移动互联网的快速发展壮大,依托3G甚至是4G的信息高速路,Android手机操作系统越来越有着互联网特质,Android的吸引力在于,它对存储器、记忆工作和图形处理没有大量要求。但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。据相关调查,目前国内的很多知名品牌也开始钟情于Android。例如魅族手机未来将会使用Android系统,目前M8可谓是国产最火的智能手机之一,使用了微软Windows CE内核的mMobile操作系统,凭借更高的定制性魅族自己设计的触摸UI以及整机类似iPhone的时尚外观占领了不少市场,近日魅族CEO黄章在论坛上发话:最终希望通过myMobile方式引导Windows CE和Android双系统,在开机时用户可以选择自己默认进入的操作系统。又如华为的U8230,在外观上有别于其他Android手机的塑料风格,通体的银灰色和正面功能键盘的发丝纹路都洋溢着商务机型的味道。而作为功能上的特色,U8230拥有一块3.5英寸的大屏幕、高达1500毫安时的锂电池和一枚320万象素摄像头采用Android平台1.5版本。预计将于下半年正式发售。随着手机技术的飞速发展,如今的手机已能满足人们日常的很多需要,早已不再是为了打个电话或发个短信。上网,拍照,看电影,听音乐,玩游戏等这些自然都不在话下。手机的影音功能让我们丢掉了传统的MP3,MP4,这自然是因为手机的多媒体功能并不比它们差。现在走在路上,坐在公交地铁中,随处可见使用手机欣赏音乐的,足以可见手机听音乐是大部分用户所需要的。听音乐自然离不开一款好的音乐播放器,简易的操作,完善的功能,会让你的音乐体验更棒。在目前最火的android手机上,数以万计的应用中找到好用的音乐播放器并不容易。本次我们的设计项目是基于Android的音乐播放器,目前手机音乐播放器的种类多式多,其功能也是不尽相同。目前比较流行的播放器有QQ音乐播放器和酷狗播放器。Android 号称是首个为移动终端打造的真正开放和完整的移动软件,我们设计音乐播放器目的在于通过之前的学习以及团队的共同努力,开发出一个简单的音乐播放器,从而深刻体会Android的强大功能。Android版本的音乐播放器:包括播放列表,上一曲下一曲功能键,播放停止和界面风格。1.2 基于android音乐播放器的开发与研制所用技术 Android系统是由Google在2007年发布的一个开源平台,包括操作系统、中间件,以及一些关键应用。由于Android系统有开源、免费、易于移植的特点,以及Google等厂商的大力支持,Android在短短几年时间内得到了飞速发展。2008年HTC推出第一款Android系统机型Dream G1之后,各厂商都纷纷跟进,推广速度十分喜人。另外还有一些厂家利用Android易于移植的特性,开发了或正在开发基于Android系统的电子书阅读器、平板电脑、MP4、MID等智能终端。可以预见,Android的应用范围将越来越广,学习Android的开发也一定会有越来越大的用武之地。通过研究媒体播放器,来了解Android的功能,以及设计的思路通过软件知识来了解硬件,通过音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,从而很好的学习了硬件的控制功能,对于我们学习电气控制有着很重要的作用。音乐播放器基于谷歌Android手机平台的播放器。Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的,通过它来学习,从而很好的学习嵌入式的控制系统,从而更多的了解该软件。 在该课程设计中,我通过学习Android,开发了一个简易的音乐播放器,实现了最基本的功能。通过这一实例,我们也能从中一窥Android应用的开发流程。1.3 可行性研究随着计算机科学技术日渐成熟,它在人类社会各个领域发挥着越来越重要的作用。基于Android的豆瓣网移动客户端是利用移动设备进行上网的软件,其嵌入到手机使用。该软件是基于JAVA连接 SQLlite数据库进行开发的网络通讯录管理系统,并利用Android平台将客户端嵌入到手机中使用。力求与实际相结合,旨在达到使移动客户端运行趋于计算机化,检索迅速、查找方便等。并且有着计算机上没有的特点随时随地都能上。这些优点能够极大地提高工作效率。1.3.1 经济可行性系统的经济可行性指的是对组织的经济状况和投资能力进行分析,对系统建设、运行和维护费用进行估算,对系统建成后可能取得的社会及经济效益进行估计。本模块简单易开发,且开发需要资金少,系统开发运行后,可以实现测试管理的计算机化,节省了人力、物力,将人从繁重的工作业务中解脱出来,减少了信息管理中无意的错误,节省了大量的时间,管理效率也大幅度提高,因此,在经济上是可行的。所带来的效益远远大于系统软件的开发成本。1.3.2 操作可行性本系统就是基于谷歌手机操作系统Android的一个软件。直观易懂,层次清晰明了,使用非常方便,使用者可以直接上手,本系统经过单元测试、模块测试、集成测试和压力测试,操作方便,只需按照操作说明操作即可。1.4 相关技术介绍1.4.1 关于Android的介绍Android应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。例如假设我们需要编写一个内嵌有网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的Chrome Lite浏览器组件。又如假设我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要再编写该功能。也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。在运行时,每个Android应用程序具有如下特点:1.默认情况下,每个应用程序都运行在一个Linux进程中。当应用程序中的某部分代码需要得到执行时,Android会为这个应用程序启动一个进程,该进程会一直存在,直到代码中要求退出,或者系统资源不足时Android将其杀死。2.每个进程都运行于一个相互独立的JVM。1.4.2 Java介绍全名为Java Server Page,它是另一种形式的Java文件,运行时先编译成Java类文件。JSP可以一次编写,到处运行。在这一点上Java比其它的更出色,除了系统之外,代码不用做任何更改,基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比其它的局限性是显而易见的,从只有一个小的Jar文件就可以运行Servelet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 同时Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。1.4.3 Eclipse的相关介绍Eclipse就象软件开发者的打铁铺,它一开始备有火炉,铁钻与铁锤。就像铁匠会用工具发造新的工具,也能用E打造新工具来开发软件-这些新工具可扩充E的功能。E这样功能完整且成熟的来法环境,是由蓝色巨人IBM所释放。随后逐渐受到欢迎。E的工作台如图,这是操作E时会碰到的基本图形接口,工作台是E 之中仅次于平台核心最基本的组件,启动E后出现的主要窗口就是这个,WORKBENCH的工作很简单:让操作专案。它不懂得任何编辑,执行,除错,它只懂如何找到项目与资源(如当档案与数据夹)。若有它不能做的工作,它就丢给其他组件。E提供数群预先选定的视图,并已事先定义好的方式排练,称之为视景。所有观景的主要组件式编辑器。每个观景的目的是执行某特定的工作,如编辑写JAVA程序,在每个视图以各种不同的观点处理工作,如图:2 需求分析2.1 客户需求由于Android平台提供了完整的多媒体解决方案,为开发者提供了统一,简单,易用的开发接口,让我们可以轻松的开发出一个多媒体播放器。Android系统具有强大的适应性,即便是在硬件配置不高的情况下,Android系统依然保持着出色的流畅性,而且Android软件商店中数万个免费的应用程序也足可以满足人们的日常需求。它具备现在音乐播放器的最基本的功能,其音质完美流畅,符合当代广大音乐爱好者的需求。目前手机音乐播放器的种类多式多,其功能也是不尽相同。目前比较流行的播放器有QQ音乐播放器和酷狗播放器。Android号称是首个为移动终端打造的真正开放和完整的移动软件,我们开发的基于Android版本的音乐播放器包括,上一曲下一曲功能键,播放停止和界面风格等,它具备现在音乐播放器的最基本的功能,其音质完美流畅,符合当代广大音乐爱好者的需求。2.1.1 客户对音乐播放器的功能要求图客户的对播放器功能键的要求如下:2.2 客户需求的具体实现图目前手机音乐播放器的种类多式多,其功能也是不尽相同。目前比较流行的播放器有QQ音乐播放器和酷狗播放器。Android号称是首个为移动终端打造的真正开放和完整的移动软件。通过使用MyEclipse的手机模拟器来设计一个简单的音乐播放器。在这个模拟软件上,通过配置ADT和SDCARD来启动模拟器,最后我们可以编写出相应的应用程序在模拟器上运行,通过对模拟器上功能键的实时操作来实现对播放器的控制。2.3 需求分析Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,我们希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的应用和服务。Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可以供其他应用程序使用。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件也可以。Android 是一种完整的多任务环境,其中应用程序可以并行运行。在后台运行时,应用程序可以生成通知以引起注意。多媒体播放器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络技术的发展,越来越多的人开始重视多媒体播放器的发展与应用。再加上如今的播放器虽然种类多样化,但无论是Windows系统自带的Windows Media Player播放器,还是现在网上流行的千千静听,或者是Kugoo播放器都或多或少都存在着一些缺点,而这些缺点要么是界面与人们平时的生活习惯不相符,或者是复杂难懂;要么就是功能不全不能满足人们对网络娱乐的追求。随着多媒体的发展,市场潜力的开发,多媒体硬件环境和软件环境的不断完善,以及多媒体播放器开发环境的成熟。为多媒体播放器的研究和开发提供了先进的思想和多样的媒体控制手段,成为多媒体应用程序开发的理想工具。而此次设计不仅具有操作简便、界面友好等特性;而且在功能方面更贴近人们的生活习惯和操作习惯。3 总体设计思路3.1 环境配置3.1.1 JDK Eclipse Android SDK的安装1.安装MyEclipse2.下载 windows版本的Android SDK 和ADT3.设置环境变量解压android-sdk-windows-1.5_r3.zip,把解压后文件夹的tools目录添加到环境变量path中。run->cmd->android看是否输出一堆帮助信息,是则成功了,否则检查检查。4.安装ADTHelp->Software updates->Find and Install.选择Search for new features to install ,点next后选择New Local Site ,在弹出的对话框里选择你所下载并解压后的ADT即可。5、设置Android SDK Home 打开MyEclipse后,window->preferences->Android->SDK Location位置选择你解压的Android SDK根目录6、测试开发环境是否搭建成功File->New->Project->Android->Android Project.3.1.2 创建Android虚拟设备(AVD)在android sdk 1.5 版本以后的开发中,必须至少创建一个AVD,每个AVD模拟一套虚拟设备来运行Android平台,这个平台至少要有自己的内核,系统图像和数据分区,还有自己的SD卡和用户数据及外观显示等。1).开始菜单-运行-cmd,出现控制台,输入android list targets2).创建AVD 按照android create avd -name <your_avd_name> -target <targetID> 3).在Eclipse中的run Configurations 里面指定一个AVD根据设计的基本要求,我们设计的播放器实例如下:下图就是播放器在模拟器中运行的截图。它具有基本的播放功能,能自动扫描SD卡中的Music目录,并列出该目录下的所有mp3文件。点击列表中的歌曲名称即可播放,通过上方的按钮可以控制暂停、继续、上一曲、下一曲。其中最重要的就是指定音乐文件的位置,我们设置路径为“/sdcard/”,因此我们要在SD卡中添加一些音频文件。步骤如下:启动运行- CMD-F:android-sdk-windows-1.5_r3tools>adb push E:mpXXXXXXX.mp3 /sdcard/XXXXX.mp3,最后添加入我们喜欢的歌曲。3.2 UI界面美化如上图所示,我们可以根据个人的爱好选择Eclipse的版本,因其版本不同,所给我们展现的视觉效果也大不相同,我们选择了2.0版本的模拟器来开发音乐播放器。其次就是通过编码来获取各个功能键的按钮,使界面更加的美观,包括开始,停止,下一曲,暂停,上一曲等按钮。在Android当中View类是最基本的一个UI类,基本上所有的高级UI组件都是继承View类而实现的,如Button(按钮),List(列表),EditText(编辑框),Checkbox(选择框)等都是View类。一个视图(View)在屏幕上占据了一块矩形区域,它负责渲染这块矩形区(如将这块区域变成蓝色或者其他颜色),也可以处理这块矩形区域内发生的事件(如用户单击了这块区域),并且可以设置这块区域是不是可见,是否可以获取焦点等。获取按钮程序如下: void findView() viewHolder.start=(Button)findViewById(R.id.start); viewHolder.stop=(Button)findViewById(R.id.stop); viewHolder.next=(Button)findViewById(R.id.next); viewHolder.pause=(Button)findViewById(R.id.pause); viewHolder.last=(Button)findViewById(R.id.last); 3.3 音乐播放器功能键的实现3.3.1 上一曲与下一曲键通过这两个功能键用户可以根据自己的需求来任意选择自己想听的歌曲,代码如下:下一首的实现: viewHolder.next.setOnClickListener(new OnClickListener() Override public void onClick(View v) nextMusic(); 上一首: viewHolder.last.setOnClickListener(new OnClickListener() Override public void onClick(View v)但是在暂停之后进行上一曲和下一曲的操作时,后台要进过相应的代码对其进行判断,代码会有一些不同。3.3.2 开始与停止键对于开始按钮,我们可以通过start()来判断后台,当无返回值时就开始开始播放,按下相应的按钮后台就会自动判断,之后开始播放。同样的对于停止键,用stop()就可以实现对它的的操作,当无返回值时停止播放。3.3.3 暂停与继续键我的主要任务是完成暂停和继续功能键的编码,在音乐播放的过程中才可以对播放器进行暂停的操。首先我们可以通过isPlaying()来完成对后台的判断,返回 boolean,是否正在播放,如果播放器在播放的进程中,那么通过stop(),如果无返回值,则播放器会选择停止播放,具体实现如下: viewHolder.pause.setOnClickListener(new OnClickListener() Override public void onClick(View v) if(myMediaPlayer.isPlaying() myMediaPlayer.pause(); else myMediaPlayer.start(); )相应的当要继续播放是,后台也是经过判断后在执行指令,再次播放音乐代码如下: void playMusic(String path) try myMediaPlayer.reset(); myMediaPlayer.setDataSource(path); myMediaPlayer.prepare(); myMediaPlayer.start(); myMediaPlayer.setOnCompletionListener(new OnCompletionListener() Override public void onCompletion(MediaPlayer mp) nextMusic(); ); catch (Exception e) e.printStackTrace(); 这样我们就完成了对暂停与继续的操作。有了这两个键我们对播放器的操作更加的灵活,避免了从头开始继续播放的麻烦。当我们在听音乐的过程中突然有事要离开而无法继续收听时,有了这两个键我们就可以轻松的忙完后继续之前的操作,大大的方面了我们的生活。3.4从SD 卡读取音乐你可以创建磁盘镜像并在模拟器启动时加载它,来模拟设备中用户的SD卡。下面的章节将介绍如何创 建磁盘镜像、如何向磁盘镜像像拷贝文件和如何在模拟器启动时加载镜。 注意:只能在模拟器启动是加载磁盘镜像。同理,模拟器运行时不能移除SD卡。然而,你可以通过adb 或模拟器浏览、发送、拷贝和删除模拟SD卡上的文件。 同时还要注意,模拟SD卡的大小不能超过2GB。4 基于Android的音乐播放器的详细设计及测试4.1 创建项目1. 点击 File->New ->Project,选择Android Project,再点击Next,即弹出项目属性窗口。2. 填写项目名称。在Contents选项中,我们按如图所示选择。保存的位置可以根据需要选择"Use default location"或是另外选择。3. 在Build Target选项中,我们从已经安装的平台中选择一个,我们选择1.5版。4. 在Properties选项中,我们按如下所示填写:5. 填写完毕后,点击"Finish",项目即创建好了。6. 在Eclipse的左侧栏中,我们可以看到项目的结构:顾名思义,src目录就是我们将要编写的java代码文件。另外需要我们注意的就是res这个目录。它下面的drawable目录保存的是我们要用到的图片。layout目录保存的是描述窗口布局的XML文件。values文件则保存的是包含有字符串值信息的XML文件。4.2 设计界面该播放器程序的主界面并不复杂,它由两部分组成,上半部分是一排按钮,下半部分是一个列表。下面我们逐步分析如何绘制界面。4.2.1 准备图片该程序共用需要以下7个图标,全部为png格式。把这些图标放在项目的res/drawable目录下。4.2.2 准备字符串资源 除了图片资源,在程序中,我们还需要用到一些字符串资源。之所以不将字符串直接写入java代码中,是因为那样在项目规模大了以后不便于管理,也不便于实现多语言等功能。利用ADT,我们可以很方便地添加字符串资源。步骤如下:1. 展开左侧栏中的res/values目录,双击打开values目录下的strings.xml文件。2. 在编辑窗口中,我们可以看到ADT已经为我们自动添加了名为hello和 app_name的两个String类型的资源。下面我们将添加另外一个字符串,当歌曲列表中没有曲目时,就将显示该字符串。首先,点击Add.,在弹出的窗口中,选择String,然后点击OK。然后在Name和Value处填入字符串的名称和字符串的内容。保存之后,就可以在其它地方引用该资源。4.2.3 设计程序的窗口布局窗口布局文件位于res/layout目录下,我们将在layout目录下创建我们的布局文件。1 在左侧栏中的layout文件夹上右键,选择New->File,在弹出的窗口中的File name处填入songlist.xml。单击Finish,即创建了一个空的布局文件。如果对Android布局XML文件的语法非常熟悉,那么可以直接编辑该文件,但是一般情况下,我们还是用ADT工具进行所见即所得的编辑。2 Android的窗口是由Layout和View组成的,Layout中可以包含View和Layout。我们这个应用的界面排列较简单,因此,最外层的Layout可以采用LinerLayout这种比较简单的格式。要添加它,先点击右侧边栏中Outline选项卡下的绿色“+”按钮,在弹出的窗口中选择LinerLayout,就添加成功了,在Outline窗口中就可以看到刚刚添加的这一项,同时中间的主窗口中也会显示一个空的黑色窗体。另外,我们还可以修改某个Layout或View的属性,方法是在右侧的Outline窗口中选中要修改的窗口元素,在下侧边栏中,切换到Properties选项卡,就可以看到所有的项目属性。大多数的选项都不需要我们手动设置。下面我们继续添加其它的窗口元素。Layout下可以嵌套其它的Layout和View,界面的上部分就是在最外层的LinerLayout下再放置了一个LinerLayout,然后在里层的LinerLayout里放置一排ImageButton。界面的下半部分是一个ListView(或者TextView)。当要在某个Layout里添加元素时,只需要先点击选中该Layout然后再点击"+"图标,就可以添加子元素到其中。最后布局层次如图所示:这时我们还需要对各个元素的属性作一些修改。例如对于5个ImageButton,我们需要设置其Src属性。这个属性表示的是图片的来源。例如back按钮上要显示是的一个指向左边的箭头,这个箭头图标名为back.png,在前述步骤中已经被放在了res/drawable目录中了。我们要把这个图标设为back按钮的图片来源,就需要在Src属性处填入"drawable/back"。"drawable/back"就是引用这个箭头图标资源的ID。如左图所示,在第一个LinerLayout下面,我们还添加了一个View。这个View中没有显示元素,而只是起一个分隔线的作用,让界面更美观一些。我们把这个View的Layout height 属性设为5dip,在显示时,上方的按钮就不会和下方的歌曲列表挤在一起了。在空白View的下方,可以看到,我们分别添加了一个ListView和一个TextView。值得注意的是,这两个元素其实并不会同时显示。这是因为它们的Id分别为"android:id/list"和"android:id/empty",这种Id属于Android系统的特殊Id,分别表示列表时要显示的和列表中无条目时要显示的元素。这样的话就不需要我们再编写代码来根据列表是否为空来显示相应元素了。最后,我们还可以根据需要,把元素的Id改成便于记忆的名称这样在使用时就更容易记忆。完成所有这些工作后,在Eclipse的主窗口中,就可以看到程序界面的预览效果。4.3 编写Java代码设计好了界面之后,下一步就是编写程序的Java代码了。由于该程序较为简单,只有MusicPlayer.java一个代码文件。其中的MusicPlayer类完成了绝大部分的操作。1. MusicPlayer的成员变量。其中:MEDIA_PATH是扫描音乐文件的起始目录;songs是用于保存歌曲路径的数组;mp是一个MediaPlayer的对象,我们通过这个对象控制音乐的播放、暂停等操作;currentPosition是当前播放的歌曲在列表中的序号,列表中的每一项都依次有一个序号,我们根据这个序号来判断上一曲和下一曲;status是指当前播放的状态,值为0表示停止播放,为1表示正在播放,为2表示被暂停播放。除此之后,4个Imageutton对象和1个ListView对象也分别有相应的成员变量。2. 编写onCreate()函数onCreeate函数是会在MusicPlayer程序启动时得到调用的一个函数。因此需要在这里完成各种初始化的工作。首先要做的是调用全局的onCreate函数,这样才能确保一些更基本的初始化工作在我们的初始化工作之前完成。然后就是使用setContentView函数设置界面布局,可以看到,我们传递给该函数的参数是R.layout.songlist,这就是在代码中引用布局文件的方式,其中R是一个全局的对象,包含了所有的资源(如图片、布局等)。绘完窗口之后,我们调用一个成员方法updateSongList来更新歌曲列表。另外我们要在初始时做的就是设置事件监听函数。我们要监听对控制按钮的点击,还有对歌曲列表中各项的点击。给这些元素绑定事件监听函数就在这里完成。以Play按钮为例:playButton变量是一个ImageButton对象,setOnClickListener方法用于为这个对象添加一个监听函数。它的参数是一个onClickListener(),作用是监听单击事件。在OnClickListerner中我们编写了onClick函数,根据当前的状态,判断点击Play按钮之后应该进行什么操作。除了Play按钮之外,还有stop按钮,以及上一曲、下一曲按钮。为它们添加事件监听函数的方式大同小异。稍有不同的是about按钮,点击它之后并不会影响播放,而是在程序窗口的上层浮动显示出提示信息。如代码中所示,显示这种浮动信息所用的是Toast类,Toast.makeText方法可以构造一条这样的提示信息。setGravity方法是用于设置浮动信息在界面中的显示位置,最后调用show方法就可以把信息显示出来。3. 编写播放控制函数播放控制函数一共有playSong, stopSong, preSong, nextSong, pauseSong, continueSong这6个,我们以playSong为例:首先,我们要把当前状态设为1(即播放状态),然后,要用setImageResource函数把按钮的图标换成暂停图标,setBackgroundColor把将要播放的歌曲所在条目的背景换成灰色,这样就能知道当前正处于播放状态,以及播放的是哪个曲目了。随后要做的就是MediaPlayer对象的初始化。由于初始化可能由于种种原因不能成功(如文件无法读取等),需要把它放在try块里,并记录可能出现的异常。MediaPlayer对象在使用前要注意reset,因为它会保存上次的播放状态。reset之后,就可以用setDaataSource来设置多媒体文件的路径了。这个路径既可以是本地的,也可以是远程的。比如我们把一个http协议下的音乐链接传递给MediaPlayer对象,它能自动下载、缓冲、播放远程的文件,在本例中,我们只需要用到播放本地文件的功能。Prepare方法则是用于异步地准备播放的数据。比如在播放远程文件时,使用该方法就会从远程获取数据而不阻塞其它动作。作好这些准备后,就可以调用start方法,如果之前的状态是暂停播放,start方法就会继续播放(除非调用了reset方法),否则,它就会从头开始播放音频文件。为了解决自动连续播放的问题,我们还要监听播放完毕这个事件,就是通过setOnCompletionListener方法设置一个监听器,监听到播放完成后就切换到下一曲继续播放。另外几个控制播放的方法也基本上都是对MediaPlayer对象的控制。在此不在赘述,详细代码请参见附录。4. 生成文件列表在这个函数中,先是遍历MEDIA_PATH下的所有MP3文件(通过Mp3Filter过滤器实现,Mp3Filter类的代码参见附录),把所有文件的路径保存到songs数组中。然后就是设置一个Adapter,设置列表为空时就显示song_item这个布局文件,而不是正常情况下的曲目列表。4.4 运行、调试程序要运行或调试项目,可以使用快捷键Ctrl+F11(运行)或F11(调试)。如果没有事先启动模拟器,则会在这时候启动模拟器,模拟器启动之后,Eclipse会把编译好的apk文件上传并安装到模拟器中,同时发送信号启动该程序。在Eclipse的Console窗口中,我们可以看到以下信息:这些信息清楚地显示了每一步的操作。另外,如果是要调试程序的话,程序启动之后还会等待连接Eclipse上的调试器,同时Eclipse会切换到调试视图。在该视图中我们可以使用单步跟踪等各种调试功能。4.5 打包发布程序。使用ADT工具,我们可以很方便地程序进行打包操作,并打上自己的签名。1. 点击File->Export。2. 在弹出的窗口中选择"Export Android Application",点击"Next"。3. 接着会弹出窗口要求选择一个项目,我们选择MusicPlayer这个项目,然后再点击"Next"。4. 第一次进行此操作时,会要求创建keystore,因此,要在此处输入想要设置的密码,并重新输入一次核对(如果不是第一次,则在此处输入设置的密码)。另外还可以选择keystore的位置,一般保持默认即可。完成后点击"Next"。5. 如果是第一次来到这步操作,则会要求填写信息创建密钥。按要求填写完各项即可。若不是第一次来到此步,则只需要选用一个已经存在的keystore并输入这个keystore的密码。然后再点击"Next"。6. 如果密码正确,则会要求选择所生成的APK文件的位置。选择完毕后点击"Finish",我们即可在刚才选择的位置处找到APK文件,把它传至Android终端里,即可安装运行。在我的Android手机上,MusicPlayer的运行效果如图所示。至此,我们的项目实例就完成了,如果觉得所开发的应用有实用价值,我们还可以申请一个Android App Market的帐户,把自己的应用程序上传到App Market中,这样就可以与全球的Android用户分享自己的作品了。致 谢本次我们的设计项目是基于Android的音乐播放器, Android号称是首个为移动终端打造的真正开放和完整的移动软件,我们设计音乐播放器目的在于通过之前的学习以及团队的共同努力,开发出一个简单的音乐播放器,从而深刻体会Android的强大功能.这对于我们来说无疑是巨大的挑战,但是我们的团队坚持到底,最终出色的完成了项目。在开发的过程中我们不断的去查取资料来进一步完善我们的项目,从而深刻的体会当代智能手机中播放器的开发过程。在整个实训期间,我们遇到了很多的问题,但是现在回想起来,觉得在我们即将毕业的时候能有这样一次学习的机会,是我们的大学生活更加的充实,从中我们也学到了许多的东西,尽管还不精通,但是相信这会给我们未来的学习和生活带来更多的益处。在这期间我学到了很多的东西。不仅学到更多的理论知识,扩展了知识面,提高了自己的实际操作能力;而且学会了如何去学习新的知识,学会了面对困难和挑战,学会了团结合作,互助互利。借此论文之际,向所有帮助、关心、支持我的老师、朋友同学,表达我最真诚的谢意。首先感谢镐京学院四年来对我的培养与教导。特别要感谢我的班主任闫利峰老师,感谢他对我的关心和照顾。另外,要感谢四年来给我代课的所有任课老师,是他们倾尽心血教会了我所有的知识。本论文是在王佳老师的耐心指导下多次修改完成的。在此,我对她的耐心指导和帮助表达我最真诚的谢意,感谢她们在这几个月来所付出的努力。在这段时间里,我从她身上,不仅学到了许多的专业知识,更感受到了她工作中的兢兢业业,生活中的平易近人的精神。此外,王老师的严谨治学态度和忘我的工作精神值得我去学习。在此,请允许我对王老师说一声:“老师,您辛苦了!谢谢您!” 。非常感谢我此次毕业设计小组的杨耀辉等几位同学。当我在过程中遇到问题和困难时,感谢他们给我提出许多关键性的意见和建议,使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我获益良多。最后,要向远方默默支持、鼓励和关怀我的父母和亲人道声谢谢,尤其是我的父母为我的学业提供了物质和精神支持,没有他们的付出,就没有我的今天。父母及家人无私的爱是我永远的动力。总之,在以后的学习、工作、生活中我将更加努力,用自己的行动回报社会、学校、老师及同学。参考文献1 张孝祥著 java就业培训教程M北京:清华大学出版社,2007.2 余志龙编著Google Android SDK开发范例大全M北京:人民邮电出版社,2009-7-1.3 E2ECloud工作室著深入浅出Google AndroidM北京:人民邮电出版社,2009-08-1.4 靳岩 姚尚朗著Google Android开发入门与实战M北京:清华大学出版社,2009-07-01.5 高昂著支持动态语言的Android平台M北京:人民邮电出版社,2009-05-07. 6 eoe.Android开发社区 2010-04-10.7 JavaEye论坛 2010-04-15.8AndroidAPI 文档。2010-4-10.9 高焕堂编Android 应用框架原理与程式设计(第三版)M北京:清华大学出版社,2008-10-0310 杨丰盛主编Android 应用开发揭秘M西安:机械工业出版社,2010-01-2511XML解析方式DOM、SAX之比较12Android开发者网站:13Android中文网:14CSDN:15XML解析方式DOM、SAX之比较16 高红岩 . Struts实用开发指南基于MVC+MyEclipse的Java Web应用开发 .北京:科学出版社,2007.7.17 陈海山.深入Java Servlet 网络编程.北京:清华大学出版社,2002.2 . 18 Donny.JSP与网站开发编程实战.北京:科学出版社 ,2001.7. 19 Steven Holzner.Java技术内幕.北京:机械工业出版社,2002.1. 20 武延军 黄飞跃. 精通JSP编程技术. 北京:人民邮电出版社,2001.8.21
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!