【问题标题】:How to play user dial pad tone on my custom keypad press in android?如何在我的自定义键盘上播放用户拨号键盘音?
【发布时间】:2016-03-15 11:21:09
【问题描述】:

在我的应用程序中,我有一个自定义键盘,想在按键时播放滴答声。下面的代码给了我声音。

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float vol = 1f; 
am.playSoundEffect(AudioManager.FX_KEY_CLICK, vol);

但我希望播放与用户触摸拨号盘时相同的音调。如何实现?

【问题讨论】:

  • ToneGenerator 具有 TONE_DTMF_0TONE_DTMF_9 的预设。
  • @Michael 这就是我要找的。谢谢。

标签: java android android-audiomanager android-keypad


【解决方案1】:

我在迈克尔评论的帮助下找到了解决方案。在这里发布,因为它可能会帮助其他人:)

AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int volume_level= am.getStreamVolume(AudioManager.STREAM_RING); // Highest Ring volume level is 7, lowest is 0
final ToneGenerator mToneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, volume_level * 14); // Raising volume to 100% (For eg. 7 * 14 ~ 100)
mToneGenerator.stopTone();
mToneGenerator.startTone(ToneGenerator.TONE_DTMF_1, 100); // play sound for 100ms

其他按键类似,从ToneGenerator.TONE_DTMF_0ToneGenerator.TONE_DTMF_9选择音调

【讨论】:

  • 谢谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
  • 2016-03-14
  • 2012-09-12
  • 2019-05-26
相关资源
最近更新 更多