android之播放多媒体文件一(播放音频)

android之播放多媒体文件一(播放音频)

在Android 中播放音频文件一般都是使用MediaPlayer 类来实现的,它对多种格式的音
频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了
MediaPlayer 类中一些较为常用的控制方法。

android之播放多媒体文件一(播放音频)_第1张图片

简单了解了上述方法后,我们再来梳理一下MediaPlayer 的工作流程。首先需要创建出
一个MediaPlayer 对象,然后调用setDataSource()方法来设置音频文件的路径,再调用prepare()
方法使MediaPlayer 进入到准备状态,接下来调用start()方法就可以开始播放音频,调用pause()
方法就会暂停播放,调用reset()方法就会停止播放。
下面就让我们通过一个具体的例子来学习一下吧,新建一个PlayAudioTest 项目,然后
修改activity_main.xml 中的代码,如下所示:


布局文件中横向放置了三个按钮,分别用于对音频文件进行播放、暂停和停止操作。然
后修改MainActivity 中的代码,如下所示:

public class MainActivity extends Activity implements OnClickListener {
private Button play;
private Button pause;
第2 章先从看得到的入手,探究活动
335
private Button stop;
private MediaPlayer mediaPlayer = new MediaPlayer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = (Button) findViewById(R.id.play);
pause = (Button) findViewById(R.id.pause);
stop = (Button) findViewById(R.id.stop);
play.setOnClickListener(this);
pause.setOnClickListener(this);
stop.setOnClickListener(this);
initMediaPlayer(); // 初始化MediaPlayer
}
private void initMediaPlayer() {
try {
File file = new File(Environment.getExternalStorageDirectory(),
"music.mp3");
mediaPlayer.setDataSource(file.getPath()); // 指定音频文件的路径
mediaPlayer.prepare(); // 让MediaPlayer进入到准备状态
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.play:
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start(); // 开始播放
}
break;
case R.id.pause:
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause(); // 暂停播放
}
break;
case R.id.stop:
if (mediaPlayer.isPlaying()) {
mediaPlayer.reset(); // 停止播放
initMediaPlayer();
}
break;
default:
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
}


可以看到,在类初始化的时候我们就创建了一个MediaPlayer 的实例,然后在onCreate()
方法中调用了initMediaPlayer()方法为MediaPlayer 对象进行初始化操作。在initMediaPlayer()
方法中,首先是通过创建一个File 对象来指定音频文件的路径,从这里可以看出,我们需要
事先在SD 卡的根目录下放置一个名为music.mp3 的音频文件。后面依次调用了
setDataSource()方法和prepare()方法为MediaPlayer 做好了播放前的准备。
接下来我们看一下各个按钮的点击事件中的代码。当点击Play 按钮时会进行判断,如
果当前MediaPlayer 没有正在播放音频,则调用start()方法开始播放。当点击Pause 按钮时会
判断,如果当前MediaPlayer 正在播放音频,则调用pause()方法暂停播放。当点击Stop 按钮
时会判断,如果当前MediaPlayer 正在播放音频,则调用reset()方法将MediaPlayer 重置为刚
刚创建的状态,然后重新调用一遍initMediaPlayer()方法。
最后在onDestroy()方法中,我们还需要分别调用stop()和release()方法,将与MediaPlayer
相关的资源释放掉。
这样一个简易版的音乐播放器就完成了,现在将程序运行到手机上,界面如图所示。

android之播放多媒体文件一(播放音频)_第2张图片

点击一下Play 按钮就可以听到优美的音乐了,然后点击Pause 按钮声音会停住,再次点
击Play 按钮会接着暂停之前的位置继续播放。这时如果点击一下Stop 按钮声音也会停住,
但是再次点击Play 按钮时,音乐就会重头开始播放了。


 

你可能感兴趣的:(Android)