I have an AudioTrack
streaming via headphones. I have to send a SoundPool
to built-in speakers only, without interrupting the AudioTrack
playing over the headphones. Any hacks gangsters?
Android users need to go to Bluetooth Settings and pair either Bluetooth headphones or speakers one by one. Once connected, tap the three-dot icon on the right and click on Advanced Settings. Toggle on the 'dual audio' option if not already turned on. This should enable users to connect to two devices at once.
1 Solution You can connect the TV to a Bluetooth speaker or headset, while using the TV speakers, by going to Settings>General>Accessibility>Multi-output Audio. This will allow using the TV speakers while connected to one Bluetooth device.
Many Android devices use a single output thread in the AudioFlinger / audio HAL for all local playback (earpiece, speaker, wired headset/headphones), making different routing of two tracks simultaneously impossible (which is why on many devices the media streams are forcibly muted if a notification is played and you've got a wired headset attached; because otherwise you'd hear the music in the loudspeaker while the notification is played).
On some devices it might be possible to do what you're looking for if you manage to do a setForceUse(FOR_MEDIA, FORCE_SPEAKER)
and use the MUSIC
stream type for the stuff you want to play in the loudspeaker, and the VOICE_CALL
stream type for the stuff that you want to play in the wired headset.
I'm not sure if there's any way for an application to perform that setForceUse
call though. Perhaps you can get at the handleMessage
method of the AudioService
class through reflection and send it an MSG_SET_FORCE_USE
message.. I've never tried it myself so it might fail miserably.
EDIT: I've now tested the setForceUse way of forcing MEDIA streams to the loudspeaker while a wired headset is attached on an actual device, and it does work (though I can't guarantee that it will work across all devices). The implementation was slightly different from what I described above. See my answer to how to turn speaker on/off programatically in android 4.0 for the code I used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With