2012-09-05 55 views
0

我玩使用Android的默認媒體播放MP3聲音,我的行走低於媒體播放器問題,而不斷點擊按鈕?

MediaPlayer mp=MediaPlayer.create(hello.this,R.raw.abc); 
      if(mp!=null) 
      { 
       mp.start(); 
      } 

的聲音,我需要在同一按鈕點擊播放同樣的聲音代碼。當我點擊連續按鈕後,一段時間的聲音不工作,我得到錯誤MediaPlayer(7395):錯誤(-19,0)。

是否有身體有辦法針對此問題, 請給我

預先感謝。

+0

禁用按鈕,直到媒體播放器播放完成,或者您可以設置當前位置到每一個你的按鈕點擊 – rajpara

+0

時間0感謝您的回覆是的,我們可以做到這一點,但我認爲這不是解決這個問題的正確方法。我已經找到解決這個問題,我也在這裏添加代碼.. – Hasmukh

回答

2

呼叫

mp.reset(); 

因爲曾經一次你decalaring對象

或一流水平的MediaPlayer對象聲明

+0

這是正確的答案恕我直言。 – dhaag23

0

讓媒體播放器的全局變量,並嘗試這種方式

  MediaPlayer mp; 

      if (mp!=null) { 
       mp.stop(); 
       mp.release(); 
      } 
      mp= MediaPlayer.create(hello.this,R.raw.abc); 
      mp.start(); 
0
mp = new MediaPlayer(); 
    mp.create(this, R.raw.testmed); 
    mp.setVolume(100, 100); 
    mp.setOnPreparedListener(this); 
    mp.prepare(); 

然後,你需要定義這一點,它應該工作:針對此問題

public void onPrepared(MediaPlayer player) { 
     mp.start(); 
    } 
0
you can play music like below 

// for play the song 

    MediaPlayer mp = new MediaPlayer(); 

       try 
       {     
        mp.reset(); 
        mp.setDataSource(songPath);       
        mp.prepare(); 
        mp.start();      
        btnPlay.setBackgroundResource(R.drawable.img_btn_pause);     

       } catch (IOException e) { 
         Log.v(getString(R.string.app_name), e.getMessage()); 
       } 
0

我已經找到了解決方案。我有正確使用下面的代碼這個問題,也可以幫助其他人。

感謝

電話方法一樣

PlaySound(R.raw.abc); 

//方法

private void PlaySound(int Sound_id) 
    { 
     mplayer = MediaPlayer.create(Act_Oceanwaves.this,Sound_id); 
     if(mplayer!=null) 
     {   
      mplayer.start(); 
     } 
     mplayer.setOnCompletionListener(new OnCompletionListener() 
     { 

      @Override 
      public void onCompletion(MediaPlayer mp) 
      {    
       mp.release(); 
      } 

     }); 


    } 
+0

如果你點擊你的按鈕兩次,然後兩次你的函數調用,兩次你的mplayer對象初始化兩次。 – rajpara

+0

實際上,我需要在差異按鈕點擊中播放不同的聲音,所以我認爲它會在完成語音後釋放。 – Hasmukh

+0

您的解決方案也是正確的。現在我已經使用我的解決方案來解決這個問題,即使我會遇到任何問題,然後我會嘗試你的方式。 – Hasmukh