android之播放多媒体文件一(播放音频)
16lz
2021-01-23
android之播放多媒体文件一(播放音频)
在Android 中播放音频文件一般都是使用MediaPlayer 类来实现的,它对多种格式的音
频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了
MediaPlayer 类中一些较为常用的控制方法。
简单了解了上述方法后,我们再来梳理一下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
相关的资源释放掉。
这样一个简易版的音乐播放器就完成了,现在将程序运行到手机上,界面如图所示。
点击一下Play 按钮就可以听到优美的音乐了,然后点击Pause 按钮声音会停住,再次点
击Play 按钮会接着暂停之前的位置继续播放。这时如果点击一下Stop 按钮声音也会停住,
但是再次点击Play 按钮时,音乐就会重头开始播放了。
更多相关文章
- Android setTag方法的key问题
- Android RSA与Java RSA加密不同标准产生问题的解决方法
- Android sdk manager不能更新下载缓慢的解决方法
- android截屏代码实现方法
- Android Cannas.drawTextView 方法坐标问题
- Android开机自启动程序设置及控制方法
- Android随笔之——Android时间、日期相关类和方法
- Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用