private ToneGenerator mToneGenerator;
private Object mToneGeneratorLock = new Object();//监视器对象锁
private boolean mDTMFToneEnabled; //按键操作音
private static final int TONE_LENGTH_MS = 150;//延迟时间
void playTone(int tone) {
// TODO 播放按键声音
if (!mDTMFToneEnabled) {
return;
}
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int ringerMode = audioManager.getRingerMode();
if ((ringerMode == AudioManager.RINGER_MODE_SILENT)
|| (ringerMode == AudioManager.RINGER_MODE_VIBRATE)) {//静音或震动时不发出按键声音
return;
}
synchronized(mToneGeneratorLock) {
if (mToneGenerator == null) {
Log.w(TAG, "playTone: mToneGenerator == null, tone: "+tone);
return;
}
mToneGenerator.startTone(to