如何在 android 中按下自定义键盘时播放用户拨号盘提示音?
How to play user dial pad tone on my custom keypad press in android?
在我的应用程序中,我有一个自定义键盘,我想在按键时播放滴答声。下面的代码给我声音。
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float vol = 1f;
am.playSoundEffect(AudioManager.FX_KEY_CLICK, vol);
但我希望播放与用户触摸拨号盘时相同的音调。如何实现?
我在 Michael 评论的帮助下找到了解决方案。在这里发帖,因为它可能对其他人有帮助:)
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_0
到ToneGenerator.TONE_DTMF_9
中选择音调
在我的应用程序中,我有一个自定义键盘,我想在按键时播放滴答声。下面的代码给我声音。
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float vol = 1f;
am.playSoundEffect(AudioManager.FX_KEY_CLICK, vol);
但我希望播放与用户触摸拨号盘时相同的音调。如何实现?
我在 Michael 评论的帮助下找到了解决方案。在这里发帖,因为它可能对其他人有帮助:)
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_0
到ToneGenerator.TONE_DTMF_9