BimmerGestalt / AAIdrive

Implementations of some Android Auto features as unofficial IDrive apps
MIT License
540 stars 90 forks source link

Add Spotify pause functionality? #658

Open rsyring opened 1 year ago

rsyring commented 1 year ago

When listening to Spotify the only way I'm aware of to pause the audio from iDrive is to push the volume button. Unfortunately, that also causes iDrive to "mute" media audio.

But, I frequently use Spotify and Google Maps together. There are times when I want to pause Spotify but still hear turn by turn directions. I can do that from the phone, but prefer the UX of making a selection in iDrive using the knob.

Any way to do this? Any interest?

Thanks.

hufman commented 1 year ago

Thank you for the suggestion! The power button to mute the audio is the only way that IDrive supports sending a pause command to the music source, even with regular Bluetooth music. There isn't a good UX way to achieve this request, unfortunately.

LACNR commented 1 year ago

If your only concern is too hear the directions you can select that e.g. Google Maps routing will overlay the music (automatically decrease the volume of the music and increase volume of Navigation) as long as the nav tells the directions.

Otherwise you can use BMW/Siri/Google Voice Commands to pause Music :)

rsyring commented 1 year ago

If your only concern is too hear the directions...

That's not really my concern. It's that there are times when I want to stop the music, for example I want to have a conversation with a passenger, but still hear the navigation.

Otherwise you can use BMW/Siri/Google Voice Commands to pause Music :)

I've not found Google voice commands to work that reliably when music is playing due to audio interference. I didn't think about using the BMW commands, which I can trigger with the steering wheel button, to pause the audio. I'll give that a try.

The power button to mute the audio is the only way that IDrive supports sending a pause command to the music source, even with regular Bluetooth music. There isn't a good UX way to achieve this request, unfortunately.

@hufman is it possible to unmute iDrive programmatically? If so, it seems like this could be achieved, maybe with an opt-in setting (e.g. "Pause media but don't mute iDrive on volume button press"):

  1. Monitor volume button press event (or maybe all you get is the pause event which you know can only come from the button)
  2. Pause the media as requested
  3. Automatically unmute iDrive audio

Alternatively, could there be a secondary functionality when the volume button is pressed quickly in succession (i.e. double click):

  1. Volume button pressed
  2. Pause media as requested
  3. Volume button pressed again within 1 (or 2?) seconds
  4. iDrive unmutes audio and sends request to resume playing media
  5. But, since it was a "double-click" do not actually resume playing media as requested

This has the advantage of not impacting normal functionality and not needing to need to programmatically mute iDrive. The disadvantage is that it's not obvious and, if not placed behind an enable setting, could be triggered accidentally causing confusion for the user (while driving).

bogdan-calapod commented 1 year ago

I didn't think about using the BMW commands, which I can trigger with the steering wheel button

Remember that long-pressing the steering wheel button will trigger your default assistant, and it also pauses the music to allow the assistant to understand you better. I find it works rather well.

rsyring commented 6 months ago

@hufman Was this actually "completed" or just closing due to age/inactivity? Wondering if I should be looking for new functionality. Thanks.

hufman commented 6 months ago

I closed it because it hasn't had comments in a year and I don't intend to implement it.

hufman commented 6 months ago

Actually thinking on it some more, I could imagine a manual play/pause entry in the Actions menu. This feels much better than a heuristic based on the mute button, and should be easier to build.