操作很简单,主要有三种方式,一下我简单介绍一下。。。
一、将音频保存在res下的raw文件下进行播放
MediaPlayer.create(mContext, R.raw.ding);
这里是最简单的调用,其中根据资源id播放音频文件,这种方式不需要再调用.prepare()方法,而直接调用.start()方法就可以播放了,而且也不需要new对象,.create()方法直接就
生成了对象,如:二、播放项目assets文件下的音频文件MediaPlayer mMediaPlayer = MediaPlayer.create(mContext, R.raw.ding);
但是自这种方法一定要注意,所播放的音频文件大小不能超过1M,否则会报错 MediaPlayer :create failed 并且返回对象为null
mMediaPlayer = new MediaPlayer(); AssetManager am = mContext.getAssets(); try { mMediaPlayer.setDataSource(am.openFd("ding.mp3").getFileDescriptor()); mMediaPlayer.prepare(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }其中ding.mp3是在你索要播放的文件名称,但是这种方式必须要先调用.prepare()再调用.start()方法
三、也是播放res下raw的音频文件,但是方式不同
注意其中注释掉的一句表示是否循环播放,如果不需要可以干掉try { mMediaPlayer = new MediaPlayer(); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_RING); //set streaming according to ur needs mMediaPlayer.setDataSource(mContext, Uri.parse("android.resource://com.jbh.facerecog/raw/" + "ding")); // mMediaPlayer.setLooping(true); mMediaPlayer.prepare(); } catch (Exception e) { System.out.println("Unable to TunePlay: startRingtone(): " + e.toString()); }
总结:上述是如何播放音频文件,接下来就可以通过设置OnCompletionListerner()监听回调onCompletion()方法来监听播放完成后进行下一步操作