android之播放多媒体文件一(播放音频)
16lz
2022-06-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应用中集成YouTube视频播放功能
- Android(安卓)Service的使用方法 音乐播放器实例
- Android(安卓)setTag方法的key问题
- Unity调用高德地图API,获取定位信息(Android)
- Android(安卓)自动朗读(TTS)
- Android使用JNI实现Java与C之间传递数据
- Android中View和ViewGroup介绍
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用