我想在不使用a2dp配置文件的情况下,将我的头戴式耳机与hfp配合使用,并将TTS流式传输到头戴式耳机。
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)当我收到intent 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
谢谢!
发布于 2013-10-15 10:50:38
在谷歌Play中试试SoundAbout吧。它具有TTS设置,允许将音频路由到蓝牙单声道(HFP)。
https://stackoverflow.com/questions/19112935
复制相似问题