当前位置:文档之家› 基于android平台的音乐播放器的设计与实现

基于android平台的音乐播放器的设计与实现

学校代码: 10128学号: ************嵌入式系统综合设计说明书题目:基于Android的音乐播放器设计与实现姓名:学院:信息工程学院班级:指导教师:2012 年9 月24 日摘要Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。

通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。

关键词:android;音乐播放器;嵌入式;javaAbstractAndroid is a Linux-based open-source operating system, 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 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; music player; embedded; java目录摘要.............................................................. I I Abstract.......................................................... I II 目录.. (1)第一章总体功能介绍 (1)1.1 功能介绍 (1)1.11 各功能模块图 (1)1.12设计思想 (2)1.2 系统结构用例图 (2)第二章详细设计及功能实现 (4)2.1 播放器界面的设计 (4)2.2 播放动画的设计 (5)2.3 各模块详细设计 (5)2.31 声音控制模块 (6)2.32 播放暂停模块 (8)2.34 上一曲\下一曲模块 (8)2.34 音乐播放列表模块 (9)2.35 系统帮助模块 (12)第三章调试及运行结果 (14)3.1 实验测试问题 (14)3.2 实验调试 (14)第四章总结 (15)4.1 遇到的问题 (15)4.2 解决方法 (15)4.3 收获体会 (15)参考文献 (16)第一章总体功能介绍1.1 功能介绍设计的音乐播放器是基于android平台下的,能够实现音乐的播放、暂停、快进、快退、上一曲、下一曲、声音控制、播放列表,播放时间以及播放列表。

通过播放列表,用户可以选择播放的音乐,播放器也可以显示该音乐的歌曲名、专辑、歌手以及歌曲的播放总时间,播放进度等歌曲的相关功能;用户还可以通过音乐增减按钮调节声音大小,还可以选择循环播放和顺序播放;该音乐播放器能够将将sd卡中的MP3格式的音乐文件进行查找和播放;用户可以通过系统帮助退出系统、更新播放列表、设置、帮助等功能。

1.11 各功能模块图图1.11 音乐播放器模块图1.12设计思想首先,搭建android平台,通过Eclipse以及环境变量的配置搭建android平台,实现手机模拟器然后搭建音乐播放器的界面,通过使用android的组件,将相关的动作按钮通过启动StartIntent()方法来使各组件进行跳转,实现音乐播放器的功能,其具体的实现采用java语言。

图1.12 搭建模拟器图1.2 系统结构用例图根据音乐播放器的功能设计,UML用例图更直观的反映了用户对该软件的需求,通过用例特征的分析,又用例模型抽象出该软件为用户的功能,以及详细的叙述,音乐播放器系统的用例图如下:图1.2 音乐播放器功能用例图播放清单显示sd卡中的音乐文件里表,其用例图如下图所示:图1.21 音乐播放器播放列表功能用例图第二章详细设计及功能实现2.1 播放器界面的设计先实现播放页面的 (包括各种控制按钮和专辑图片) 布局代码 main.xml 以及播放列表的界面设计playlist.xml文件。

图2.1 播放界面和播放列表界面其中播放按钮、暂停、上一曲、下一曲、声音按钮采用xml文件,在按下和得到焦点的时候会做相应的改变,关键代码如下:<selector xmlns:android="/apk/res/android"> <item android:state_focused="true"android:drawable="@drawable/desktop_music_voice2"/><item android:state_selected="true"android:drawable="@drawable/desktop_music_voice2"/><item android:state_pressed="true"android:drawable="@drawable/desktop_music_voice2"/><item android:drawable="@drawable/desktop_music_voice"/></selector>2.2 播放动画的设计有两个动画文件log.xml和log_two.xml文件,当动画结束时启动另外一个activity动画特效是两个imageView同时采用淡入,旋转和,缩放的特效其调入动画关键代码为: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组件对声音的大小进行增减,最大为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.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubaudiomanage.adjustVolume(AudioManager.ADJUST_LOWER, 0);volume = audiomanage.getStreamVolume(AudioManager.STREAM_RING);if(volume>0){volume--;audiomanage.setRingerMode(volume);}}});// 声音控制按钮,声音增加voiceUp.setOnClickListener(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<7){volume++;audiomanage.setRingerMode(volume);}}});声音控制的程序流程图:图2.311 声音控制流程图2.32 播放暂停模块当用户点击播放\暂停按钮时,播放器就对当前播放事件监听,从而控制当前音乐的播放\暂停,其界面图如图2.31所示,关键代码如下://播放按钮playPauseBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {int cmd = 0;Intent i = new Intent(MusicService.MUSIC_CONTROL);//判断当前的状态值是什么状态如果是播放状态if (status == MusicService.STATUS_PLAYING) {cmd = MusicService.CMD_PAUSE;//发送暂停的命令} else if (status == MusicService.STATUS_STOPPED) {cmd = MusicService.CMD_START;//发送播放的命令} else {cmd = MusicService.CMD_RESUME;//继续播放的命令}i.putExtra("cmd", cmd);//将命令广播出去sendBroadcast(i);//发送广播}});2.34 上一曲\下一曲模块当用户点击上一曲\下一曲按钮时,播放器就对当前播放事件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲\下一曲,其界面图如图2.31所示,关键代码如下://上一曲键事件监听器previousbtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_PREV;//发送前一首的命令i.putExtra("cmd", cmd);sendBroadcast(i);}});// 下一曲键事件监听器nextBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_NEXT;i.putExtra("cmd", cmd);sendBroadcast(i);}});//设置SeekBar的监听事件sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { //当停止拖动时调用的方法public void onStopTrackingTouch(SeekBar seekBar) {}public void onStartTrackingTouch(SeekBar seekBar) {}//当SeekBar拖动时会执行此方法public void onProgressChanged(SeekBar seekBar, int prog,boolean fromUser) {//fromUser参数意思是判断拖动是否是用户用手拖动的if (fromUser == true && Math.abs(prog - progress) >= 5) {progress = prog;Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_SEEK;//发送拖动的命令i.putExtra("cmd", cmd);i.putExtra("progress", progress);//讲拖动的进度传进ServicesendBroadcast(i);sb.setProgress(progress);}}});}2.34 音乐播放列表模块音乐播放列表由activity组件是实现,能够对当前android手机模拟器sd 卡中MP3音乐文件进行读取和显示,包括歌曲名、专辑、歌曲时间以及歌手名。

相关主题