搜档网
当前位置:搜档网 › 黑马程序员安卓教程:音乐播放器之常见API

黑马程序员安卓教程:音乐播放器之常见API

黑马程序员安卓教程:音乐播放器之常见API
黑马程序员安卓教程:音乐播放器之常见API

黑马程序员安卓教程:音乐播放器之常见API

Android自带多媒体播放器,下面我们通过一个具体的DEMO来实现播放音乐的一系列功能即播放,暂停,继续,重播,停止。具体实现如下:

1.新建工程

【File】→【new】→【Android Application Project】命名为:14_音乐播放器常见API

2.编写布局

根据需求编写布局文件,效果如图1-1所示:

图1-1所示

图1-1对应的xml文件如例1-1:

例1-1

例1-1在布局页面上定义了一系列功能按钮,当点击按钮时便执行相对应的点击事件,各个按钮对应的点击事件是MediaPlayer生命周期的函数,对于MediaPlayer生命周期的回调函数,我们在后边的文档有详细的介绍。在播放音乐时,进度条SeekBar动态显示播放的进度。

3.编写点击事件

当用户点击播放时,其点击事件play代码如例1-2所示:

例1-2在onCreate方法中创建了一个MediaPlayer对象,然后在play方法中调用音乐播放的API来实现音乐的播放。

当用户点暂停时,其点击事件pause代码如例1-3所示:

例1-4

SeekTo方法将播放时间设置为最开始,从而实现重新播放。

当点击停止时,其点击事件stop代码如例1-6所示:

例1-6

4.编写播放进度

进度条seekbar的进度随着播放的进度而改变,在之前的文件已多次阐述过seekbar的用法。我们知道,若要更新seekbar的进度,我们需要调用seekbar的setProgress(int progress)方法和setMax(int max)方法。

音乐在播放时,程序肯定在执行play方法,在这个方法中我们需要动态的更新播放进度,代码如例1-7:

取当前已经播放的进度以及播放的总进度。在获取当前播放进度时,调用mediaPlayer的getCurrentPosition 方法;在获取播放音乐的总进度时,调用mediaPlayer的getDuration方法。对于这两个方法,参考文档如图1-2所示:

图1-2所示

由图1-2可知:getCurrentPosition 方法返回了一个int 类型的值,这个值代表了当前播放时间的位置。getDuration 方法返回了一个int 类型的值,这个值表示播放整首音乐的时间。

定时器定时会更新seekbar 的UI ,当Activity 生命周期结束时,我们要销毁该定时器,代码如例1-8所示:

例1-8

运行程序,此时有如图1-3,图1-4所示效果:

图1-3所示

播放一段时间

暂停

1-4所示

一段时间后,重新播

由暂停到继续播放

相关主题