It probably means the mac is having some network issues… If you plug the mac in via ethernet to your router does it clear up the issue. if so need to work on how to get wifi working better to the mac (maybe connect to routers 5ghz signal)
The first Mac (a Mac Mini desktop) was using a wired Ethernet connection and the other (a MacBook Pro laptop) was using Wifi. I configured the Sonos One to disable its Wifi and to only use Ethernet.
So at least with the Mac Mini desktop there’s was a direct wired link between it and the Sonos One, yet the problem was still observed. Therefore I suspect it’s not a network issue.
I don’t think a Chris intended you to wire the Sonos One to your Mac, but instead to your Wi-Fi router.
In most cases, turning off the Wi-Fi portion of a Sonos device is not recommended.
Yes I meant wire Mac to your router. Sonos can stay wireless.
My Mac Mini is plugged directly into an Airport router via Ethernet and the Sonos One is also plugged directly into the same router via Ethernet. (FWIW, reenabling wireless on the Sonos One has no effect, as I expected it wouldn’t.) It’s not a network problem.
I have done more experimentation. The audio delay is exactly 2.0 seconds, based on correcting with VLC. A 2 second delay is somewhat suspicious since my understanding is that is the default buffering time for at least older versions of the AirPlay protocol. However my versions of macOS (Catalina 10.15.4 and Mojave 10.14.6) both support AirPlay 2, which is the latest version.
Airplay is a poor choice of transmitting audio if you expect it to stay in sync with video as they are sent by utterly different codepaths, with one having no idea of the other.
The video in this case goes directly from the app to the screen.
The audio in this case goes off to the Airplay server, which buffers it up as it sees fit, then sends it off to Sonos.
Note: no attempt can be made to keep these in sync.
Airplay is an Apple-proprietary version of the RTSP protocol, which does offer sync between audio and video sreams, but only to audio+video-capable devices, which Sonos is not.
controlav, thank you for the additional technical information.
If AirPlay is a generally a poor connectivity method for low-latency audio, it sounds like I may need to return the Sonos One and instead look for a different speaker with a Bluetooth connection option, which I already know can be made to work at low-latency.
Sonos Support confirms the following:
Apple will always introduce a fixed two second delay when using Airplay. This delay cannot be modified by any third party API and is locked in by Apple. Here is Apple's official documentation of the latency limit.
Therefore I will return the Sonos One and seek an alternative speaker that does not use the AirPlay interface. This probably means a Bluetooth speaker.
If I was only streaming from a mobile device whose apps generally correct for the AirPlay delay (i.e. an iPhone) then the Sonos One would be okay. However I want to be able to stream from things like laptop system audio whose apps frequently aren’t built to compensate for the delay, even with APIs to detect it (like the AVAudioSession.outputLatency referenced by Sonos Support).