如何访问Android的默认蜂鸣声?

我想让一个button播放一个嘟嘟声,表明它已被按下。 我想知道如何使用默认的安卓哔哔声(如当你调整铃声音量),而不是导入我自己的MP3音乐文件或使用ToneGenerator?

public void playSound(Context context) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException { Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); MediaPlayer mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(context, soundUri); final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); mMediaPlayer.setLooping(true); mMediaPlayer.prepare(); mMediaPlayer.start(); } } 

我发现了另一个答案:

 try { Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); } catch (Exception e) { e.printStackTrace(); } 

信贷转到https://stackoverflow.com/a/9622040/737925

…使用默认的安卓哔哔声(如当你调整铃声音量)…

在我的Cyanogen 7 Nexus One和我的旧股票T-Mobile Pulse Mini(后者来自内存),据我所知,这是音量变化时的默认蜂鸣声:

  final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100); tg.startTone(ToneGenerator.TONE_PROP_BEEP); 

你似乎在寻求ToneGenerator的替代ToneGenerator ,但是我认为它能够在两行中完全实现你想要的。

下面是一些其他可能的ToneGenerator声音,我试过,这不是一个匹配(前两个可能是有用的交替音量哔声):

  // Double beeps: tg.startTone(ToneGenerator.TONE_PROP_ACK); // Double beeps: tg.startTone(ToneGenerator.TONE_PROP_BEEP2); // Sounds all wrong: tg.startTone(ToneGenerator.TONE_CDMA_KEYPAD_VOLUME_KEY_LITE); 

简单的方法是使用ToneGenerator类的实例:

  //declaration ToneGenerator toneG; //using any where` if(val>=taux_max) { taux_text.setTextColor(warnning_col); toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200); //200 is duration in ms }