Sonos is the whole home solution for sound. Listeners can group speakers from all over their house to listen to music. They can have the “The Weight” by The Band playing in the Kitchen, the Living Room, and the Bedroom, all in perfect sync. This magical experience is core to what make Sonos special. Apps and integrations that build on the Sonos Sound Platform must keep track of these groups and display them correctly. Even after successfully discovering and connecting to groups and players, apps should continue to “follow groups around” as they change.
To the listener, things are simply working as expected. Things are simple and predictable. Your app is doing the hard work behind the scenes. When your app follows groups correctly, the listeners won’t even notice. If the magic breaks, and groups get lost, listeners will notice instantly.
Discover and display available groups
As noted above, listeners can enjoy the same content in many rooms, across one or more Sonos players. We call these collection of players “groups”, and your app may target them specifically.
If your experience targets groups, your app must present the current grouping arrangement of Sonos speakers. Most music and content integrations operate this way for playback. Your app should keep group information up to date the entire time the user is viewing groups.
- Keep groups accurate and up to date.
- Listeners may change grouping in other apps or integrations. This is continuity of control in action. Your app must respond to these in real time. Your app must reflect these changes the entire time it displays Sonos groups.
- When your app displays groups, it must display the current state of the Sonos system without a manual refresh.
- Show selected groups.
- For example, highlight or add a check mark to the selected group.
- When the user closes the list of groups, show which group they targeted. For example:
- Show the name of the group that the user selected somewhere on the screen.
- Use an icon to show the targeted group and allow the user to tap the icon to get more information about it.
Discover and display available speakers
If your app targets individual speakers it should list all speakers in the house and allow the user to select one. For example, a wall-mounted Sonos remote. Since the remote doesn’t move, it always controls a single room. It wouldn’t matter which group the room is a part of. During setup, the remote (or set up app if required) should list all speakers and allow the user to target one.
- Keep players accurate and up to date.
- Fetch fresh player information whenever you show the screen.
Follow Groups as They Change
After discovery and initial connection, your app is still responsible for targeting and controlling the selected group or speaker. This group can be comprised of a single speaker, or more than one. There will likely be more than one group in a household, each possibly playing different content. The composition of the targeted group can change at any time, along with the name of the group.
- Individual Speaker Targeting Apps: Follow the speaker
- As the speaker moves between groups, keep track of those groups.
- Disconnect from old groups, and connect to joined groups.
- If your app shows the current group name, ensure the group name is correct. For example, “Now Playing” screens often display the names of connected groups.