我想将耳机与hfp一起使用,并将TTS流式传输至耳机而不使用a2dp配置文件。
1)我初始化音频管理器:
audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audio.setMode(AudioManager.MODE_IN_CALL);
2)我使用反射配对设备:
Method m = device.getClass().getMethod("createBond", (Class[]) null);
Object invokeResult = m.invoke(device, (Object[]) null);
3)当我收到意图BluetoothDevice.ACTION_BOND_STATE_CHANGED且新状态为BluetoothDevice.BOND_BONDED时,我使用IBluetoothHeadset android界面绑定到耳机。
mContext.bindService(new Intent(IBluetoothHeadset.class.getName()), mConnection, Context.BIND_AUTO_CREATE)
4)在我调用的onServiceConnected
实现中:
boolean connectResult = mService.connect(headset);
5)如果connectResult
为真,我初始化音频:
audio.setBluetoothScoOn(on);
audio.startBluetoothSco();
但是,当我打电话时:
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
音频未重定向到耳机。
注意:在这种情况下,audio.isBluetoothA2dpOn()返回false。
如果我之前使用Android系统配对设备,我只成功重定向音频。在这种情况下audio.isBluetoothA2dpOn(
)返回true。
有没有办法将TTS与HFP配置文件一起使用?
我已经尝试过这个解决方案,但它并没有为我工作
TTS output always going to A2DP
谢谢!
答案 0 :(得分:0)
在Google Play中试用SoundAbout。它具有TTS设置,允许将音频路由到蓝牙单声道(HFP)。