带歌词的音乐播放器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现思路:
利用xml文件布局实现的播放界面。设置了一个currentImage变量,并开始赋值为1,每点击一次播放按钮,currentImage 加1,然后判断currentImage%2,如果结果为零,将图片转换为暂停按钮,如果结果不为零,将图片转换为播放按钮。
代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
running =true;
thread =newThread(newUIUpdateThread());
thread.start();
}
currentImage++;
}
截图展示:
3.2 动态显示歌词模块
功能说明:
1,根据音乐播放的时间节点匹配歌词。
2,如果歌词与当前播放节点吻合lyricView中呈现。
<LinearLayout
android:layout_width="135dp"
android:layout_height="120dip"
android:orientation="vertical">
<View android:layout_width="wrap_content"
android:layout_height="25dip"/>
android:layout_height="10dip"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content
android:textColor="#FFFFFFFF"/>
</LinearLayout>
实现思路:
重写了TextView,先预将歌词存在lyricView 中,然后根据传进来的参数,不断动态的滚动显示预先存在的歌词文件,最后将lyricView将加入到布局文件中,作为一个组件使用。开启一个新线程,在线程中获取当前歌曲播放的具体位置,并以参数的方式传入到相应的歌词处理类中,动态的刷新歌词显示的视图。
</LinearLayout>
<com.example.lrcscrolldemo.LyricView
android:id="@+id/audio_lrc"
android:layout_width="match_parent"
android:layout_height="fill_parent"
/>
2,如果歌词与当前播放节点吻合lyricView中呈现。
(3)扫描歌曲
1,自动获取手机中存放歌曲文件的文件夹
2,用户勾选可能包含歌曲文件的文件夹选项
3,当用户点击扫描歌曲的按钮时,扫描勾选文件夹,将扫描的歌曲加入歌曲列表
(4)列表显示全部歌曲
1,手机中扫描得到的全部歌曲用listview显示在界面中间
<ImageButton
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="120dip"
android:scaleType="fitXY"
android:src="@drawable/start"/>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="120dip"
</LinearLayout>
3.1.2,
代码:
if(currentImage% 2 == 0) {
start.setImageResource(R.drawable.stop);
mp.pause();
}else{
start.setImageResource(R.drawable.start);
mp.start();
thread.start();
}
}
class UIUpdateThread implements Runnable {
@Override
public void run() {
while (running) {
if (!mp.isPlaying()) {
running = false;
thread.interrupt();
流程图:
Y
N
Y
代码:
private Thread thread = null;//定义一个线程监听歌曲播放的位置// 开线程用于获取当前播放时间轴
if (thread == null) {
thread = new Thread(new UIUpdateThread());
thread.start();
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content
android:textColor="#FFFFFFFF"/>
<View android:layout_width="wrap_content"
// System.out.println("mp.isPlaying()~~~"+time+"!!"+sleeptime+"!!");
if (sleeptime == -1)
return;
try {
Thread.sleep(sleeptime);
} catch (Exception e) {
e.printStackTrace();
2,当用户点击每一个列表项时,弹出一个对话框,提示几个选项,包括从列表中
移出,从文件中移出,查看歌曲信息。
3,界面下部,依次出现的是歌曲专辑按钮,歌曲信息,上一首,开始暂停,下一
首的图片按钮。
(5)列表显示我的最爱
1,当用户点击每一个列表项时,弹出一个对话框,提示几个选项,包括从列表中
移出,从文件中移出,查看歌曲信息。
privatePaint mPaint;
privatefloatmX;
privatePaint mPathPaint;
publicintindex = 0;
publicfloatmTouchHistoryY;
privateintmY;
privateintcurrentDuringTime;//当前歌词持续时间
山东建筑大学计算机科学与技术学院
综合训练说明书
题目:带歌词的音乐播放器
课程:移动设备软件开发
院(部):计算机科学与技术学院
专业:软件工程专业
班级:软件132班
学生姓名:刘超
学号:20131112054
指导教师:杨朝晖
完成日期:2015-07-06
带歌词的音乐播放器

现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。
privatefloatmiddleY;//Y轴中间
privatefinalintDY = 40;//每一行的间隔
publicfloatdriftx;//x偏移量
publicfloatdrifty;//y偏移量
}
if (!thread.isAlive()) {
System.out.println("~~~~~!thread.isAlive()");
running = false;
thread.interrupt();
thread = null;
thread = new Thread(new UIUpdateThread());
thread = null;
}
int time = mp.getCurrentPosition();//获取歌曲当前播放的位置,位置是int型的
int sleeptime = 100;
lyricView.updateindex(time);//将滚动歌词调整到与时间匹配的位置
mHandler.post(mUpdateResults);
}
}
}
}
Handler mHandler = new Handler();
Runnable mUpdateResults = new Runnable() {
@Override
public void run() {
lyricView.invalidate();// 更新视图
}
}
代码:publicclassLyricViewextendsTextView{
1.2模块划分

2
进入到音乐播放器内,查看是否有音乐列表,如果没有自动搜索歌曲并显示在列表界面中,如果没有侧滑列表界面,点击扫描歌曲,接入扫描歌曲界面,勾选文件夹,点击扫描歌曲按钮,将歌曲添加到歌曲列表中。添加完成后,歌曲显示在列表中,点击一个歌曲的列表项,歌曲播放,同时获取该专辑的图片以及歌曲名字以及歌手名字,显示在列表下方,然后点击item的下方的控件,弹出一个对话框,对话框中显示是否从列表中移出,点击是,移出,否,不进行任何操作,返回文件列表。点击歌曲专辑图片,跳转到歌曲播放界面,界面中部动态显示歌词,点击界面中的红心,将歌曲标识为最爱,点击下一曲按钮,歌曲播放下一首。
三、
3.1 音乐播放条目与音乐播放
功能说明:
1,按截图要求构建音乐播放器的界面:
顶部设计音乐播放条目:
歌曲所在专辑的图片。
歌曲名称与演唱者。
播放按钮
底部设计音乐播放过程中用于显示歌词的文本视图。
,2,当用户点击播放按钮后,音乐开始播放,图片切换成暂停按钮。
,3,当用户点击暂停按钮后,音乐暂停(非停止),图片切换成播放按钮
2,界面下部,依次出现的是歌曲专辑按钮,歌曲信息,上一首,开始暂停,下一
首的图片按钮。
3,在列表项底部显示共有多少首歌曲
(6)列出储存歌曲的文件夹
1,列表显示储存文件的文件夹都有哪些
2,当用户点击某一个文件夹时,列表显示每个文件夹内的所有歌曲
(7)设置功能
1,用户点击系统提供的图片进行背景更换
2,用户点击系统提供的颜色更换歌词颜色
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。
1.1系统功能需求
(1)音乐播放条目与音乐播放
android:orientation="horizontal"
>
<ImageView
android:layout_width="100dip"
android:layout_height="120dip"
android:src="@drawable/suduo"
android:scaleType="fitXY"/>
1,按截图要求构建音乐播放器的界面:
顶部设计音乐播放条目:
歌曲所在专辑的图片。
歌曲名称与演唱者。
播放按钮
底部设计音乐播放过程中用于显示歌词的文本视图。
2,当用户点击播放按钮后,音乐开始播放,图片切换成暂停按钮。
3,当用户点击暂停按钮后,音乐暂停(非停止),图片切换成播放按钮。
(2)动态显示歌词
1,根据音乐播放的时间节ቤተ መጻሕፍቲ ባይዱ匹配歌词。
N
Y
N
Y
N
Y
2
用户点击app的图标,进入到音乐播放器内,查看是否有音乐列表,如果没有自动搜索歌曲并显示在列表界面中,如果没有侧滑列表界面,点击扫描歌曲,接入扫描歌曲界面,勾选文件夹,点击扫描歌曲按钮,将歌曲添加到歌曲列表中。添加完成后,歌曲显示在列表中,点击一个歌曲的列表项,歌曲播放,同时获取该专辑的图片以及歌曲名字以及歌手名字,显示在列表下方,然后点击item的下方的控件,弹出一个对话框,对话框中显示是否从列表中移出,点击是,移出,否,不进行任何操作,返回文件列表。点击歌曲专辑图片,跳转到歌曲播放界面,界面中部动态显示歌词,点击界面中的红心,将歌曲标识为最爱,点击下一曲按钮,歌曲播放下一首。点击上部返回按钮再次回到列表界面,左侧滑界面进入到列表选择,点击设置选项,进入到设置界面,点击更换界面背景,及时更换界面背景,点击更换歌词颜色,及时更换歌词颜色。再次返回到列表选择界面,点击我的最爱将显示我曾经标记为红心的歌曲列表,点击文件夹,将显示为我的手机内存放歌曲的相应的文件夹。点击退出按钮,将退出该系统。
相关文档
最新文档