媒体播放器播放两次

时间:2011-11-25 03:11:55

标签: android audio path media-player media

我有一个媒体播放器但是当选择另一个文件时它继续播放旧文件和新文件,所以它一次播放两个文件这里是我的onCreate方法

private MediaPlayer mediaplayer = new MediaPlayer();
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.songplaying);

// Getting Our Extras From Intent
 Bundle names = getIntent().getExtras();

// Getting Specific Data

 path = names.getString("pathkeyword");


 //Start Player
 try {
    playAudio(path);

} catch (Exception e) {
   e.printStackTrace();

}

这是播放音频的方法

 private void playAudio(String url) throws Exception{

  mediaplayer.release();
  mediaplayer.setDataSource(url);
  mediaplayer.prepare();
  mediaplayer.start();

2 个答案:

答案 0 :(得分:3)

当您开始播放歌曲时,请检查它是否正在播放,如果当前正在播放,则将其停止播放。

     if(player.isPlaying())
      {  
        mediaplayer.stop();
       } 
        mediaplayer.reset();

  mediaplayer.setDataSource(url);
  mediaplayer.prepare();
  mediaplayer.start();

无需释放仅在玩家不再需要时使用的player.player.release()。

每当活动破坏时你都必须使用stop()和release()方法。否则这么多玩家都会在后台运行。

答案 1 :(得分:-1)

尝试将此添加到oncreate方法,这样您就可以阻止新创建的音频

Mediaplayer M = Mediaplayer.create(this,R.row.audio file)

并制作一个像

这样的新功能
void my function {
    // call it here 
    m.start();
}