I've seen the topic of 'casting', specifically in terms of how the Google/Sonos integration works, discussed in various topics recently. I thought it might be useful and fun (for me at least) to have a separate topic.
First, I'd define casting very broadly. I'll say that casting is the process of interacting with one electronic device (A) for the purpose of causing a second device B to playback audio or video without wires. This definitely is broader than one you'd typically think of as casting, but I think it's worth defining it this way to better understand the interactions. Maybe 'control' is better word to use, with casting being a subset, but control would go well beyond audio/video, and I wish to limit the scope.
So second, in an attempt to categories the types of casting, given how I've defined it, here what I see.
1 - Stream casting (probably a better word for this) - This is where device A actually passes the audio/video content to device B. Device A could be generating/storing the content itself or streaming the content itself.
1 A - The casting occurs over a signal/medium device A creates itself. Ex- bluetooth
1 B- The casting occurs over a 3rd party signal/medium, such as wifi. Ex- airplay 2
The advantage of this is that it usually device B can be relatively 'dumb', without access to any content on it's own. It tends to require less configuration to setup the relationship between A and B as well. The downside is that device A and B have to be communication with each other throughout playback.
2 - Instruction casting - This is where device A instructs device B on what audio/video to play, relying on device B to stream the content on it's own.
2 A - Occurs over a signal/medium device A creates itself. This is almost always one way communication where device B is required to give feedback to the user. Ex - IR remote control
2 B- Occurs over a 3rd party signal/medium, such as wifi. This usually has two way communication where device A can give feedback to the user. Ex - Sonos app
2 C - Occurs through the cloud. Instructions are sent from device A to a cloud server which then talks to another cloud server or directly the device B. Ex - Alexa cast, how Alexa and Google home instruct Sonos speakers.
The advantage of this is that device A and B don't have to be in constant communication, which also means that the devices do not need to be constantly in range of each other. For case C, they don't even need to be remotely close to each other. It also often allows for several device Bs to better play audio/video in sync. The downside of these is that is the device B needs to be smart enough to be able to generate/stream content on it's own. It also must be authorized to access that content, which is often not the case.
In terms of what Sonos itself does, 2B is the type of casting it primarily uses. It does have 2A in it's home theatre speakers for some limited control. 2 C is becoming more and more common due to voice control. The only method in the first set of types (1) it uses is airplay 2, and this is common frustration among users who want to use what they are familiar with.
My limited understanding of Google's chromecast is that it operates as either 1B or 2B depending on the situation. So then is the issue with using chromecast and Sonos together a matter of whether Sonos needs to be operate in 1B to accommodate chromecast, or does chromecast need to have a version that solely operates in 2B with Sonos? Or perhaps chromecast is developing a version that operates in 2C which Sonos can work with?