Because I’ve never tinkered with mobile OS’s or app programming, this could be a really dumb and untenable request, but…
What if Librem’s had the ability to decide which app or which content would be sent to which simultaneously Bluetooth-connected device?
e.g. I’m driving a car with my family and what I want to listen to, to stay alert, is not what anybody else in the car want’s to hear so I wear earbuds for that stream. I also have a custom Bluetooth device that I like to use for phone calls, so if an inbound call happens I don’t want it in my earbuds, I want to activate it on this other device. A phone call may be something I only half-heartedly want to be in but need to appear like I’m genuinely interested in, so I might be trying to listen to my news story in one ear while pretending to be engaged in the live conversation. I also want PureMaps to make announcements on the audio system of the car’s Bluetooth connection because instead of interrupting a speakerphone call or the music/podcast I have in a private earbud, I want that announcement to be heard by the caller and the rest of the passengers in the car.
I get frustrated a lot by the way an Android phone manages Bluetooth-connected devices. When the map interrupts the podcast it happens in a way that causes me to be confused by the current statement due to the distraction and also barely know what the map interruption was before it starts playing the podcast again. If I use my wife’s car to do something and she’s on the phone, her car grabs the conversation despite her not being in or near the car until I get far enough away. If she uses my car the podcast jumps to the car until she gets far away. Like couldn’t the phone notice it’s a weak signal and not jump to the car connection immediately? Just because another known device goes on, it doesn’t mean I want to switch everything to that connection.
I know these are little things but it’s nice when Librem is the first or the best at things.
All good suggestions. Maybe Pipewire could be used to patch Bluetooth connection?
Hell, I’d be happy if my Pinephone/Mobian/Phosh would just let me use Bluetooth audio in Calls. After that, it would be nice if it were user-configurable for it to auto-switch from Lollypop or Podcasts to Calls when I get a call.
I have a long commute – automobile integration is important to my use case.
In theory any app might offer you configuration choice over which audio sink is used. That would probably solve 80% of what you are asking for. It gets complicated though because for example any Bluetooth-connected device might suddenly, or otherwise, be disconnected. What is your desired behaviour in that case? Fall back to another audio sink? Pause the app? Terminate the app? Discard the audio?
Another complication is whether use of a plugged in headset mutes (disables) the speaker in hardware, or whether that is fully under the control of the software.
Any time that the audio is two-way then there is additional complication e.g. phone call, as distinct from podcast.
I could be wrong but maybe there’s some subtext in your request to which I would respond: technology is not the solution to all problems.
This should be the kind of thing where open source shines: a small enough change for someone to make without having to understand how everything works.
What would you prefer? Some preamble text, “PureMaps here, sorry for the interruption”? A postamble silence to allow you to digest the interruption before resuming the podcast? Repeat the interruption text (i.e. two occurrences in total) before resuming the podcast? (That could be tricky though because not all interruptions are idempotent.)
As @Photon says, before we worry about how all the options hang together, more things need to be working. I tried audio out via Bluetooth and it didn’t work for me (but it does work for others). I think I have seen that car integration is not working right now.