有没有人遇到同样的问题?
在Android的手机应用程序中,只要按下一个数字,音调就会一直平滑。
但是,当我使用与手机应用程序非常相似的代码时,我经常得到的语气并不顺畅......有差距。有办法解决这个问题吗?
我的一些理论认为,由于处理时间有滞后,仿真器会导致声音中断。模拟器上的Phone应用程序也比我的代码更“编译”/本机。等等。不知道这些音调不连续的原因是什么。
这是代码(字面意思与电话应用程序相同):
...
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);