ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:79.04KB ,
资源ID:3999171      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3999171.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于Android平台的音乐播放器设计报告v3.0.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于Android平台的音乐播放器设计报告v3.0.doc

1、题目: 基于Android平台的音乐播放器设计报告学生姓名: 何双双学 号: 12108010851指导教师: 邓江沙目录第一章 引 言11.1 项目背景11。2 编写目的1第二章 系统需求分析22。1 功能需求(用例图分析)22。1.1 播放器的用例图22。1。2用例分析3第三章 概要设计43.1软件播放流程图43。2 软件类图5第四章 详细设计64。1MusicInfoController类64。1。1。类启动64.1。2.服务绑定activity64.2MusicInfoController类64。2。1获得播放文件列表74。3MusicList类74.3.1播放74.3。2暂停/播放7

2、4。3.3停止84。4MusicPlayerApp类84。4.1单例模式8第五章 系统实现105.1软件部署105.2启动软件105.3播放界面11第六章 结 论12附录一: 代码131。获取全部音频文件代码132。绑定歌曲列表到listview控件133。软件初始化144。音乐播放服务15第一章 引 言1。1 项目背景当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的

3、发展前景.那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到.本文的音乐播放器就是基于谷歌Android手机平台的播放器。Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统.本次作品音乐播放器就是基于Android平台的。1.2 编写目的现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且

4、能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。第二章 系统需求分析2。1 功能需求(用例图分析)根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求

5、.以下分别描述:2。1。1 播放器的用例图假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下图2.1 播放器基本用例图2.1.2用例分析用例名称:启动软件参与者:用户目标:使得用户启动软件并加载手机和sd卡上的音频文件到播放列表前置条件:无基本事件流:1。用户启动软件 2。播放器将播放列表中的当前的歌曲用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1。用户单击“播放”按钮 2。播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播

6、放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1。用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止按钮 2.播放器将停止当前播放的歌曲用例名称:推出参与者:用户目标:使得用户退出或者后台播放音乐前置条件:程序在运行基本事件流:1。用户按返回键 2.播放器退出或者进入后台播放第三章 概要设计3.1软件播放流程图Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.Step2.点击列表的歌曲名字。Step3。播放音乐。Step4.点击暂停,音乐暂

7、停Step5。点击播放 转到step3Step6。点击停止 停止播放音乐Step7。点击退出,若音乐处于播放状态,则音乐转向后台播放,界面退出。Step8。点击退户,若音乐处于暂停或者停止状态,直接退出。图3.1音乐播放器流程图3。2 软件类图系统设计了4个类,分别是播放音乐的服务类MusicPlayerService;主要用于获取android系统中的音频文件,并提供访问接口的MusicInfoController类;继承于ListActivity,主要用于显示歌曲列表的MusicList类和程序的生存类MusicPlayerApp类。音乐播放器类MusicInfoController类Mu

8、sicList类MusicPlayerApp类MusicPlayerService图3。2 软件类图图3。2音乐播放器类图第四章 详细设计4。1MusicInfoController类这个类继承于service,是播放音乐的服务类。播放音乐,暂停音乐,停止播放等操作都封装在这个类中。主要的执行动作有:4。1。1。类启动onCreate()mMediaPlayer = new MediaPlayer();/分配一个播放对象mMediaPlayer.setOnPreparedListener(mPrepareListener);/绑定之前mMediaPlayer。setOnCompletionLi

9、stener(mCompleteListener);/绑定之后4。1。2.服务绑定activityMediaPlayer.OnCompletionListener mCompleteListener = new MediaPlayer。OnCompletionListener() /实例化一个绑定监听器的匿名类 public void onCompletion(MediaPlayer mp) /完成绑定后 broadcastEvent(PLAY_COMPLETED);/广播消息 ;4.2MusicInfoController类这个类主要用于获取android系统中的音频文件,并提供访问接口,它

