2013-12-15 221 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

我不認爲因爲我們再次播放同一首歌曲,所以甚至不需要「重置」。 –