I finally got something that works. Not perfect. Pretty dirty trick. Just in case, this may help someone:
This is fixed in API 8 using the requestAudioFocus and abandomAudioFocus methods for AudioManager.
But for earlier versions, you can try this. Play the TTS through another stream channel, say STREAM_NOTIFICATIONS. Then you just need to return the sound focus to STREAM_MUSIC. How can you achieve this? Sending a silence line ("") to TTS, but this time through STREAM_MUSIC. The effect will be: the music is stopped, your TTS message will be spoken, and finally, your music will return after a voice notification. It’s not nice or proud of something, but ... if someone knows differently, I will appreciate it
source
share