Android 音频开始通过蓝牙 sco 播放缓慢

标签 android audio bluetooth text-to-speech bluetooth-sco

我正在开发一个可以通过蓝牙 SCO 播放 TextToSpeech 音频的应用程序。连接到目标蓝牙设备(汽车音响),然后指示 TextToSpeech 引擎说话后,音频开始播放大约需要 15 秒,即使我在通过 SCO 连接和播放 TextToSpeech 之间等待了几秒钟。

这是我用来通过 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 应用程序没有延迟。所以我知道问题不在于立体声音响。

非常感谢任何帮助,谢谢

最佳答案

事实证明,问题出在我测试的低端设备上。我尝试过的所有其他设备都可以立即播放。

关于Android 音频开始通过蓝牙 sco 播放缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40149713/

相关文章:

android - 无法从 Android sdk 在 linux 机器上安装模拟器

c++ - Windows Core Audio Api 在捕获设备上获取所有支持的格式

iphone - 如何在 iPhone 和 Arduino+Bluetooth Mate 之间创建蓝牙串行连接?

java - Android Java 创建多个数据库

android - 将 Drawable 绘制为位图

java - 时间戳方法 'SimpleDateFormat' 未从数据库检索

ios - 音频单元 v3 扩展不会出现在主机应用程序中

python - 如何使用 Tensorflow API 重新采样音频文件

android - 通过android终端访问蓝牙RFCOMM

android - 我的应用程序的线程、异步任务或 intentService?