【问题标题】:Android: how to make key-click soundAndroid:如何制作按键声音
【发布时间】:2015-04-03 05:45:32
【问题描述】:

我正在使用 ontouch 监听器来捕捉按键向上和按键向下事件。用于重复功能。我还想在按下按钮时发出咔哒声。我尝试添加一个 onClick 方法并将 clickable 设置为 true,但 ontouchlistener 似乎覆盖了 onclicklistener。

我怎样才能发出按键声音并遵循用户的点击偏好?

更新:谢谢大家。我通过 Android 源代码找到了我的答案。在 PhoneWindow.java 中,我找到了他们正在做我需要的地方的地方。本质上,您打开音频管理器并播放 AudioManager.FX_KEY_CLICK。 AudioManager.playSoundEffect 仅在适当时播放音效。

private static AudioManager audioManager;
...
audioManager = (AudioManager) getSystemService(
   Context.AUDIO_SERVICE);
...
audioManager.playSoundEffect(AudioManager.FX_KEY_CLICK);

【问题讨论】:

标签: android onclick ontouch


【解决方案1】:

我在问题的编辑中回答了我自己的问题。我在这里回答只是为了让我对这个问题的回答更加明显。正如我在修改问题时所说的那样。让你点击:

private static AudioManager audioManager;
...
audioManager = (AudioManager) getSystemService(
   Context.AUDIO_SERVICE);
...
audioManager.playSoundEffect(AudioManager.FX_KEY_CLICK);

【讨论】:

  • 还要确保您的音频触摸声音已启用,否则您将听不到任何声音。设置 --> 声音 --> 触摸反馈
【解决方案2】:

试试这个

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        button_flip.playSoundEffect(0);
    }
});

here

【讨论】:

  • 谢谢...我尝试设置 onclicklistener 但 ontouch 似乎覆盖了它。除非我注释掉 on-touch 监听器,否则我永远不会使用 onclicklistener。
【解决方案3】:

将您的声音保存在 res/raw/ 下。假设声音名称是tap.mp3, 那么代码将如下所示。

  MediaPlayer tap ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        tap = MediaPlayer.create(getApplicationContext(), R.raw.tap);

        button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) {

        //Playing sound.
        tap.start();
    } 
}); }

MediaPlayer 的 start() 会播放声音。

告诉我它是否有效。

【讨论】:

  • 这应该可以,但它会忽略用户对音量/启用/禁用等的偏好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
相关资源
最近更新 更多