ToneGenerator听起来很流畅吗?

时间:2011-08-29 18:43:37

标签: android audio dtmf

有没有人遇到同样的问题?

在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);

0 个答案:

没有答案