2015-09-22 29 views
0

所以我在Android Studio中創建了一個簡單的聲卡應用程序,並使用ADB運行它在我的手機上進行測試。它工作得很好,但我的問題是當我點擊一個按鈕來播放聲音片段時,有一秒鐘的延遲,然後我可以再按一次,這裏的聲音。我希望能夠儘可能快地按下按鈕並讓它播放聲音儘可能少的延遲安卓按鈕響應時間

我使用按鈕的另一個問題是,我想要它停止播放一個聲音,如果我按另一個按鈕

所有我現在使用的是Mediaplayer classsetOnClickListener。這非常簡單,沒有很多代碼行。我覺得我已經試圖在文檔中看到這一點,但我不確定我的問題是否正確,因此有關我可以在網上搜索自己的更詳細問題的任何建議將不勝感激。

我不知道這是由亞行或使用設備的創建此滯後,因此任何個人的經驗將不勝感激,以及一個問題。

****** EDIT ****** 對於那些要求代碼。

//set up the button sound 
    MediaPlayer mpButtonClick = MediaPlayer.create(this, R.raw.sound); 
    Button button = (Button) findViewById(R.id.button); 
    //button 1 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mpButtonClick.start(); 
     } 
    }); 

我有5個按鈕,它們都是這樣工作的。我只是播放資源文件夾中的聲音,其中4個剪輯長度不到2秒。

由於我是新來這個,我不知道的AsyncTask和的Soundpool我會尋找到那些現在的。

******** EDIT 2 **********

所以做了一些研究,我已經決定以後的Soundpool將最有可能是什麼最適合我的需要。但我已經看到,它爲其他開發人員帶來了問題here和一般的網絡。我也不使用ogg文件,人們認爲這些文件更有可能在不同設備上使用SoundPool。

asynctask聽起來像它可以完成工作,但我不相信它的目的是以這種方式使用。

我也下載從App Store,我覺得我想我的類似於那是最好的在Android環境,但與Unity引擎並沒有顯六位一體的應用程序。因爲我對此有一些經驗,所以我相信我會走這條路,謝謝大家。

+0

我不是很懂得玩Android的媒體,但會在asynctask中運行聲音可能解決這個問題? –

+1

請發佈您的代碼,以便我們知道您已經嘗試了什麼。 – Sector95

+0

Android令人遺憾地以其不穩定的音頻響應而聞名。 –

回答

0

使用SoundPool,而不是...你可以預先加載的聲音,它會告訴你有重疊的聲音。

更多information here