Open tomm1ed opened 6 months ago
Thanks for the post. Unfortunately, this seems to be due to a change at the player (e.g. the Music app). The issue is that some changes have occurred in recent versions of iOS and Mac such that the players don't respond to the remote control commands being sent by Shairport Sync. It's not just confined to Shairport Sync either -- it seems to be a general problem.
Thanks for the post. Unfortunately, this seems to be due to a change at the player (e.g. the Music app). The issue is that some changes have occurred in recent versions of iOS and Mac such that the players don't respond to the remote control commands being sent by Shairport Sync. It's not just confined to Shairport Sync either -- it seems to be a general problem.
Ouch that sucks... Was looking forward to put a Hue tap in the shower to be able to pause music, skip a track and change the volume. TvOS 17.5 is already out and Apple appears to have done nothing it seems. Is there any way I can help to troubleshoot?
Thanks, yeah, it is a pity alright, but it may be that Apple are simply moving on, removing obsolete (to them!) features. IOW, it might not be a "bug" to them...
The real problem is that the protocols for their remote control and general supervision are (to my knowledge) unknown. If progress could be made there, it would give us a way to move forward.
Thanks, yeah, it is a pity alright, but it may be that Apple are simply moving on, removing obsolete (to them!) features. IOW, it might not be a "bug" to them...
The real problem is that the protocols for their remote control and general supervision are (to my knowledge) unknown. If progress could be made there, it would give us a way to move forward.
Yeah the weird thing is that pausing the specific shairport-sync speaker from Apple Shortcuts on my iPhone (iOS 17.5.1) works without problem.
@mikebrady Just so I am understanding correctly; the fact that shairport-sync does not log anything when I post /remote play etc on MQTT is by design?
Yeah the weird thing is that pausing the specific shairport-sync speaker from Apple Shortcuts on my iPhone (iOS 17.5.1) works without problem.
Could that be because the shortcut is talking directly to the Music app on the iPhone?
Just so I am understanding correctly; the fact that shairport-sync does not log anything when I post /remote play etc on MQTT is by design?
It is by design, though it could easily be changed. The question is whether it might just fill up the log...
Yeah the weird thing is that pausing the specific shairport-sync speaker from Apple Shortcuts on my iPhone (iOS 17.5.1) works without problem.
Could that be because the shortcut is talking directly to the Music app on the iPhone?
I am gonna test this when I have the time. The shortcuts targets a specific shairport-sync player. Gonna start a stream from my iPad and then run the shortcut from my iPhone. NB this only works since I updated from 1.1.1 (which has been running amazingly but was missing the 'remote control' part) to the latest dev version. (Was already running dev since back then only dev supported AirPlay2)
Just so I am understanding correctly; the fact that shairport-sync does not log anything when I post /remote play etc on MQTT is by design?
It is by design, though it could easily be changed. The question is whether it might just fill up the log...
No worries, was just wondering if shairport-sync was even registering the remote commands
This issue has been inactive for 28 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.
common stale bot L 🤫
common stale bot L 🤫
Huh?
Huh?
will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.
What can I say, except that stale bot's only purpose (or at least effect) is to fill issues with useless comments like these under the threat of closing the issue otherwise. (I almost don't want to write this one because it's clearly off topic but whatever.) An issue doesn't automatically become invalid just because it's old.
Closing inactive issues keeps actively discussed issues to the forefront. Closed issues do not become invalid and can be reopened when they become active again. It's pretty simple.
Wanted to chime in that I'm experiencing the same issue. Integrated using the Home Assistant, can't control anything when using Airplay from my iPhone (iOS 17.6.1). I did some tests and discovered that I actually do have some control when I use Airplay from my Macbook (OSX 12.7). I can control Play/Pause but not volume up/down.
Edit: Saw in one of the other issue threads that it's not a shairport issue at all and seems like it'll be fixed in iOS 18
Has this been fixed with iOS 18?
I don't know about others, but for me it doesn't work with iOS18 either
play/pause, volumeup/volumedown on hass-shairport-sync
mqtt log:
HiFi/play_resume --
HiFi/track_id DAA3B51980460851
HiFi/album Load
HiFi/artist Metallica
HiFi/genre Metal
HiFi/title Until It Sleeps
HiFi/remote volumedown
HiFi/remote volumeup
HiFi/remote pause
HiFi/remote nextitem
HiFi/remote previtem
HiFi/remote play
Up/Down on iPhone 15 Pro iOS18
mqtt log:
HiFi/volume -18.92,-60.73,-96.30,0.00
HiFi/volume -20.79,-66.75,-96.30,0.00
The same applies to iOS 18.1 beta 5 😡
also not working for me
Also came here to report control issues.
Shairport Log on iPhone 12mini (iOS 17.6.1):
2.185883801 "mqtt.c:55" [MQTT]: received Message on topic /Vaskyy-Hyperion/remote: pause
0.000138542 "mqtt.c:68" [MQTT]: DACP Command: pause
0.000064479 "dacp.c:370" send_simple_dacp_command: sending command "pause".
14.590154005 "mqtt.c:55" [MQTT]: received Message on topic /Vaskyy-Hyperion/remote: play
0.000144219 "mqtt.c:68" [MQTT]: DACP Command: play
0.000069271 "dacp.c:370" send_simple_dacp_command: sending command "play".
Shairport Log on iPhone SE 1. Gen (iOS 15.8.3):
12.809021297 "mqtt.c:55" [MQTT]: received Message on topic /Vaskyy-Hyperion/remote: pause
0.000151510 "mqtt.c:68" [MQTT]: DACP Command: pause
0.000064375 "dacp.c:370" send_simple_dacp_command: sending command "pause".
0.224262188 "ptp-utilities.c:225" Send control message to NQPTP: "/nqptp P"
0.001441719 "rtsp.c:2011" Connection 1: Pause playing.
0.000156614 "rtp.c:1322" Connection 1: Clear anchor information.
0.000101042 "rtsp.c:2019" Connection 1: Stop the output backend.
0.000063437 "audio_alsa.c:1883" alsa: do_close()
0.010627969 "audio_alsa.c:1896" alsa: do_close() -- closing alsa handle
0.001380781 "rtp.c:2473" Play stopped.
0.000257500 "rtp.c:1428" Connection 1: Awaiting clock anchor information.
2.945021145 "mqtt.c:55" [MQTT]: received Message on topic /Vaskyy-Hyperion/remote: play
0.000125886 "mqtt.c:68" [MQTT]: DACP Command: play
0.000056562 "dacp.c:370" send_simple_dacp_command: sending command "play".
0.117529583 "rtsp.c:2541" Connection 1: POST /audioMode Content-Length 64
0.000148125 "rtsp.c:2543" Type: "Content-Length", content: "64"
0.000055782 "rtsp.c:2543" Type: "Content-Type", content: "application/x-apple-binary-plist"
0.000047708 "rtsp.c:2543" Type: "CSeq", content: "47"
0.000045208 "rtsp.c:2543" Type: "DACP-ID", content: "292C08CD5FC924AD"
0.000040990 "rtsp.c:2543" Type: "Active-Remote", content: "3880305684"
0.000049375 "rtsp.c:2543" Type: "User-Agent", content: "AirPlay/620.8.2"
0.000136771 "rtsp.c:2543" Content Plist (as XML):
It seems like "ptp-utilities.c:225" isnt being called after the remote command in the new iOS versions.
So is it an issue with NQPTP? Since this does never happen on new iOS versions → Send control message to NQPTP: "/nqptp P"
Thanks for the report! Just BTW, is Shairport Sync the same version in both?
Anyway, the Send control message to NQPTP: "/nqptp P"
message is generated by Shairport Sync once the audio feed has been stopped by the player -- in other words, it's Shairport Sync responding to information coming from the player. If the player isn't sending that information (we suspect that it's just ignoring the dacp
command) then nothing would happen...
i do also see that with the old AirPlay User-Agent there is an "Active-Remote" content.
0.000148125 "rtsp.c:2543" Type: "Content-Length", content: "64"
0.000055782 "rtsp.c:2543" Type: "Content-Type", content: "application/x-apple-binary-plist"
0.000047708 "rtsp.c:2543" Type: "CSeq", content: "47"
0.000045208 "rtsp.c:2543" Type: "DACP-ID", content: "292C08CD5FC924AD"
0.000040990 "rtsp.c:2543" Type: "Active-Remote", content: "3880305684"
0.000049375 "rtsp.c:2543" Type: "User-Agent", content: "AirPlay/620.8.2"
0.000136771 "rtsp.c:2543" Content Plist (as XML):
But with the newer User-Agent there is no remote anymore :(
0.000243959 "rtsp.c:2543" Type: "Content-Length", content: "64"
0.000130469 "rtsp.c:2543" Type: "Content-Type", content: "application/x-apple-binary-plist"
0.000132447 "rtsp.c:2543" Type: "CSeq", content: "375"
0.000113750 "rtsp.c:2543" Type: "User-Agent", content: "AirPlay/775.3.1"
0.000180782 "rtsp.c:2543" Content Plist (as XML):
Thanks for the report! Just BTW, is Shairport Sync the same version in both?
Anyway, the
Send control message to NQPTP: "/nqptp P"
message is generated by Shairport Sync once the audio feed has been stopped by the player -- in other words, it's Shairport Sync responding to information coming from the player. If the player isn't sending that information (we suspect that it's just ignoring thedacp
command) then nothing would happen...
What do you mean the same version in both? Im only streaming to a single shairport-sync service, and copying the logs from that. I tried to stream with my iPhone SE and then 12mini. SE is able to being controlled with remote MQTT commands from home assistant mini-player. 12mini not.
Thanks -- sorry for not being clear.
Your observation about the missing User-Agent is correct, as far as we know, sadly.
Sorry for the noob suggestion: Isnt there a way to just ... tell shairport that its an different user-agent to get the controls back?
Sorry for the noob suggestion: Isnt there a way to just ... tell shairport that its an different user-agent to get the controls back?
Not a bad suggestion at all! Sadly, we've tried it, and no cigar.
We've also been looking to see if it's carried somewhere else, but unfortunately haven't found it.
If anyone has any more ideas, we'd love to hear 'em.
What happened?
Installed latest dev version and connected to MQTT server Sending [mqtt topic]/remote play etc does nothing, I see nothing in the logs of shairport-sync confirming that it is processing the commands (and nothing happens so it seems to ignore it)
Relevant log output
System Information.
Raspberry Pi 3B running RaspberryPi OS Bullseye HifiBerry DAC+
uname -a Linux livingroom 5.15.76-v7+ #1597 SMP Fri Nov 4 12:13:17 GMT 2022 armv7l GNU/Linux
shairport-sync -V 4.3.3-dev-82-g2ec6068b-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-metadata-mqtt-sysconfdir:/etc
aplay -l List of PLAYBACK Hardware Devices card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ Pro HiFi pcm512x-hifi-0 [HiFiBerry DAC+ Pro HiFi pcm512x-hifi-0] Subdevices: 1/1 Subdevice #0: subdevice #0
Configuration Information.
PulseAudio or PipeWire installed?
How did you install Shairport Sync?
Built from source
Check previous issues