您的位置:新文秘网>>毕业相关/毕业论文/文教论文/>>正文

毕业论文:ANDROID音乐播放器

发表时间:2013/7/19 20:12:48
目录/提纲:……
一、首先对Android的架构,特点,以及开发平台环境进行介绍,
二、对Android多媒体类库MediaPlayer进行综合论述
三、播放器设计及功能实现
四、对播放器进行功能测试和总结
二、MediaPlayer介绍10
二、MediaPlayer介绍
……
题目: ANDROID音乐播放器
院(系)    信息与工程学院    
专 业    电子信息工程    
届 别     2012届


摘 要
随着Android平台的兴起,使用Android技术开发手机软件受到越来越多人的青睐。在此背景下,本课题是开发一款Android平台的音乐播放器。
本文主要围绕以下几个方面进行研究:
一、首先对Android的架构,特点,以及开发平台环境进行介绍,
二、对Android多媒体类库MediaPlayer进行综合论述
三、播放器设计及功能实现
四、对播放器进行功能测试和总结
本设计实现的主要功能是显示播放列表,播放Mp3,Wav等多种格式的音乐文件,控制播放,暂停,停止,上一曲,下一曲,音量调节,歌曲播放进度条,播放时间和显示歌曲信息等多种播放功能,界面简明,操作简单。


关键词 :Android;MediaPlayer;测试

ABSTRACT


With the rise of the Android platform , the number of people of all ages using the Android technology to develop mobilesoftware are increasing quickly. In this conte*t,this project is to make an Android platform music player.
This article is mainly around the following research:
1, Firstly, the Android s background, structure , characteristics , and development platform environment are described.
2,Comprehensive discussion on the Android multimedia class library MediaPlayer.
3,The design and functionality of the player program to achieve.
4, The player function test and summary.
The main function of this design is to play Mp3and Wav,show the playlist, multiple formats of music files, control playback, pause, stop, previous song, ne*t song, volume control, song playback progress bar, play time, and display the song letter and so on.Its easy to operate.


keywords: Android,MediaPlayer,Test

