我正在开发一个将通过蓝牙SCO播放TextToSpeech音频的应用程序。连接到目标蓝牙设备(汽车立体声),然后指示TextToSpeech引擎讲话后,即使我在通过SCO连接到播放TextToSpeech之间等待了几秒钟,也要花费大约15秒才能开始播放音频。

这是我用于通过SCO连接的代码:

AudioManager audioM = (AudioManager) getApplicationContext().getSystemService(getApplicationContext().AUDIO_SERVICE);
audioM.setMode(audioM.MODE_IN_COMMUNICATION);
audioM.setBluetoothScoOn(true);
audioM.startBluetoothSco();
audioM.setSpeakerphoneOn(false);

这是我用来播放TextToSpeech的代码:
String text = "Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
HashMap<String, String> ttsParams = new HashMap<String, String>();
ttsParams.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_VOICE_CALL));
mTts.speak(text, TextToSpeech.QUEUE_FLUSH, ttsParams);

其他Android应用程序(包括VOIP和内置电话应用程序)不受此延迟的影响。我创建的等效iOS应用程序没有延迟。因此,我知道问题不在于立体声。

任何帮助将不胜感激,谢谢

最佳答案

原来问题出在我测试的低端设备上。我尝试过的所有其他设备都可以立即播放。

08-26 02:53