在android中按下按钮时播放默认的软键盘声音

时间:2011-06-24 12:31:48

标签: android

我开发了一个使用我自己的custom keyboard的应用程序(好吧,一个看起来像键盘的视图,无论如何都像键盘一样)。我还没弄明白的一件事是如何在按下按钮时播放default soft keyboard 'click'声音。 有没有简单的方法呢?

我想使用手机附带的keyboard click声音,而不是提供我自己的声音。由于不同的手机可能有不同的键盘咔嗒声,我想保持我的应用程序一致。最后,我想反映用户在全局键盘设置中选择的相同设置(播放/不播放声音,振动/不振动等)。

2 个答案:

答案 0 :(得分:27)

我找到了解决方法。我需要做的只是在按钮上实现OnTouchListener并使用AudioManager.playSoundEffect()公共方法。代码如下所示:

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float vol = 0.5; //This will be half of the default system sound
am.playSoundEffect(AudioManager.FX_KEY_CLICK, vol);

答案 1 :(得分:1)

if (isSetVibration) {
        if (Build.VERSION.SDK_INT >= 26) {
            ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(50, VibrationEffect.DEFAULT_AMPLITUDE));
        } else {
            ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(50);
        }
    } else {
        if (Build.VERSION.SDK_INT >= 26) {
            ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(0, VibrationEffect.DEFAULT_AMPLITUDE));
        } else {
            ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(0);
        }
    }