目录
摘 要 1
ABSTRACT 2
目录 3
引 言 4
1课题背景和意义 4
2论文写作的目的 4
一. Android开发平台介绍与平台的搭建 5
1.1Android简介 5
1.2Android的系统架构 5
1.3系统特点 7
1.4 Android开发环境的搭建 8
二、 MediaPlayer 介绍 10
三 .播放器设计与功能实现 13
3.1总体功能图和流程图 13
(1) 功能图 13
(2)功能流程图 13
3.2 用户界面模块 14
(1)歌曲列表 14
(2)播放界面 15
3.3功能实现方法 16
(1)播放列表的显示和响应 17
(a)通过数据共享存储Content Providers机制 获取歌曲信息 17
(b)把音乐以列表方式显示出来 18
(c)列表点击事件处理 20
(2)播放歌曲界面显示和控制 21
(a)获取播放哪首歌曲的信息 21
(b)歌曲界面显示和界面点击响应 2
……(新文秘网https://www.wm114.cn省略2861字,正式会员可完整阅读)…… 

(4) Linu*内核
Android的核心系统服务依赖于Linu* 2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linu*内核也同时作为硬件和软件栈之间的抽象层。
Android 更多的是需要一些与移动设备相关的驱动程序。
1.3系统特点
* 开放性 。
Google 与开放手机联盟合作开发了 Android , Google 通过与运营商 、设备制造商 、 开发商和其他有关各方结成深层次的合作伙伴关系 , 希望通过建立标准化 、 开放式的移动电话软件平台 , 在移动产业内形成一个开放式的生态系统 。

* 应用程序无界限 。
Android上的应用程序可以通过标准API 访问核心移动设备功能。通过互联网应用程序可以声明它们的功能可供其他应用程序使用。
* 应用程序是在平等的条件下创建的。
移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
* 应用程序可以轻松地嵌入网络 。
应用程序可以轻松地嵌入 HTML 、 JavaScript和样式表,还可以通过 WebView 显示网络内容。
* 应用程序可以并行运行。
Android 是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引起注意。

1.4 Android开发环境的搭建
为了在PC主机上得到Android的开发环境,我们选择在Windows操作系统中进行对Android开发环境的搭建,具体步骤如下:
(1)JDK安装
首先下载JDK,按照提示安装成功后,最重要的是进行环境变量的配置,步骤如下:我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
Java_HOME值为:C:\Program Files\Java\jdk1.7.0_03(安装JDK的目录)
CLASSPATH值为:.(就是当前目录);%Java_HOME%lib\tools.jar;%Java_HOME%\lib\dt. jar;%Java _HOME%\bin;
Path值:添加C:\Program Files\Java\jdk1.7.0_03\bin;
(2)Eclipse安装可下载一个绿色版的Eclipse,无需安装,和安装版一样都能为Android开发提供功能。
(3)ADT安装
ADT实际上是一个工具,它可以连接sdk和Eclipse,帮助Eclipse找到sdk打开Eclipse界面,进入进入菜单中的“Help”-> “Install New Software”,点击Add按钮弹出对话框要求输入Name和Location,完成之后,选择Window >Preferences;在左边的面板选择Android,然后在右侧点击Browse;并选中SDK路径,本机为;D:\Android\android-sdk_r17-windows;点击Apply、OK。配置完成。
(4)Android SDK安装
打开eclipse 点击已经安装的插件SDK Manager运行Android SDK Manager.e*e,显示图片如下所示,点击Available Package。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。



(5)创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD,步骤如下:
在Eclipse中,选择Windows > Android SDK and AVD Manager,点击左侧面板的Virtual Devices,再右侧点击New,填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值,点击CreateAVD即可完成创建AVD。





二、 MediaPlayer 介绍
MediaPlayer类可以用来播放音频、视频和流媒体,MediaPlayer包含了Audio和Video的播放功能,音频和视频的播放过程也就是MediaPlayer对象的状态转换过程。
(1)先是介绍下MediaPlayer的生命周期,如下图所示。

(2)MediaPlayer的状态介绍
(1 创建与销毁
MediaPlayer通过静态方法MediaPlayer.create()或者new操作符来创建。
使用create方法创建的MediaPlayer对象处于prepared状态,系统已经根据阐述的资源ID调用了setDateSourse()和prepare()方法;
使用new方法创建的MediaPlayer对象处于idle状态,调用reset()方法后的MediaPlayer状态也是idle状态。对于通过调用reset()方法进入idle状态的MediaPlayer对象调用如下方法,会导致底层系统调用OnErrorListener.onError(),进入到error状态。
getCurrentPosition()、getDuration()、getVideoHeight()、getVideoWidth()、setAudioStreamType(int)、setLooping(boolean)、setVolume(float,float)、pause()、start()、stop()、seekTo(int)、prepare()、prepareAsync()。
当MediaPlayer对象不再被使用时,最好通过release()方法来释放资源,使其处于结束End状态,如果MediaPlayer对象释放硬件加速器等资源,随后创建的MediaPlayer对象就无法使用这唯一的资源,甚至导致创建失败,造成不必要的错误。当MediaPlayer对象处于结束状态时,便不能再使用,无法回到其他状态。
如果发生了错误,MediaPlayer对象将处于错误状态,可以使用reset()方法来恢复错误。
(2 初始化
1.调用重载的setDataSource()方法使MediaPlayer对象进入到initialized状态2.调用prepare()或者prepareAsync()方法将MediaPlayer对象进入到prepared状态。此时可以调用MediaPlayer的相关方法设置播放器属性。
(3 播放暂停和停止
调用start()方法进入到started状态,用isplaying()方法判断 MediaPlayer是否处于started状态。
调用pause()方法MediaPlayer进入到paused状态
调用stop()方法MediaPlayer进入到stopped状态。一旦MediaPlayer进入到stopped状态,必须调用prepare()方法使之进入到prepared状态,以便复用MediaPlayer对象,再次播放多媒体文件。
(4快进快退
调用seekTo()方法调整MediaPlayer时间实现快进快退功能。seekTo()方法可以在started paused prepared playbackCompleted 状态下调用。
(5 播放结束
如果播放自然结束,MediaPlayer可能进入两种状态。当循环播放模式设置为true时,MediaPlayer对象保持started状态不变;当循环播放模式设置为false时,MediaPlayer对象的onCompletionListener.onCompletion()方法被调用,MediaPlayer对象进入到playbackCompleted状态。此时再次调用start()方法重新播放多媒体文件。
(6 错误处理
MediaPlayer对象注册 onErrorListener监听器监听错误信息。当错误发生时,onErrorListener.onError()方法被调用,MediaPlayer对象进入到error状态。用reset()方法可以复用MediaPlayer对象并从错误中恢复过来,再次进入到idle状态。如果在不恰当时间调用了某方法会抛出IllegalStateE*ception异常。可以用try/catch块捕捉到此类编程错误。
( 7 其他注意事项
(A 任何MediaPlayer对象都必须先处于准备状态,然后才开始播放。
(B 可以通过setLooping(Boolean)方法来设置是否循环播放。
表2-2 MediaPlayer类的常用方法
方法 说明
MediaPlayer
create
getCurrentPosition
getDuration
getVideoHeight
getVideoWidth
isLooping
isPlayer
pause
prepare
prepareAsync
release
reset
seekTo
setAudioStreamType
setDataSource
setDisplay
setLooping
setOnBufferingUpdateListener
setOnErrorListener
setOnVideoSizeChangeListener
setScreenOnWhilePlaying
setVolune
start
stop 构造方法
创建一个要播放的多媒体
得到当前播放位置
得到文件的时间
得到视频的高度
得到视频的宽度
是否循环播放
是否正在播放
暂停
准备(同步)
准备(异步)
释放MediaPlayer对象
重置MediaPlayer对象
指定播放的位置(以毫秒为单位的时间)
设置流媒体的类型
设置多媒体数据来源
设置用SurfaceHolder来显示多媒体
设置是否循环播放
网络流媒体的缓冲监听
设置错误信息监听
视频尺寸监听
设置是否使用SurfaceHolder来显示
设置音量
开始播放
停止播放
三 .播放器设计与功能实现
3.1总体功能图和流程图
(1)功能图










MP3播放器的设计分成了用户界面模块,播放模块
用户界面模块有播放界面,歌曲列表界;
播放模块是进入到播放界面后的功能设置,功能包括歌曲播放、暂停、停止,上一首、下一首,音量调节按钮,歌曲进度条等。
(2)功能流程图
根据MP3播放器的功能设计,制定出的的流程图如下:















3.2 用户界面模块
(1)歌曲列表
歌曲列表界面如下所示

有歌曲时 没歌曲时
UI 设计 要设置两个*ml布局文件
设置songabout.*ml来显示每一行显示的内容,(包括歌名,歌手,专辑,歌曲时间长度)
设置songlist.*ml来显示播放列表
布局文件代码片段如下所示
songlist.*ml 中 对代码解析如右边所示
ListView中 android:id="@+id/android:list" 系统给定的list 的ID
android:layout_width="fill_parent" 设置为填满父窗口
android:layout_height="fill_parent"
android:scrollbars="vertical" 设置播放列表为垂直方向Te*tView 中 android:id="@id/android:empty" 没歌曲时显示空列表
android:te*tSize="20sp" 设定显示字大小
android:te*t="@string/no_songs" 设置要显示的字
播放列表显示的时候ListView和TestView中只能显示一个,当播放列表有歌曲的时候显示ListView,没歌曲的时候显示Te*tView。这是由于吧Te*tView的id设为了android:empty,当没有数据显示的时候,id为android:empty的view自动被显示。
songabout.*ml 设置歌名歌手专辑在界面的左边,歌曲总时间设置在右上角
用相对布局来设定各个控件的位置比较方便,可以控制各个控件之间的相对位置关系。
布局文件代码片段如下所示 对代码的注释如右边所示
android:id="@+id/track_name" 设置歌名id
android:singleLine="true" 设置单行显示
android:id="@+id/artist" 设定歌手id
android:layout_below="@+id/track_name"设置歌手信息显示在歌名的底下
android:id="@+id/album" 设定专辑id
android:layout_below="@+id/artist"
android:id="@+id/duration" 设定歌曲总时间的id
android:layout_alignParentRight="true"歌曲总时间设置在右上角
(2)播放界面
歌曲播放界面如下图所示

播放界面中设置了
1 显示的歌曲信息(歌名歌手专辑)
2 歌曲播放控制按钮(开始暂停停止上一曲下一曲)
3 音量调节进度条
4 歌曲播放进度条,当前歌曲播放时间和歌曲总时间
要用到一个布局文件 play.*ml ,play.*ml的布局文件结构如下






收藏《毕业论文:ANDROID音乐播放器》