音频播放主要api
MediaPlayer. setDataSource
MediaPlayer.prepare
MediaPlayer.start
MediaPlayer.stop
示例
1 import android.app.Activity; 2 import android.media.MediaPlayer; 3 import android.media.MediaPlayer.OnCompletionListener; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.view.View.OnClickListener; 7 import android.widget.Button; 8 9 /* 10 * 播放音频示例 11 */ 12 13 public class Main extends Activity implements OnClickListener,OnCompletionListener 14 { 15 /* 16 * 不需要权限 17 */ 18 //播放音频 第1步,OnCompletionListener 播放完成接口 19 20 //播放音频 第2步, 声明相关成员 21 private MediaPlayer mediaPlayer;//用来播放音频文件 22 private Button btnPause; 23 @Override 24 public void onCreate(Bundle savedInstanceState) 25 { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.main); 28 29 30 //播放音频 第3步,播放相关的按钮 31 Button btnStart1 = (Button)findViewById(R.id.btnStart1);//播放资源目录raw下音频文件 32 Button btnStart2 = (Button)findViewById(R.id.btnStart2);//播放SD卡上的音频文件(/sdcard/music.mp3) 33 34 Button btnStop = (Button)findViewById(R.id.btnStop); 35 36 btnPause = (Button)findViewById(R.id.btnPause); 37 38 btnStart1.setOnClickListener(this); 39 btnStart2.setOnClickListener(this); 40 btnStop.setOnClickListener(this); 41 btnPause.setOnClickListener(this); 42 43 } 44 /* 45 * 播放按钮事件. 46 */ 47 //播放音频 第4步,开始播放,这里有两种情况,播放raw下的,和sdcard下的 48 public void onClick(View view) 49 { 50 try 51 { 52 switch (view.getId()) { 53 case R.id.btnStart1: 54 /* 55 * 播放资源目录raw下音频文件 56 * 注意raw下的音频文件可直接播放,不用先找到raw目录, 57 * raw下的资源直接打包到应用目录下. 58 */ 59 60 //播放raw下音频 第1步, 构造MediaPlayer 61 mediaPlayer = MediaPlayer.create(this, R.raw.music); 62 63 //播放raw下音频 第2步,设置回调接口 64 mediaPlayer.setOnCompletionListener(this); 65 66 //播放raw下音频 第3步,开始播放,注意,raw下的不用prepare,sd 卡下的才用prepare 67 //MediaPlayer.create(this, R.raw.music)内已经prepare 68 mediaPlayer.start(); 69 70 break; 71 case R.id.btnStart2://播放SD卡上的音频文件(/sdcard/music.mp3) 72 73 //播放sdcard下音频 第1步,构造MediaPlayer 74 mediaPlayer = new MediaPlayer(); 75 //播放sdcard下音频 第2步 76 mediaPlayer.setDataSource("/sdcard/music.mp3"); 77 //播放sdcard下音频 第3步 78 mediaPlayer.prepare(); 79 //播放sdcard下音频 第4步 80 mediaPlayer.start(); 81 break; 82 case R.id.btnPause: 83 //播放音频 第5步,暂停 84 if(mediaPlayer != null) 85 { 86 if("播放".equals(btnPause.getText().toString())) 87 { 88 mediaPlayer.start(); 89 btnPause.setText("暂停"); 90 91 } 92 else if("暂停".equals(btnPause.getText().toString())) 93 { 94 mediaPlayer.pause(); 95 btnPause.setText("播放"); 96 } 97 } 98 break; 99 case R.id.btnStop: 100 //播放音频 第6步,停止 101 if(mediaPlayer != null) 102 { 103 if(mediaPlayer.isPlaying()) 104 mediaPlayer.stop(); 105 } 106 break; 107 default: 108 break; 109 } 110 } 111 catch (Exception e) { 112 } 113 } 114 115 /* 116 * from OnCompletionListener 播放完成接口 117 * 播放完成回调 118 */ 119 //播放音频 第7步,播放完毕,释放资源 120 @Override 121 public void onCompletion(MediaPlayer mp) 122 { 123 mp.release(); 124 setTitle("资源已经释放"); 125 } 126 }