标签:多媒体 音乐 android activity mediaplayer
多媒体播放的状态图:
音乐播放状态:Idle--setDataSource()-->Initialized--prepare()-->Prepared--start()-->Started[-->stop()-->Stoped]--pause()-->Paused--start()-->Started...
public class MainActivity extends Activity implements OnClickListener { private Button start, pause, stop, restart; private MediaPlayer player; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button) findViewById(R.id.bt_start); pause = (Button) findViewById(R.id.bt_pause); stop = (Button) findViewById(R.id.bt_stop); restart = (Button) findViewById(R.id.bt_restart); start.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); restart.setOnClickListener(this); initMediaPlayer(); } private void initMediaPlayer() { // TODO Auto-generated method stub //初始化多媒体播放 player = new MediaPlayer(); try { //设置播放的音乐文件(这里指定为sdcard的根目录下的smile.mp3音乐文件) player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/smile.mp3"); //准备就绪 player.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(); } //音乐播放完毕执行的方法 player.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "播放完毕!", 0).show(); } }); //音乐播放出错所执行的方法 player.setOnErrorListener(new OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "播放出错!", 0).show(); return false; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.bt_start: //播放音乐 player.start(); break; case R.id.bt_pause: //暂停播放 player.pause(); break; case R.id.bt_stop: //停止播放 player.stop(); break; case R.id.bt_restart: try { //重新开始播放,先设置到准备就绪状态 player.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } player.seekTo(0);//设置从头开始播放 player.start();//开始播放音乐 break; default: break; } } }
<span style="white-space:pre"> </span>//音频播放常用方法: player.reset();//重置player player.release();//释放player player.setLooping(true);//设置是否循环播放 player.getDuration();//获取音乐播放时长 player.getCurrentPosition();//获取当前播放的位置的时间 player.seekTo(10);//跳到指定的时间播放 player.isLooping();//获取当前播放音乐是否循环播放 player.isPlaying();//获取当前播放器是否正在播放 setOnCompletionListener() onCompletion(MediaPlayer mp)mp;//音乐播放完毕执行的方法 setOnErrorListener() onError() //音乐播放出错所执行的方法
标签:多媒体 音乐 android activity mediaplayer
原文地址:http://blog.csdn.net/chaoyong918/article/details/42647213