码迷,mamicode.com
首页 > 移动开发 > 详细

Android多媒体播放之音乐播放状态和步骤

时间:2015-01-12 22:39:57      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:多媒体   音乐   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多媒体播放之音乐播放状态和步骤

标签:多媒体   音乐   android   activity   mediaplayer   

原文地址:http://blog.csdn.net/chaoyong918/article/details/42647213

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!