10、是一个单例类。4.2.1获得播放文件列表private Cursor query(Uri uri, String prjs, String selections, String selectArgs, String order)ContentResolver resolver = pApp。getContentResolver();/取得一个连接对象if (resolver = null)return null;return resolver。query(uri, prjs, selections, selectArgs, order);public Cursor getAllSongs()r

11、eturn query(MediaStore。Audio。Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore。Audio。Media。DEFAULT_SORT_ORDER);/查询ContentResolver 的所有音频文件4。3MusicList类改类继承于ListActivity,主要用于显示歌曲列表,并且封装部分操作,以及与父级目标通信。4。3.1播放 protected void onListItemClick(ListView l, View v, int position, long id) /歌曲列表的某项被点击 s

12、uper.onListItemClick(l, v, position, id); if (mCursor = null |mCursor。getCount() = 0) return; mCursor。moveToPosition(position);/游标移动到当前路径 String url = mCursor。getString(mCursor 。getColumnIndexOrThrow(MediaStore。Audio。Media。DATA));/取得绝对路径 mMusicPlayerService。setDataSource(url);/传递绝对路径 mMusicPlayerSer

13、vice.start();/播放音乐 4。3.2暂停/播放 mPlayPauseButton。setOnClickListener(new Button。OnClickListener() public void onClick(View v) if (mMusicPlayerService != null & mMusicPlayerService.isPlaying() mMusicPlayerService.pause();/音乐播放的服务暂停 mPlayPauseButton。setText(R。string.play);/改变按钮文字 else if (mMusicPlayerSer

14、vice != null) mMusicPlayerService。start();/如果已经是暂停,则播放音乐 mPlayPauseButton。setText(R。string。pause);/改变文字 );4。3.3停止 mStopButton。setOnClickListener(new Button.OnClickListener() public void onClick(View v) / Perform action on click if (mMusicPlayerService != null ) mTextView。setVisibility(View.VISIBLE);

15、/改变文字状态 mPlayPauseButton.setVisibility(View。INVISIBLE);/隐藏按钮 mStopButton。setVisibility(View.INVISIBLE);/隐藏停止按钮 mMusicPlayerService。stop();/后台音乐停止播放 );4。4MusicPlayerApp类该类继承与Application,是程序的生存类.可以标识音乐播放器的生命周期,包括音乐在后台播放等.4.4。1单例模式public void onCreate()super。onCreate();mMusicInfoController = MusicInfoC

16、ontroller。getInstance(this); /返回该类的一个唯一实例public MusicInfoController getMusicInfoController()return mMusicInfoController;第五章 系统实现5.1软件部署系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装,或者安装360手机助手通过usb调试的方式进行安装。图5.1软件图标5.2启动软件启动软件后,加载歌曲列表现在这个界面上,如01表示歌曲名,unknown表示歌曲的演唱者图5.2软件启动界面5.3播放界面从加载的歌曲列表中点击要播放的歌曲,开始播放图5。

17、3 音乐播放界面第六章 结 论(1) 通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成。(3) 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclips4.0+Java语言的支持,Android Development Tool的插件,和Android SDK2。1版本的全面结合,才使整个音乐播放器系统得以实现。附录一:代码1获取全

18、部音频文件代码private Cursor query(Uri uri, String prjs, String selections, String selectArgs, String order)ContentResolver resolver = pApp.getContentResolver();/取得papp的一个resolver实例if (resolver = null)returnnull;return resolver.query(uri, prjs, selections, selectArgs, order);public Cursor getAllSongs() /取得

19、所有音频文件return query(MediaStore。Audio。Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore。Audio.Media.DEFAULT_SORT_ORDER);2绑定歌曲列表到listview控件publicvoid bindView(View view, Context context, Cursor cursor) super.bindView(view, context, cursor);TextView titleView = (TextView) view.findViewById(androi

20、d。R.id。text1);TextView artistView = (TextView) view.findViewById(android.R。id.text2);titleView。setText(cursor.getString(cursor。getColumnIndexOrThrow(MediaStore。Audio.Media。TITLE));/绑定歌曲名artistView。setText(cursor。getString(cursor。getColumnIndexOrThrow(MediaStore.Audio.Media。ARTIST));/绑定演唱者3软件初始化 setC

21、ontentView(R.layout.list_layout); MusicPlayerApp musicPlayerApp=(MusicPlayerApp)getApplication();/取得一个实例mMusicInfoController = (musicPlayerApp)。getMusicInfoController(); startService(new Intent(this,MusicPlayerService.class); /启动服务 bindService(new Intent(this,MusicPlayerService。class), mPlaybackConn

22、ection, Context。BIND_AUTO_CREATE);/绑定服务mTextView = (TextView)findViewById(R.id。show_text);/取得显示文本控件mPlayPauseButton = (Button) findViewById(R。id。play_pause_btn);/取得开始和暂停控件mStopButton = (Button) findViewById(R.id.stop_btn);/取得停止控件mPlayPauseButton。setOnClickListener(new Button。OnClickListener() /播放和暂停

23、按钮的事件绑定publicvoid onClick(View v) if (mMusicPlayerService != null mMusicPlayerService.isPlaying() mMusicPlayerService。pause();/暂停播放mPlayPauseButton。setText(R。string。play);/改变控件文字 elseif (mMusicPlayerService != null)mMusicPlayerService.start();/服务没启动则启动mPlayPauseButton.setText(R.string。pause);/改变控件文字

24、为暂停 );mStopButton。setOnClickListener(new Button。OnClickListener() /停止按钮的事件绑定publicvoid onClick(View v) if (mMusicPlayerService != null ) mTextView.setVisibility(View。VISIBLE);mPlayPauseButton.setVisibility(View。INVISIBLE);/改变播放按钮为不可见mStopButton.setVisibility(View.INVISIBLE);mMusicPlayerService.stop(

25、);/停止播放 ); IntentFilter filter = new IntentFilter(); filter。addAction(MusicPlayerService。PLAYER_PREPARE_END);/ filter.addAction(MusicPlayerService。PLAY_COMPLETED); registerReceiver(mPlayerEvtReceiver, filter);/放入后台4。音乐播放服务MediaPlayer.OnCompletionListenermCompleteListener = new MediaPlayer。OnCompleti

26、onListener() /实例化化一个listener匿名类 publicvoid onCompletion(MediaPlayer mp) /完成绑定时调用 broadcastEvent(PLAY_COMPLETED);/广播消息 ; MediaPlayer。OnPreparedListener mPrepareListener = new MediaPlayer.OnPreparedListener() /绑定钱调用 publicvoid onPrepared(MediaPlayer mp) broadcastEvent(PLAYER_PREPARE_END);/广播事件 ;privat

27、evoid broadcastEvent(String what)Intent i = new Intent(what);sendBroadcast(i);/广播消息publicvoid onCreate()super。onCreate();mMediaPlayer = new MediaPlayer();/实例化一个播放类mMediaPlayer。setOnPreparedListener(mPrepareListener);/执行绑定前系列动作mMediaPlayer。setOnCompletionListener(mCompleteListener);/执行绑定后系列动作publiccl

28、ass LocalBinder extends Binderpublic MusicPlayerService getService()return MusicPlayerService.this;public IBinder onBind(Intent intent)/绑定returnmBinder;publicvoid setDataSource(String path)/取得播放文件的绝对路径trymMediaPlayer。reset();mMediaPlayer。setDataSource(path);mMediaPlayer。prepare();catch (IOException

29、e)return;catch (IllegalArgumentException e)return;publicvoid start()/开始播放mMediaPlayer。start();publicvoid stop()/停止播放mMediaPlayer。stop();publicvoid pause()/暂停播放mMediaPlayer。pause();publicboolean isPlaying()/判断是否在播放returnmMediaPlayer。isPlaying();publicint getDuration()/取得音乐的时间returnmMediaPlayer.getDuration();publicint getPosition()/取得正在播放的时间returnmMediaPlayer。getCurrentPosition();publiclong seek(long whereto)/调到想要播放的时间mMediaPlayer.seekTo(int) whereto);return whereto;

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服