武汉工程大学计算机科学与工程学院 毕业实习报告
android:layout_height=\ >
3.2程序音乐文件过滤
程序会对音乐文件夹进行扫描过滤,提取出后缀为.mp3的文件以供播放,文件过滤类的内容如下:
public class MusicFilter implements java.io.FileFilter{ @Override public boolean accept(File pathname) { boolean b = false; if(pathname.isDirectory()){ b = true; }else{ if(pathname.getName().endsWith(\ b = true; }else{ b = false; } } return b ; } }
3.3 程序界面Activity类的设计
程序的界面MusicTestActivity类是程序的主要部分,设计到界面所有控件的操作及设计、程序的流程控制及音乐播放的核心部分。MusicTestActivity类的大纲如下图3-2所示。
字段mediaPlayer是音乐播放的核心变量,进行音乐播放,处理器mHandle是对音乐
播放流程进行管理的变量,然后六个监听器是对按钮及进度条的变化进行及时响应,剩下的都是辅助标记变量,标记当前播放信息,以及控制参数信息。
- 11 -
武汉工程大学计算机科学与工程学院 毕业实习报告
图3-2 MusicTestActivity类的设计
3.4 音乐播放核心代码
整个程序的运转都是围绕音乐播放进行的,进行了流程控制及异常处理等多个阶段,而播放的核心是以下代码:
- 12 -
武汉工程大学计算机科学与工程学院 毕业实习报告
private void playMusic(String path){
try {
mediaPlayer.reset();//先重置一下
mediaPlayer.setDataSource(path);//设置音乐文件的路径 mediaPlayer.prepare();//准备
mediaPlayer.setLooping(true);//循环播放 mediaPlayer.start();//开始播放 //设置音乐拖动度的当前进度初始值
musicBar.setProgress(mediaPlayer.getCurrentPosition()); //设置音乐拖动条的最大值
musicBar.setMax(mediaPlayer.getDuration());
//System.out.println(\当前正在播放的歌曲时间是:\
+
mediaPlayer.getDuration());
//显示出来当前音乐的时间 tv.setText(
toTime(mediaPlayer.getCurrentPosition())
+
\
/
\
+
toTime(mediaPlayer.getDuration()));
//当歌曲开始播放时.线程也开始运行 this.startProgressUpdate();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) { }
e.printStackTrace();
}
mediaPlayer是设计到硬件播放的变量,多以进行了完善的异常处理,同时获取文件的长度信息。
- 13 -
武汉工程大学计算机科学与工程学院 毕业实习报告
第四章 程序设计结果及测试分析
4.1 程序运行效果图
如图4-1,是程序运行的效果图。
图4-1 程序运行效果图
经过在手机上运行,程序可以流畅地播放音乐,无卡顿现象,可以从音乐列表的第一栏播放到最后一栏,实时准确地显示播放进度信息,并调整控制音量大小。按钮上一曲、下一曲及停止都可以正确地作用,暂停按钮在音乐播放的时候可以正确显示并作用,当被点击之后,即显示为播放按钮,此时点击该按钮也可以正确播放音乐。
经测试,最终得到的程序可以在手机上运行,并无任何bug及程序不响应现象。
4.2 程序调试过程
ADT工具附有LogCat工具,在函数的开始结束及分支处设置特定文字标记内容,即可以在LogCat工具中打印调试内容,这对于bug的判断及追踪有很大帮助,并了解程序的运行流程。图4-2是LogCat工具使用的截图。
图4-2 LogCat工具使用的截图
- 14 -
武汉工程大学计算机科学与工程学院 毕业实习报告
总 结
由于对android的接触较少,所以也遇到了一些问题,无论是哪种语言首先要有自己的思路,接下来就是通过语言的实现。我主要遇到android的四大组件的理解和使用,刚开始不知道如何用相关的组件,而且android的组件相当的多,就老师上课讲的相关知识比较少,对于我们初学者学习比较困难,而且,只是不是那么的连贯和详细,上课的时间只是跟上老师再敲代码,实现一个具体的功能,但是不有真正的弄懂它的使用方法,所以,我们在课设中出现很多问题。
- 15 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库android安卓音乐播放器毕业实习报告+实习日记(4)在线全文阅读。
相关推荐: