Thursday, September 5, 2024

Spotify Connect Can No Longer Use iPhone Volume Buttons

Sarah Perez (MacRumors):

Spotify claims Apple may again be in violation of European regulation, the Digital Markets Act (DMA), which requires interoperability from big technology companies dubbed “gatekeepers.” This time, the issue isn’t about in-app purchases, links or pricing information, but rather how Apple has discontinued the technology that allows Spotify users to control the volume on their connected devices.

When streaming to connected devices via Spotify Connect on iOS, users were previously able to use the physical buttons on the side of their iPhone to adjust the volume. As a result of the change, this will no longer work.

Spotify sees this an anti-competitive because Apple gets to use its own protocol with HomePod and can access the buttons, whereas if Spotify uses its protocol it can’t. The buttons would work if Spotify used AirPlay 2, but for whatever reason Spotify doesn’t want to do that. How can they try to offer something better if they’re stuck using the same technology as Apple?

The technology Spotify was using for Connect was already degraded before being discontinued, the streamer claims. Spotify said that the experience using the iPhone volume buttons was often unstable, resulting in bugs like volume spikes during sessions.

It’s unclear to me what technology Apple discontinued that used to make this possible. And why is it happening so late in the iOS 17 cycle? Did Apple make a change recently or is Spotify just finally giving up since it had gotten so buggy?

William Gallagher:

Spotify has reportedly asked Apple to allow it to control the volume when using Spotify Connect to send music to HomePods. However, Apple has said that it requires Spotify’s app to add integration with HomePods.

Emma Roth (Sonos):

The Sonos app has also stopped letting iPhone users change the volume of their devices using physical buttons for similar reasons.

Update (2024-09-06): John Gruber (Mastodon):

Who should get to decide the rules for how the hardware volume buttons work on iPhones and iPads? Apple, or the European Commission?

If Apple is arbitrarily blocking access, making the user experience worse, as some kind of power play to prop up HomePod…maybe the EC?

Steven:

Also, they’d have to integrate with HomePods to get access to the new API, not just “support airplay”. Even Sonos, which supports AirPlay 2 doesn’t get access.

BenRiceM:

Spotify is definitely being obstinate, but given that camera apps had to wait 15 years for an API to detect volume presses (without ridiculous workarounds), I do think Apple could stand to be a little more open here.

Update (2024-09-09): See also: Dithering.

Marco Arment:

My guess is this API, which has been deprecated for a decade.

It’s the only way we’ve ever been able to programmatically set the iPhone volume, so it’s how apps would intercept volume buttons: observe it for changes, and upon a change, immediately set it back, then perform the custom action.

The only other known method is subview-diving on the MPVolumeView, but I don’t think that was ever reliable enough to actually write changes to the volume.

Alex Pretzlav:

I bet they were doing it this way.

Karl Baron:

What broke in 17.3 was listening to private API NSNotifications for the hardware buttons (_UIApplicationVolumeDownButtonDownNotification) like in this code. [Signal] had to go back to observing an MPVolumeView in our camera app to let you use the volume buttons to shoot (causing volume to randomly change when the hack failed) until last year they finally gave us a real API for it.

I keep hearing about more apps that were using this private API. The real API seems to be only for camera use.

Jonathan Z Simon:

The Harmony (Logitech remote control system) app uses the iPhone volume keys as the remote control volume. For me this is an extremely valuable feature, and also totally natural: as a user, it “does what I mean”.

Jimmy Callin:

I do see an argument that by bundling custom volume button actions with HomePod, they are forcing apps to support (and maintain) HomePod and thus are misusing their strong market power in iOS to unnaturally boost their position in a separate product category.

John Gruber (Mastodon):

I believe Spotify has subsequently edited their support page, because the above text no longer appear here, where it now reads:

Apple has discontinued the technology that enables Spotify to control volume for connected devices using the volume buttons on the device. While we work with them on a solution, you can use the Spotify app to easily adjust the volume on your connected device.

They deleted the part that said, “Apple has told us that they require apps to integrate into Home Pod in order to access the technology that controls volume on iPhones.”

Why? This is the biggest mystery about this whole story. I never understood what that meant. There does not seem to be a new (non-camera) API that Apple could offer to Spotify in return for supporting HomePod, so my assumption was that Spotify was being rejected on policy grounds and that Apple would allow them to continue using the private API if they cooperated. But it now seems clear that Apple changed/broke the private API. So what could be the carrot that Apple was supposedly offering?

I don’t know whether Spotify was misleading us or whether this was a clumsy way of saying that the volume buttons would work with HomePod (automatically) if Spotify Connect supported AirPlay. But the main Spotify app already supports AirPlay, and it doesn’t really make sense for Spotify Connect:

I was wrong yesterday to say — in the headline of the post, of all places — that Spotify could solve the problem by adopting AirPlay 2. Spotify Connect is, and needs to be, its own separate thing. Spotify users who use Connect love it. Here’s what one DF reader wrote to me: “AirPlay is a per-device feature, while Spotify Connect synchronizes Spotify sessions across devices. I can initiate playing on my iPhone, then control it from my iPad, Mac, or Watch. I can change the destination speaker from any device. It’s so good that I’m forever wedded to Spotify until Apple or someone else comes up with an equivalent experience. I think if AirPlay offered equivalent functionality, but Spotify refused to adopt it, Spotify would be open to more criticism, but from the perspective of a Spotify user, it’s lost functionality and even supporting AirPlay 2 would not fix what is now a diminished experience. So I think Spotify is doing the only thing they can, which is complain.”

John Gruber:

Apple’s own Remote app uses the iPhone volume buttons to control the TV’s volume. Which I don’t think should be illegal, but clearly demonstrates the use case for being a public API.

26 Comments RSS · Twitter · Mastodon


Imagine if Apple disabled the CMD button in MacOS for third party devs.

I think devs should be allowed to innovate with the hardware. Like when the volume up was used as a shutter button back in the day.


Not to defend Apple, but this was a hack already. There is no official way to access the volume buttons, nor to change the volume programatically (and it’s specifically prohibited in the App Store
Hacks used KVO on the current (read-only) value of the system volume, and hidden UI system volume slider to change it.

What is needed for music apps and what Apple should provide, is a way to tell the system that music is playing remotely, but not through the phone (unlike AirPlay), so that Now Playing and volume work as the user expect it. I hope they will at some point…


Given that they are:
A) Taking active steps in the opposite direction
B) Communicating that they are doing the right thing in doing so

I don't think Apple will change their ways without government intervention. Again, what if we were talking about MacOS. This is a clear cut example of a monopolist abusing their power.


@Kristoffer The camera is an ironic example because using the volume button for the shutter was invented by a third-party app (Camera+). Apple initially allowed this, then decided that it violated the guidelines. A year later, with iOS 5, Apple adopted the feature in its own Camera app, while still preventing third-party apps from doing this except via hacks. They finally added an API for it in iOS 17.2.


That is why I picked it as an example :)

I know I'm a bit of an extremist that think of phones as a highly specialised (form factor wise) laptops rather than locked down finished products.

What I find ironic (in the Alanis way) is to see Apple introduce "THE ACTION BUTTON" as it effectively shoots down the "But UI consistency" argument that is wheeled out whenever someone does what Apple hadn't thought of. It shows that a button can do different things in different apps or for different people.

People are perfectly capable of understanding that a set of buttons could control many different things e.g., your shades, the intensity of lights, the camera (zoom, focus, ISO) etc.


Apple is providing a documented, supported way for Spotify to control the volume.


@Kristoffer Yes, although even with the Action button there’s still no API, right?

@DJ Which way is that? If your answer is AirPlay, that seems to me like saying that the documented, supported way of making an FTP client is to use WebKit to communicate via HTTP.


@Michael heh... I want aware. I just assumed there would be.

@DJ It's not just volume control I'm after.

It's my honest belief that testing buttons as things users can click to make sure happen would be beneficial to developers and iPhone owners alike.


@Michael Sort of. It's more like saying if you want to transfer files, you can no longer use FTP. You must use HTTPS, and here's the API to accomplish that.


@DJ It now seems even worse than that, because apparently Sonos does support AirPlay but still can’t access the buttons. And Apple seems to be imposing business requirements (integration with HomePod) as a condition of being able to use the API.


Given all the regulatory battles going on at the moment, I would have thought now is the exact worst time to suddenly decide... let's crackdown on what Sonos and Spotify have been doing.


Gruber truly has an EC derangement syndrome.


I wonder if his false dichotomy is intentional or if he's way too brainwashed to realize he's talking bullshit.


@Leo Gruber has always had a strong libertarian, pro-corporate streak.


What about Chromecast? Volume buttons used to control the volume on a target cast device for years, even with a locked screen - have not tested this in iOS 17.6 though.


I don't think Apple is blameless here, but I haven't seen much discussion of Spotify's years-long refusal to support the HomePod. It's abundantly clear that Spotify won't add HomePod integration just because it's another bullet point for them to use in siccing regulators on Apple.


My UE Megaboom still works with volume, and I think it's bluetooth protocol. If I change volume on the Megaboom, the volume in Apple Music on my phone changes; and vice versa. I don't see what the problem is


@Jared are you suggesting that it's okay for a platform holder to pressure third party developers into supporting each and every device and or OS they put on the market?

I think that would be horrible. I'm sure Apple would love it.


James R Grinter

But, what happens if me - the user - wants to adjust the volume of the music I’m listening to whilst running some other app, and it has decided that the volume buttons do something different when it is running? One could constrain it to when an app is actually sending audio out through the audio playback chain.

But when Spotify is sending audio elsewhere with Connect it isn’t using the iOS audio output at all and so how should usurping the volume buttons be considered ”safe” by iOS? Sonos was not even playing audio on or from the device, it’s just a (not very intuitive) remote control.


> Who should get to decide the rules for how the hardware volume buttons work on iPhones and iPads? Apple, or the European Commission?

Oh, come the f**k on Gruber. "Who should get to decide whether your iPhone zaps you in the nards every five minutes? Apple, or the European Commission?"


@Leo @Anonymous

Gruber has a Apple-Can-Do-No-Evil streak. Today he's claiming the EU is hostile to successful companies. But the EU's actual argument is that Apple got to tilt the playing field and gained an unfair advantage because other companies did not get Apple's preferential tax treatment.

Given that Apple is a 3 trillion dollar company, it's hard to argue that it needs help. To understand quite how much money that is, consider that only 5 countries have a larger than 3 trillion dollar economies: the US, China, Japan, Germany and India. The fact Apple feels entitled not to pay tax is quite extraordinary, and is a good illustration of what they have become.

The EU is about making sure market competition works, and providing favorable terms exclusively to the behemoth while taxing its tiny competitors at full rate hardly ensures a fair market. Instead it tilts the playing field to the benefit of the behemoth. Indeed, it is commonly accepted that we tax the rich and not the poor, for the same reason we feed children and do not require them to go to toil in the mines: the weak need help to grow, the strong can easily shoulder a little more of the burden.

The fact Gruber feels the need to defend Apple for this hardly moral conduct is also very illuminating. It makes me wonder how independent he really is.


@Old Unix Geek: I certainly don't want to defend Gruber for most of his EU takes, and generally don't agree with him on the Irish tax issue either, but I do wonder if you really have a country any more if you aren't allowed to set and enforce your own tax laws.

Apple definitely doesn't need a tax break, but I also think Ireland should be able to set their own tax laws.


@gildarts: The EU is really supposed to be a market mechanism. European Common Market. It's become all sorts of things other than a market, and I have issues with some of those things. But ensuring the market is not distorted is its core competency.

Ireland has been trying to monetize its membership of the EU by distorting the market mechanism: offering below normal tax rates to Apple for its participation in the ENTIRE EU. If Ireland weren't in the EU, Apple wouldn't have set up shop there. So Ireland has been playing a duplicitous game and is no longer getting away with it.

Ireland is actually harming the rest of the EU with its actions, since requiring Apple to pay similar taxes to everyone else might have helped EU competitors to the large US tech firms survive. Instead the EU has no social networks, no popular computers, no AI. Russia has social networks, China has them as well as hardware manufacturers and AI. Europe has... nowt.

The rare companies that do make it (ARM, Deepmind, etc) get bought by foreign companies (usually US). This is not good for Europe economically, and you'll find that the EU has been stagnating while the US is still growing. Compare that to the 1980s and 1990s when Europe was full of European computers (sinclair, acorn, amstrad, oric, dragon, psion, etc, etc) and locally made software. Now we have raspberry pi! The rare counterexample is ASML, in the Netherlands, but US sanctions against China are hurting its ability to sell.

If Ireland wants to be able to set its own tax laws, that's really great, but Ireland should exit the EU just as Britain did. If your business is about letting people get in through the side-door for less, and enabling your pals to tilt the playing field, then your business is corruption, and you don't belong in the club.


I use Spotify to play music to my Sonos via Spotify Connect. This feature was convenient before it stopped working but it was janky in a way that drove me nuts: if I used the volume buttons to turn the Spotify/Sonos volume down low then the iPhone volume was lowered system-wide (even if changing the ringer volume with the buttons was disabled). For example, if I used turn-by-turn directions they'd be really quiet. This problem doesn't exist with AirPlay 2 which has a separate volume from the system volume.

You can play music from Spotify to a Sonos via AirPlay 2 and I've tried that instead but it's just worse. I have a mesh wi-fi network and as I move around my house my iPhone will get out of range of whichever router it was connected to and the music will stop playing, then usually it will start again after awhile when my iPhone reconnects to another router. It sucks.

With Spotify Connect the Sonos streams the music directly from the internet so it never cuts out -- the Spotify app on the phone just controls it but isn't involved in the actual playback.


@gildarts You might find this perspective interesting


@Old Unix Geek although I generally agree with your assessment in principle, it should be noted Malta is a heaven to obtain EU passports, Italy is a heaven for beach clubs among other things, Austria is a heaven for private wealth and so is Luxembourg, Holland is a corporate wealth heaven, Germany is automaker’s heaven, Spain is retiree’s, etc. This to say market rules are very much country specific. And far form the “free and fair market” concept so present in retail news.

Leave a Comment