2013-12-15 172 views
0

如何在我的应用中重播.mp3?Android媒体播放器重播选项

mMediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.splashsound); 
    mMediaPlayer.setLooping(true); 
    Button myButtonOne = (Button) findViewById(R.id.songon); 
    myButtonOne.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 


        mMediaPlayer.start(); 

     } 
    }); 


    Button myButtonTwo = (Button) findViewById(R.id.songoff); 
    myButtonTwo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(mMediaPlayer.isPlaying()){ 
       //mMediaPlayer.stop(); 
      mMediaPlayer.release(); 
      mMediaPlayer = null; 
      } 

     } 
    }); 

谁能告诉我什么,我做错了什么:使用start方法

这里是代码段,我不能回放MP3?

回答

1

如果你想重播mp3为什么release并设置为null你的媒体播放器?

我想那是你的问题!

只需停止并重新启动它,而不必释放媒体播放器实例。

1

要重播MP3曲目试试这个:

private void playSong(int songIndex) { 
     // Play song 
     try { 
      mp.reset(); 
      mp.setDataSource(songsList.get(songIndex).get("songPath")); 
      mp.prepare(); 
      mp.start(); 
     } catch (IllegalArgumentException e) { 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

或者没有调用reset():

mediaPlayer.setLooping(true); 
+0

为什么复位如果我们想再次播放同一首歌曲? –

+1

当您调用mediaPlayer.reset()时,mediaPlayer进入IDLE状态。对于播放,您应该在开始之前进行初始化准备。 http://developer.android.com/reference/android/media/MediaPlayer.html –

+0

我不认为因为我们再次播放同一首歌曲,所以甚至不需要“重置”。 –