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 章先从看得到的入手,探究活动335private Button stop;private MediaPlayer mediaPlayer = new MediaPlayer();@Overrideprotected 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();}}@Overridepublic 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;}}@Overrideprotected 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 按钮时,音乐就会重头开始播放了。


 

更多相关文章

  1. Android setTag方法的key问题
  2. Android RSA与Java RSA加密不同标准产生问题的解决方法
  3. Android sdk manager不能更新下载缓慢的解决方法
  4. android截屏代码实现方法
  5. Android Cannas.drawTextView 方法坐标问题
  6. Android开机自启动程序设置及控制方法
  7. Android随笔之——Android时间、日期相关类和方法
  8. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用

随机推荐

  1. Python+PyQT5的子线程更新UI界面
  2. 第3章、第一个“Hello,world!”之Android
  3. AndroidStudio自定义注释模板笔记
  4. Android客户端实现图片轮播控件
  5. 微信授权APP第三方登陆(Android)
  6. Android之SqliteDatabase(MVP模式)实现用户
  7. Android(安卓)8.0通知权限的相关处理
  8. Android变声(SoundTouch)
  9. Android(安卓)多包名打包应用
  10. Android(安卓)View的位置参数