欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    热门手机android系统的音乐播放器设计与实现.doc

    • 资源ID:833218       资源大小:2.32MB        全文页数:19页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    热门手机android系统的音乐播放器设计与实现.doc

    1、 摘 要Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。关键词:android;音乐播放器;嵌入式;javaAbstractAndroid is a Linux-based open-source operating syste

    2、m, this article on the android platform design and realization of the music player, the use of the Java language and the Eclipse programming tools. Can be achieved through the design of the music playback, pause, previous song, next song, music list, sound control, the Help menu and other functions

    3、through the principle player in android platform-based design, and to understand the design of the music player realization of the related technology, to master the android programming ideas, as well as basic application components, great help later in the android development.Keywords: android; musi

    4、c player; embedded; javaII目 录 摘 要IIAbstractIII目 录1第一章 总体功能介绍11.1 功能介绍11.11 各功能模块图11.12设计思想21.2 系统结构用例图2第二章 详细设计及功能实现42.1 播放器界面的设计42.2 播放动画的设计52.3 各模块详细设计52.31 声音控制模块62.32 播放暂停模块82.34 上一曲下一曲模块82.34 音乐播放列表模块92.35 系统帮助模块12第三章 调试及运行结果143.1 实验测试问题143.2 实验调试14第四章 总 结154.1 遇到的问题154.2 解决方法154.3 收获体会15参考文献16

    5、第一章 总体功能介绍1.1 功能介绍设计的音乐播放器是基于android平台下的,能够实现音乐的播放、暂停、快进、快退、上一曲、下一曲、声音控制、播放列表,播放时间以及播放列表。通过播放列表,用户可以选择播放的音乐,播放器也可以显示该音乐的歌曲名、专辑、歌手以及歌曲的播放总时间,播放进度等歌曲的相关功能;用户还可以通过音乐增减按钮调节声音大小,还可以选择循环播放和顺序播放;该音乐播放器能够将将sd卡中的MP3格式的音乐文件进行查找和播放;用户可以通过系统帮助退出系统、更新播放列表、设置、帮助等功能。1.11 各功能模块图Android音乐播放器声音控制上一曲下一曲音乐文件播放列表播放暂停 图1

    6、.11 音乐播放器模块图1.12设计思想首先,搭建android平台,通过Eclipse以及环境变量的配置搭建android平台,实现手机模拟器然后搭建音乐播放器的界面,通过使用android的组件,将相关的动作按钮通过启动StartIntent()方法来使各组件进行跳转,实现音乐播放器的功能,其具体的实现采用java语言。图1.12 搭建模拟器图1.2 系统结构用例图根据音乐播放器的功能设计,UML用例图更直观的反映了用户对该软件的需求,通过用例特征的分析,又用例模型抽象出该软件为用户的功能,以及详细的叙述,音乐播放器系统的用例图如下: 图1.2 音乐播放器功能用例图播放清单显示sd卡中的音

    7、乐文件里表,其用例图如下图所示:图1.21 音乐播放器播放列表功能用例图第二章 详细设计及功能实现2.1 播放器界面的设计先实现播放页面的 (包括各种控制按钮和专辑图片) 布局代码 main.xml以及播放列表的界面设计playlist.xml文件。图2.1 播放界面和播放列表界面其中播放按钮、暂停、上一曲、下一曲、声音按钮采用xml文件,在按下和得到焦点的时候会做相应的改变,关键代码如下: 2.2 播放动画的设计有两个动画文件log.xml和log_two.xml文件,当动画结束时 启动另外一个activity动画特效是两个imageView同时采用 淡入,旋转和,缩放的特效其调入动画关键代

    8、码为:Animation animation=AnimationUtils.loadAnimation(Logo.this, R.anim.logo);Animation animation2=AnimationUtils.loadAnimation(Logo.this, R.anim.logo_two);图2.2播放动画界面2.3 各模块详细设计音乐播放器包括声音控制模块,上一曲下一曲,播放,暂停,播放列表,系统帮助等几个模块。2.31 声音控制模块声音有两个按钮控制,一个增加声音和一个减少声音。通过这两个按钮用户可以调节播放音乐的声音大小,使用AudioManager组件对声音的大小进行增

    9、减,最大为7,最小为0。当用户点击声音按钮时,若是增按钮,对声音进行增加;若是减按钮对声音进行减小。图2.31 声音控制图关键代码如下:获取点击事件voiceUp = (ImageButton)findViewById(R.id.music_voic_up); / 音量 增加voiceDown = (ImageButton)findViewById(R.id.music_voic_down); / 音量 增减小执行事件 audiomanage = (AudioManager) getSystemService(Context.AUDIO_SERVICE); voiceDown.setOnCli

    10、ckListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stub audiomanage.adjustVolume(AudioManager.ADJUST_LOWER, 0); volume = audiomanage.getStreamVolume(AudioManager.STREAM_RING);if(volume0)volume-;audiomanage.setRingerMode(volume);); / 声音控制按钮,声音增加 voiceUp.setOnCli

    11、ckListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stubaudiomanage.adjustVolume(AudioManager.ADJUST_RAISE, 0); volume = audiomanage.getStreamVolume(AudioManager.STREAM_RING);if(volume= 5) progress = prog;Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd

    12、 = MusicService.CMD_SEEK;/发送拖动的命令i.putExtra(cmd, cmd);i.putExtra(progress, progress);/讲拖动的进度传进ServicesendBroadcast(i);sb.setProgress(progress););2.34 音乐播放列表模块音乐播放列表由activity组件是实现,能够对当前android手机模拟器sd卡中MP3音乐文件进行读取和显示,包括歌曲名、专辑、歌曲时间以及歌手名。用户可以选择想要播放的音乐对其播放。其关键代码如下:private ListMap getMultiData() ListMap m

    13、usicList = new ArrayListMap();System.out.println(musicList + 0);/ 循环找出所有的歌曲和信息ContentResolver resolver = this.getContentResolver();Cursor musicCursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,null);int musicColumnIndex;/ 遍历游标内容if (null != musicCursor & musicCurso

    14、r.getCount() 0) for (musicCursor.moveToFirst(); !musicCursor.isAfterLast(); musicCursor.moveToNext() Map musicDataMap = new HashMap();/ 取得音乐的名字musicColumnIndex = musicCursor.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE);musicName = musicCursor.getString(musicColumnIndex);musicDataMap.put(music

    15、Name, musicName);musicColumnIndex = musicCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM);musicAlbum = musicCursor.getString(musicColumnIndex);musicDataMap.put(musicAlbum, musicAlbum);musicColumnIndex = musicCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ARTIST);musicArtist = musicCur

    16、sor.getString(musicColumnIndex);musicDataMap.put(musicArtist, musicArtist);musicColumnIndex = musicCursor.getColumnIndex(MediaStore.Audio.AudioColumns.DURATION);musicDuration = musicCursor.getString(musicColumnIndex);musicDataMap.put(musicdurction, musicDuration);/ 取得歌曲对应的专辑Key 这里由于专辑图片太占内存 就不在播放列表上

    17、显示了musicColumnIndex = musicCursor.getColumnIndex(MediaStore.Audio.AudioColumns.ALBUM_KEY);musicAlbumKey = musicCursor.getString(musicColumnIndex);String argArr = musicAlbumKey ;ContentResolver albumResolver = this.getContentResolver();Cursor albumCursor = albumResolver.query(MediaStore.Audio.Albums.

    18、EXTERNAL_CONTENT_URI, null,MediaStore.Audio.AudioColumns.ALBUM_KEY + = ?,argArr, null);if (null != albumCursor & albumCursor.getCount() 0) albumCursor.moveToFirst();int albumArtIndex = albumCursor.getColumnIndex(MediaStore.Audio.AlbumColumns.ALBUM_ART);musicAlbumArtPath = albumCursor.getString(album

    19、ArtIndex);if (null != musicAlbumArtPath) musicDataMap.put(musicAlbumArtPath, musicAlbumArtPath); else musicDataMap.put(musicAlbumArtPath, R.drawable.icon); else musicDataMap.put(musicAlbumArtPath, R.drawable.icon);albumCursor.close();musicList.add(musicDataMap);musicCursor.close();return musicList;音

    20、乐列表截图如下:图2.34 音乐播放器列表2.35 系统帮助模块系统帮助主要为用户提供使用软件的帮助功能,包括设置、帮助、列表、退出、刷新曲库等功能。其截图如下:图2.35 系统帮助模块关键代码如下: public boolean onCreateOptionsMenu(Menu menu) menu.add(Menu.NONE, Menu.FIRST + 1, 5, 刷新曲库).setIcon(android.R.drawable.ic_menu_search);menu.add(Menu.NONE, Menu.FIRST + 2, 6, 退出).setIcon(android.R.draw

    21、able.ic_menu_set_as); menu.add(Menu.NONE, Menu.FIRST + 3, 2, 帮助).setIcon(android.R.drawable.ic_menu_help);menu.add(Menu.NONE, Menu.FIRST + 4, 1, 列表).setIcon(android.R.drawable.ic_menu_agenda);menu.add(Menu.NONE, Menu.FIRST + 5, 4, 关于).setIcon(android.R.drawable.ic_menu_info_details);menu.add(Menu.NO

    22、NE, Menu.FIRST + 6, 3, 设置).setIcon(android.R.drawable.ic_menu_preferences);return super.onCreateOptionsMenu(menu);Overridepublic boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() /这里的Menu.FIRST是一个常量 Id的标示/根据得到的ID判断 当前那个菜单项被点中case Menu.FIRST + 1:Toast.makeText(this, 正在刷新歌曲., Toast

    23、.LENGTH_SHORT).show();break;case Menu.FIRST + 2:finish();Toast.makeText(this, 退出., Toast.LENGTH_SHORT).show();break;case Menu.FIRST + 3:Toast.makeText(this, 此功能暂未开放, Toast.LENGTH_SHORT).show();break;case Menu.FIRST + 4:/跳转到播放列表Intent setIntent = new Intent(PlayActivity.this, Musiclist.class); PlayAc

    24、tivity.this.startActivity(setIntent);break;case Menu.FIRST + 5:String showtxt = 帮助文件丢失!;InputStream is;try is = getAssets().open(readme.txt);int size = is.available();byte buffer = new bytesize;is.read(buffer);is.close();showtxt = new String(buffer, utf-8); catch (IOException e) throw new RuntimeExc

    25、eption(e);new CustomDialog(PlayActivity.this, CustomDialog.DIALOG_DETAILS,关于, showtxt).show();break;case Menu.FIRST + 6:Toast.makeText(this, 此功能暂未开放, Toast.LENGTH_SHORT).show();break;return false;第三章 调试及运行结果3.1 实验测试问题实验主要读错误提示进行调试,在课设中主要出现的错误时“系统异常,强制终止”如下图所示图3.1 异常终止3.2 实验调试 大多数时间出现如上所示的情况,这是我们需要对L

    26、ogCat查看错误,课设中曾经常出现的是内存空间已满,需要释放进程空间,以导致出现程序运行时出现图3.1所示的现象,所以,当出现错误时,我们必须查看错在哪儿,然后改正。图3.2 调试截图第四章 总 结4.1 遇到的问题由于对android的接触较少,所以也遇到了一些问题,无论是哪种语言首先要有自己的思路,接下来就是通过语言的实现。我主要遇到android的四大组件的理解和使用,刚开始不知道如何用相关的组件,而且android的组件相当的多,就老师上课讲的相关知识比较少,对于我们初学者学习比较困难,而且,只是不是那么的连贯和详细,上课的时间只是跟上老师再敲代码,实现一个具体的功能,但是不有真正的

    27、弄懂它的使用方法,所以,我们在课设中出现很多问题。4.2 解决方法由于android是用java语言编写的,自己学习java还比较可以,语言不是主要的问题,主要的问题就是android那四个组件的使用和理解,对于老师课堂上没有讲清楚的我下来主要是采用网上查找资料和自己到图书馆查阅相关的书籍,对于其一些接口查阅android的相关API接口文档,通过自己慢慢地实现一个个的功能理解和消化相关的知识,对于解决不了的问题,向老师和同学们求助,然后自己在一点点的理解。4.3 收获体会通过这次三周的课程设计,让我更加全面的复习和掌握了java语言,对android编程知识有了基本的认识和了解,基本掌握了a

    28、ndroid的四大组件的相关知识,虽然自己以前没有接触过android,但是系统的学习过java语言,对语言知识有一定的理解,但是,android中相关组件和接口非常的繁琐和多,所以,对于初学者不可能一下子全部的掌握所有组件以及接口,但是,通过这三周设计播放器和通讯录,让我明白了android平台和知识的基本使用,虽然设计中遇到了很多的问题,但是通过网上查阅和图书馆介于相关的书籍弄懂了自己不会的知识。自然学习任何语言和新知识,都会有疑问和困难,所以,自己必须通过查阅相关知识自己解决。所以,我觉的这次课设非常有意义,虽然,短短的三周不可能真正的掌握android相关的知识,但是,通过这次课设,让我们接触了社会比较前沿的编程知识,为即将毕业的我们找工作有了一定的帮助,也为以后从事android打下一个小小的基础。参考文献1 李宁Android应用开发实战北京机械工业出版社20122 高彩丽Android应用开发范例精解北京清华大学出版社20123 李宁Android开发完全讲义北京中国水利水电出版社20124 张元亮Android开发应用实战详解北京中国铁道出版社20115 本文由 转载。 16


    注意事项

    本文(热门手机android系统的音乐播放器设计与实现.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922