有没有人有同样的问题?
在 Android 的电话应用程序上,每当按下一个数字时,音调总是很流畅。
但是,当我使用与电话应用程序非常相似的代码时,我经常听到的语气并不流畅……有间隙。有没有办法解决这个问题?
我的一些理论是仿真器会导致这些声音中断,因为处理中存在时间滞后。模拟器上的电话应用程序也比我的代码更“编译”/原生。等等。不知道这些音调不连续的原因是什么。
这是代码(字面上与电话应用程序相同):
...
playTone(ToneGenerator.TONE_DTMF_1,150);
...
void playTone(int tone) {
// if local tone playback is disabled, just return.
if (!mDTMFToneEnabled) {
return;
}
// Also do nothing if the phone is in silent mode.
// We need to re-check the ringer mode for *every* playTone()
// call, rather than keeping a local flag that's updated in
// onResume(), since it's possible to toggle silent mode without
// leaving the current activity (via the ENDCALL-longpress menu.)
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("test", "playTone: mToneGenerator == null, tone: " + tone);
return;
}
// Start the new tone (will stop any playing tone)
mToneGenerator.startTone(tone, TONE_LENGTH_MS);