notes.txt (1727B)
1 2 There are two kinds of identifiers in the world of Sonos: 3 1. objectID, which is what the Browse call deals in 4 2. resourceID, which is what represents a song or playlist 5 6 A zoneplayer's state is a resource URI (CurrentURI) which represents 7 the song or playlist it's playing, the number of tracks in that 8 resource (1 for a song, N for a playlist), and the current track, 9 along with the play state (STOPPED, PLAYING, etc) and the play mode 10 (NORMAL, SHUFFLE, etc). 11 12 The AVTransport actions Play, Pause, Stop, Next, Previous, Seek act on 13 this player state. SetAVTransportURI can be used to change the resource 14 URI that the player is playing from. This will cause the player to enter 15 the STOPPED state. 16 17 The Browse call returns both ObjectID and ResourceID for items, allowing 18 them to be both browsed and played. The AVTransport can be queried for 19 its CurrentURI (via GetMediaInfo) but the ObjectID is not returned. If 20 you don't know the ResourceID:ObjectID mapping there is no easy way to 21 find it. 22 23 objectIDs exist in hierarchies: 24 S: is the root of all filesystems the sonos can play from 25 A: is the root of all metadata hierarchies (A:ARTIST, A:ALBUM, ...) 26 Q: is the root of "The Queue" which is always Q:0 27 SQ: is the root of saved queues (user created playlists) 28 29 Q:0 can be manipulated by the actions AddURIToQueue, RemoveTrackFromQueue, 30 RemoveAllTracksFromQueue, ReorderTracksInQueue. Its contents may be 31 saved to a SQ:# saved queue (created new or overwritten existing) using 32 the SaveQueue action. The SetAVTransportURI call which switches what's 33 being played never modifies the contents of Q:0 -- you can switch to 34 an album or any other playlist, and switch back to the main queue later 35 without losing its state. 36 37 38