android:soundeffectsenabled 是否会覆盖 phone 上的全局设置?

Does android:soundeffectsenabled override the global settings on the phone?

我有一个按钮,我已经设置了 android:soundeffectsenabled="true"。 但这不会触发我在 onClick() 方法中调用的声音效果。

@Override
public void onClick(View v) {
    int id = v.getId();
    switch (id)
    {
        case(R.id.button):
            button.playSoundEffect(SoundEffectConstants.CLICK);
            break;
    }
}

所以想知道将此属性用于按钮或任何其他视图。

我注意到 Whatsapp,例如,在不调用 MediaPlayer 的情况下播放效果。我可以通过我的 HTC One M-8 的功能来判断这一点,在这种情况下,任何通过 MediaPlayer 的内容都会显示 BoomSound 图标。

对此有什么想法吗?

谢谢!

经过反复试验,我自己找到了答案。请注意,这是我的特定要求。

如前所述,我想像通知一样播放声音。这意味着通知的音量控制与正在播放的 MediPlayerAudioManager 文件不同。

所以方法是:

Uri clickSoundUri = Uri.parse("android.resource://" + **your.package.name** + "/" + **resource of a sound file in the res/raw folder**); Ringtone r = RingtoneManager.getRingtone(context, clickSoundUri); r.play();

就是这样。您可以将此代码放入按钮的 onClick() 方法中并播放声音。这使用户可以选择单独控制音频和通知音量。