MediaPlayer的使用

一,使用MediaPlayer 的几个 步骤 

(1)实例 化一个MediaPlayer 对象 

new MediaPlayer () ;

(2)设置数据源

setDataSource(filePath );

(3)准备播放

相当于对 MediaPlayer的状态进行设置。

Prepare();

(4)开始播放

Start();

(5)停止播放

Stop ();

(6)释放资源

Release()

二。主要构架

playBtn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(isPlaying){
					pause();   //如果正在播放,则暂停
				}else {
					if (audioPlayer==null)
						play();          //说明 之前 没有在播放状态 ,此时开始播放
					if (audioPlayer!=null)
						reStart();      //说明之 前是暂停状态 ,此时重新开始播放 
				}
			}
		});
		
		stopBtn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				stop();
			}
		});
	}

接下来是各个方法的实现 

	protected void stop() {
		// TODO Auto-generated method stub
		if (audioPlayer!=null){
			audioPlayer.stop();
			audioPlayer.release();
			audioPlayer=null;
		}
		playBtn.setText("PLAY");
	}

	protected void reStart() {
		// TODO Auto-generated method stub
		audioPlayer.start();
		isPlaying=true;
		playBtn.setText("PAUSE");
	}

	protected void play() {
		// TODO Auto-generated method stub
		if (audioPlayer==null)
			audioPlayer= new MediaPlayer();  //实例 化播放器
		String path= Environment.getExternalStorageDirectory().getAbsolutePath()
				+"/test.mp3";
		try {
			audioPlayer.setDataSource(path);
			audioPlayer.prepare();
			audioPlayer.start();
			//监听 是否播放完毕 ,完毕 则停止 
			audioPlayer.setOnCompletionListener(new OnCompletionListener() {
				@Override
				public void onCompletion(MediaPlayer mp) {
					// TODO Auto-generated method stub
					stop();
				}
			});;
		} 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();
		}
		playBtn.setText("PAUSE");
		isPlaying= true;
		
	}

	protected void pause() {
		// TODO Auto-generated method stub
		if (audioPlayer!=null){
			audioPlayer.pause();
		}
		isPlaying=false ;
		playBtn.setText("PLAY");
	}

注意:

一般是将停止音乐 放在onPause()中,如下:

  protected void onDestroy() {    
67            if (mp.isPlaying()) {    
68                mp.stop();    
69            }    
70            mp.release();    
71            super.onDestroy();    
72        }


你可能感兴趣的:(MediaPlayer的使用)