2011-08-17 164 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