IP Library › Granted Patent US 10,587,602
Granted Patent B2
US 10,587,602 · App. 16/372,743 · Granted Mar 10, 2020

Cloud queue synchronization

Inventors: Arthur L. Coburn, IV (Lexington, MA); Steven Beckhardt (Boston, MA); Andrew J. Schulert (Cambridge, MA)
Assignee: Sonos, Inc.
H04L63/08G05B15/02G06F3/16G06F3/165G06F16/44G06F16/638G06F16/951G06F21/44H04H60/80H04L41/22H04L63/105H04L65/1003H04L65/4069H04L65/4084H04L65/60H04L65/602H04L65/608H04L67/10H04L67/1095H04L67/12H04L67/325H04N21/2541H04N21/25816H04N21/26258H04N21/4325H04N21/43615H04N21/4627H04N21/4825H04N21/6377H04N21/654H04N21/658H04N21/8113H04N21/8355H04N21/8455H04R27/00H04R2227/005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,587,602
App. No.
16/372,743
Granted
Mar 10, 2020
Kind
B2
Abstract

Example techniques relate to cloud queue synchronization. An example implementation may involve a playback device receiving, from a cloud computing system, data representing a play message comprising: (i) a play pointer representing a particular media item; (ii) an indication of one or more media items, the one or more media items including the particular media item; and (iii) a universal resource identifier (URI) representing a location of the particular media item at one or more servers of a streaming audio service. The playback device queues the one or more media items in a local queue stored in data storage of the playback device, streams the particular media item, and plays back the particular media item. After beginning playback of the particular media item, the playback device sends a playback started message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item.

Claims (63)

1. A system comprising a playback device and a cloud computing system, the cloud computing system configured to perform operations comprising:

receiving, via a network interface of the cloud computing system from a mobile device, data representing a command to play back one or more media items on the playback device, the one or more media items including a particular media item;

sending, via the network interface of the cloud computing system, data representing a play message comprising: (i) a play pointer representing the particular media item;

(ii) an indication of the one or more media items; and (iii) a universal resource identifier (URI) representing a location of the particular media item at one or more servers of a streaming audio service;

the playback device configured to perform operations comprising:

receiving, via a network interface of the playback device, the data representing the play message;

after receiving the data representing the play message: (i) queuing the one or more media items in a local queue stored in data storage of the playback device; (ii) streaming, via the network interface of the playback device, the particular media item; and

(iii) playing back the particular media item on one or more speakers via an audio stage comprising an amplifier; and

after beginning playback of the particular media item, sending, via a network interface of the playback device, a playback started message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback started message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

2. The system of claim 1 , wherein the particular media item is a second media item, wherein the playback device played back a first media item preceding the second media item such that a local pointer represents the first media item as the currently playing media item prior to beginning playback of the second media item, wherein the play message further comprises a previous pointer representing the second media item as a previously played media item, and wherein the playback device is configured to perform operations further comprising:

determining whether the previous pointer of the play message matches the local pointer; and

when the previous pointer of the play message matches the local pointer, queuing the second media item in the local queue stored in data storage of the playback device.

3. The system of claim 1 , wherein the playback device is configured to perform operations further comprising:

while playing back a second media item of the local queue, receiving, via a network interface of the playback device from the cloud computing system, data representing a stop message;

in response to receiving the data representing the stop message, stopping playback of the second media item; and

after stopping playback of the second media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the second media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the second media item as the currently playing media item.

4. The system of claim 1 , wherein the play message further comprises an instruction to replace all media items in the local queue, wherein receiving, via a network interface of the playback device, the data representing the play message comprises receiving the data representing the play message while playing back a given media item, wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises replacing all media items in the local queue with the one or more media items, and wherein the playback device is configured to perform operations further comprising:

in response to receiving the data representing the play message, stopping playback of the given media item; and

after stopping playback of the given media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

5. The system of claim 1 , wherein the play message further comprises an instruction to replace queued media items in the local queue, wherein receiving, via a network interface of the playback device, the data representing the play message comprises receiving the data representing the play message while playing back a given media item, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the one or more media items in the local queue after the given media item.

6. The system of claim 5 , wherein the play message indicates a playlist comprising the one or more media items, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the playlist of the one or more media items in the local queue after the given media item.

7. The system of claim 1 , wherein the local queue includes one or more previously-queued media items, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the one or more media items in the local queue after the one or more previously-queued media items.

8. The system of claim 1 , wherein the play message is a first play message, and wherein the playback device is configured to perform operations further comprising:

when playback of the particular media item is finishing, sending, via the network interface of the playback device to the cloud computing system, a playback finished message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item; and

receiving, via the network interface of the playback device in response to the playback finished message, a second play message comprising: (i) the play pointer, the play pointer representing a particular subsequent media item in the representation of the local queue at the cloud computing system; (ii) an indication of one or more subsequent media items in the representation of the local queue; and (iii) a universal resource identifier (URI) representing a location of the particular subsequent media item at one or more servers of the streaming audio service.

9. A playback device comprising:

a network interface;

an audio stage comprising an amplifier;

one or more processors;

a housing, the housing carrying at least the network interface, the audio stage, the one or more processors, and a data storage having stored therein instructions executable by the one or more processors to cause the playback device to perform operations comprising:

receiving, via a network interface of the playback device from a cloud computing system, data representing a play message comprising: (i) a play pointer representing a particular media item; (ii) an indication of one or more media items, the one or more media items including the particular media item; and (iii) a universal resource identifier (URI) representing a location of the particular media item at one or more servers of a streaming audio service;

