基于android平台的音乐播放器的设计与实现
学校代码: 10128
学 号: 200920201076
嵌入式系统综合设计说明书
题 目:基于Android的音乐播放器设计与实现 姓 名:
学 院:信息工程学院
班 级:
指导教师:
2012 年9 月24 日
摘 要
Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。
关键词:android;音乐播放器;嵌入式;java
II
Abstract
Android 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
based design, and to understand the principle player in android platform-
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
III
目 录
摘 要.............................................................. II Abstract.......................................................... III 目 录.............................................................. 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 各功能模块图
Android音乐播放器
声音控制
播放\暂停
上一曲\下一曲
音乐文件
播放列表
图1.11 音乐播放器模块图
1
1.12设计思想
首先,搭建android平台,通过Eclipse以及环境变量的配置搭建android平台,实现手机模拟器然后搭建音乐播放器的界面,通过使用android的组件,将相关的动作按钮通过启动StartIntent()方法来使各组件进行跳转,实现音乐播放器的功能,其具体的实现采用java语言。
图1.12 搭建模拟器图
1.2 系统结构用例图
根据音乐播放器的功能设计,UML用例图更直观的反映了用户对该软件的需求,通过用例特征的分析,又用例模型抽象出该软件为用户的功能,以及详细的叙述,音乐播放器系统的用例图如下:
2
音乐播放器系统
播放
退出软件暂停
上一曲
音量
播放文件
系统帮助
图1.2 音乐播放器功能用例图
播放清单显示sd卡中的音乐文件里表,其用例图如下图所示:
音乐播放器列表
播放
返回
删除
图1.21 音乐播放器播放列表功能用例图
3
第二章 详细设计及功能实现 2.1 播放器界面的设计
先实现播放页面的 (包括各种控制按钮和专辑图片) 布局代码 main.xml
以及播放列表的界面设计playlist.xml文件。
图2.1 播放界面和播放列表界面
其中播放按钮、暂停、上一曲、下一曲、声音按钮采用xml文件,在按下和得到焦点的时候会做相应的改变,关键代码如下:
4
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 各模块详细设计
音乐播放器包括声音控制模块,上一曲\下一曲,播放,暂停,播放列表,
系统帮助等几个模块。
5
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 stub
audiomanage.adjustVolume(AudioManager.ADJUST_LOWER, 0);
volume = audiomanage.getStreamVolume(AudioManager.STREAM_RING);
if(volume>0){
volume--;
audiomanage.setRingerMode(volume);
}
}
});
6
// 声音控制按钮,声音增加
voiceUp.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
audiomanage.adjustVolume(AudioManager.ADJUST_RAISE, 0);
volume = audiomanage.getStreamVolume(AudioManager.STREAM_RING);
if(volume<7){
volume++;
audiomanage.setRingerMode(volume);
}
}
});
声音控制的程序流程图:
开始
N 单击事件,
YN
获取系统当前声音声音增,
YY
声音是否为0,获取系统当前声音
N
声音volume减1声音是否为7,
Y N
声音volume加1
结束
图2.311 声音控制流程图
7
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) {
8
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);//讲拖动的进度传进Service
sendBroadcast(i);
sb.setProgress(progress);
}
}
});
}
2.34 音乐播放列表模块
音乐播放列表由activity组件是实现,能够对当前android手机模拟器sd卡中MP3音乐文件进行读取和显示,包括歌曲名、专辑、歌曲时间以及歌手名。用户可以选择想要播放的音乐对其播放。
其关键代码如下:
private List