我有以下两行代码:
myButton.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
myButton.playSoundEffect(SoundEffectConstants.CLICK);
当我按下按钮时,触觉反馈工作正常,但没有音频 听到。
当他们开始使用Android时,有没有人遇到过这个问题?
答案 0 :(得分:9)
我遇到了这个问题,结果证明这是我非常愚蠢的事情。我已经禁用了整个手机的“Audible Selection”。在主页上,它位于“设置” - >“声音” - >“声音选择”上。可能有一种编程方式来做同样的事情,但我还没有找到它。
答案 1 :(得分:1)
我也有同样的问题。在我的三星Galaxy S4上,路径是设置 - >我的设备 - >声音 - >触摸声音(在“系统”标题下)。启用此功能后,默认系统声音就开始在我的应用上运行。
答案 2 :(得分:1)
嗯,我遇到了同样的情况,诀窍是使用Audiomanager。
在Activity类中定义AudioManager。
AudioManager audioManager;
在onCreate中初始化
。audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
在click方法中,使用audioManager播放声音。
public void play(View view) {
audioManager.playSoundEffect(SoundEffectConstants.CLICK,1.0f);
}
请注意,如果您未指定音量,则将音量指定为1.0f
,您将听不到任何声音。
答案 3 :(得分:0)
我知道我要来这是一个非常老的线程,但我也遇到了这个问题,但提供的答案并没有解决我的问题。如果有其他人遇到这个,这就是我找到的。
如果未从UI线程调用,则View.playSoundEffect()在我的设备上无效。 (我没有在Android文献中看到这个限制,因此它可能因设备或操作系统版本而异。)View.performHapticFeedback()似乎并不关心。我是从ThreadPool线程调用的;触觉反馈有效,声音效果没有。
我通过发布声音效果调用来修复此问题,以便在UI线程上运行,如下所示:
getActivity().runOnUiThread(new Runnable()
{
@Override
public void run()
{
mSketchView.playSoundEffect(SoundEffectConstants.CLICK);
}
});