after receiving the data representing the play message: (i) queuing the one or more media items in a local queue stored in data storage of the playback device; (ii) streaming, via the network interface of the playback device, the particular media item; and (iii) playing back the particular media item on one or more speakers via the audio stage comprising the amplifier; and

after beginning playback of the particular media item, sending, via a network interface of the playback device, a playback started message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback started message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

10. he playback device of claim 9 , wherein the particular media item is a second media item, wherein the playback device played back a first media item preceding the second media item such that a local pointer represents the first media item as the currently playing media item prior to beginning playback of the second media item, wherein the play message further comprises a previous pointer representing the second media item as a previously played media item, and wherein the playback device is configured to perform operations further comprising:

determining whether the previous pointer of the play message matches the local pointer; and

when the previous pointer of the play message matches the local pointer, queuing the second media item in the local queue stored in data storage of the playback device.

11. The playback device of claim 9 , wherein the playback device is configured to perform operations further comprising:

while playing back a second media item of the local queue, receiving, via a network interface of the playback device from the cloud computing system, data representing a stop message;

in response to receiving the data representing the stop message, stopping playback of the second media item; and

after stopping playback of the second media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the second media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the second media item as the currently playing media item.

12. The playback device of claim 9 , wherein the play message further comprises an instruction to replace all media items in the local queue, wherein receiving, via a network interface of the playback device, the data representing the play message comprises receiving the data representing the play message while playing back a given media item, wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises replacing all media items in the local queue with the one or more media items, and wherein the playback device is configured to perform operations further comprising:

in response to receiving the data representing the play message, stopping playback of the given media item; and

after stopping playback of the given media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

13. The playback device of claim 9 , wherein the play message further comprises an instruction to replace queued media items in the local queue, wherein receiving, via a network interface of the playback device, the data representing the play message comprises receiving the data representing the play message while playing back a given media item, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the one or more media items in the local queue after the given media item.

14. The playback device of claim 13 , wherein the play message indicates a playlist comprising the one or more media items, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the playlist of the one or more media items in the local queue after the given media item.

15. The playback device of claim 9 , wherein the local queue includes one or more previously-queued media items, and wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises queuing the one or more media items in the local queue after the one or more previously-queued media items.

16. The playback device of claim 9 , wherein the play message is a first play message, and wherein the playback device is configured to perform operations further comprising:

when playback of the particular media item is finishing, sending, via the network interface of the playback device to the cloud computing system, a playback finished message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item; and

receiving, via the network interface of the playback device in response to the playback finished message, a second play message comprising: (i) the play pointer, the play pointer representing a particular subsequent media item in the representation of the local queue at the cloud computing system; (ii) an indication of one or more subsequent media items in the representation of the local queue; and (iii) a universal resource identifier (URI) representing a location of the particular subsequent media item at one or more servers of the streaming audio service.

17. A method comprising:

receiving, via a network interface of a playback device from a cloud computing system, data representing a play message comprising: (i) a play pointer representing a particular media item; (ii) an indication of one or more media items, the one or more media items including the particular media item; and (iii) a universal resource identifier (URI) representing a location of the particular media item at one or more servers of a streaming audio service;

after receiving the data representing the play message: (i) queuing the one or more media items in a local queue stored in data storage of the playback device; (ii) streaming, via the network interface of the playback device, the particular media item; and (iii) playing back the particular media item on one or more speakers via an audio stage comprising an amplifier; and

after beginning playback of the particular media item, sending, via a network interface of the playback device, a playback started message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback started message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

18. The method of claim 17 , wherein the particular media item is a second media item, wherein the playback device played back a first media item preceding the second media item such that a local pointer represents the first media item as the currently playing media item prior to beginning playback of the second media item, wherein the play message further comprises a previous pointer representing the second media item as a previously played media item, and wherein the playback device is configured to perform operations further comprising:

determining whether the previous pointer of the play message matches the local pointer; and

when the previous pointer of the play message matches the local pointer, queuing the second media item in the local queue stored in data storage of the playback device.

19. The method of claim 17 , further comprising:

while playing back a second media item of the local queue, receiving, via a network interface of the playback device from the cloud computing system, data representing a stop message;

in response to receiving the data representing the stop message, stopping playback of the second media item; and

after stopping playback of the second media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the second media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the second media item as the currently playing media item.

20. The method of claim 17 , wherein the play message further comprises an instruction to replace all media items in the local queue, wherein receiving, via a network interface of the playback device, the data representing the play message comprises receiving the data representing the play message while playing back a given media item, wherein queuing the one or more media items in the local queue stored in data storage of the playback device comprises replacing all media items in the local queue with the one or more media items, and wherein the method further comprises:

in response to receiving the data representing the play message, stopping playback of the given media item; and

after stopping playback of the given media item, sending, via a network interface of the playback device, a playback stopped message comprising the play pointer, the play pointer representing the particular media item as the currently playing media item, wherein the playback stopped message causes the cloud computing system to update a representation of the local queue at the cloud computing system with the particular media item as the currently playing media item.

Assignments (2)
SECURITY AGREEMENT Recorded Oct 15, 2021
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058123/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: COBURN, ARTHUR L., IV; BECKHARDT, STEVEN; SCHULERT, ANDREW
To: SONOS, INC.
Reel/Frame 048766/0303 →
Continuity (6)
Continuation 16143021 · Sep 26, 2018
Continuation 15477988 · Apr 3, 2017
Continuation 15130672 · Apr 15, 2016
Continuation 14616364 · Feb 6, 2015
Provisional Application 62007906 · Jun 4, 2014
Related Publication 20190230074A1 · Jul 25, 2019
Cited By (3)
US 12,236,068 US 12,481,475 US 12,688,003