2011-08-17 163 views

回答

1

是指它由ID爲任何人有興趣在這個問題上,發現了這樣一個解決方案:

MediaPlayer mp = MediaPlayer.create(getApplicationContext(), Uri.parse("/system/media/audio/ui/Effect_Tick.ogg")); 
mp.start(); 

我裏面觸發此一個AsyncTask,我在那裏做視覺反饋雜事,在onExExcute()我畫「選擇」狀態,播放點擊聲音並等待300mS。在onPostExecute(),我重繪對象和免費資源,做工非常不錯,示例代碼:

private class FeedbackHandler extends AsyncTask<Void,Void,Void>{ 
    MediaPlayer mp; 

    @Override 
    protected Void doInBackground(Void... arg0) { 
    return null; 

    } 

    @Override 
    protected void onPostExecute(Void result) { 
    super.onPostExecute(result); 

    mp.release(); // free resources 
    mp=null; // help GC 
    myDrawUnselectedState(myObject); // draw normal state 
    ImageView iv = (ImageView) findViewById(R.id.myobjectcontainer); 
    iv.invalidate(); // mark UI for refresh 
    } 

    @Override 
    protected void onPreExecute() { 
    super.onPreExecute(); 

    myDrawSelectedState(myObject); // draw selected 
    ImageView iv = (ImageView) findViewById(R.id.mycontainer); 
    iv.invalidate(); // mark for refreshing 
    mp = MediaPlayer.create(getApplicationContext(), Uri.parse("/system/media/audio/ui/Effect_Tick.ogg")); 
    mp.start(); // play sound 
    SystemClock.sleep(300); // wait a little bit for user to see effect 
    }  
} 

順便說一句,Effect_Tick.ogg它的一個,當你按下一個按鈕,火災。看起來這些文件名稱幾乎都是Android標準,可以在與Android版權免責聲明簽署的許多不同設備中找到。

2

這些文件應在原文件夾,你可以用R.raw.KeypressStandard

+0

我知道,我想使用內建的聲音,如/system/media/audio/ui/KeypressStandard.ogg。任何線索? – ruhalde

+0

我建議你將該文件複製到你的應用程序,因爲並非所有的Android手機都帶有該聲音文件...並檢查版權:)。 – Augusto

+0

沒關係,發現該怎麼做 - > MediaPlayer.create(getApplicationContext(),Uri.parse(「/ system/media/audio/ui/KeypressStandard.ogg」)); – ruhalde