带有HFP配置文件的Android TTS

时间:2013-10-01 09:43:11

标签: android text-to-speech android-bluetooth a2dp

我想将耳机与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

谢谢!

1 个答案:

答案 0 :(得分:0)

在Google Play中试用SoundAbout。它具有TTS设置,允许将音频路由到蓝牙单声道(HFP)。