2013-04-11 24 views
-1

我想爲我3歲的人創造一個簡單的音板,並且遇到了相當的困境,我以爲我已經找到了最好的方式來編碼音板,但遇到問題時,按鈕被點擊什麼都沒有發生?「完美」的代碼,沒有輸出安卓(Eclipse)聲卡

該代碼是乾淨的,沒有錯誤的跡象,所以我在我的智慧結束。

非常感謝您的幫助。

public class Player extends Activity implements OnClickListener { 

     MediaPlayer mp; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      Button Button1 = (Button)findViewById(R.id.Button1); 
      Button1.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      mp = MediaPlayer.create(this, R.raw.splashsound); 
      mp.start(); 
      while (mp.isPlaying()){ 

      }; 

      mp.release(); 
     } 
    }; 
+0

你調試過嗎?它執行'onClick'方法嗎? – iberbeu 2013-04-11 12:50:16

+2

你正在忙於'onClick'的主線程...刪除此代碼:'while(mp.isPlaying()){}; mp.release();'你應該找到更好的發佈MediaPlayer的地方......以及'mp.prepare();'? – Selvin 2013-04-11 12:50:31

+0

點擊按鈕時點擊是否被註冊? – Rarw 2013-04-11 13:03:34

回答

0

您需要設置與setAudioStreamType()

mp = MediaPlayer.create(this, R.raw.ursoundboardtrack); 
mp.setAudioStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE); 
mp.prepare(); 
mp.start(); 
+0

我已經保留了我最初張貼的代碼,但將我的聲音文件更改爲.wav,但按下按鈕時仍然沒有聲音? – TheWelshOne 2013-04-11 15:31:01

+0

檢出MediaPlayer.setOnErrorListener()方法。創建一個簡單的偵聽器,將錯誤消息打印到日誌中,因爲音頻播放可能會失敗的原因很多。 – cyroxis 2013-04-12 11:41:53

+0

感謝您的支持 – TheWelshOne 2013-04-12 16:35:35

0

你已經確定你的splashsound處於.wav格式的語音串流?

如果再is'nt這個應用程序將永遠不會工作,因爲它需要在一個.wav格式不是一個mp3或者wma或任何其他類型的音頻格式,它是在一個.wav格式。

如果您splashsound是另一個音頻格式,但.wav,那麼你必須把它轉換爲.wav和其重新導入你的項目,並刪除舊的,並希望它應該工作: )

+0

我以爲任何事情,但一個.wav – TheWelshOne 2013-04-11 14:54:52

+0

不行我很抱歉,但它的錯誤方式.wav是唯一可以用於MediaPlayer的格式 – Mizzeeboy 2013-04-11 14:56:06

+0

,因爲您可以告訴我對Android /編程 – TheWelshOne 2013-04-11 14:59:58