Apparatus and method for skipping songs without delay
First Claim
1. An apparatus for playing a pre-determined sequence of content segments, comprising:
- a processor; and
a memory that stores at least one control program usable by the processor to control the playing of a predetermined sequence of content segments, and wherein the apparatus is configured to;
in response to initiation of play of a content segment, initiate downloading to a pre-buffer cache of a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the playing content segment;
in response to skipping to a target content segment of the predetermined sequence of content segments whose portion has been downloaded to the pre-buffer cache, initiate play of the downloaded portion of the target content segment; and
towhile playing the downloaded portion of the target content segment, initiate downloading of the rest of the target content segment,wherein the pre-determined sequence of content segments is scheduled by a multimedia scheduler configured to schedule content segments for network broadcast, and wherein the multimedia scheduler comprises;
at least one work manager for each of a plurality of channels serviced, the work manager including at least one producer thread, a task queue and at least one worker thread; and
one or more scheduler objects associated with each producer thread, wherein the work manager and associated scheduler objects create and maintain a broadcast schedule for each of the channels according to predefined criteria, wherein said at least one producer thread checks a channel at configurable intervals and increments the channel'"'"'s schedule by generating a work request and placing it in the task queue, wherein the worker threads execute the work requests, and wherein the multimedia scheduler is scalable to service the plurality of broadcast channels and/or services simultaneously.
7 Assignments
0 Petitions
Accused Products
Abstract
In an Internet based personalized radio, where a user has a pre-selected list of songs to be played in a particular order, the invention provides an apparatus and method allowing the user to skip one or more songs without having an unintended delay between skips. This is accomplished by pre-buffering the first ten seconds of each of the next several songs on the list so that, should the user choose to skip to any of the next several songs, the pre-buffered ten seconds of the target song is already available to be played. The apparatus starts to play the pre-buffered port of the target song and starts to download the rest of it at the same time. Because the initial buffering time for the rest of the target song is less than ten seconds, the target song is played smoothly.
300 Citations
29 Claims
-
1. An apparatus for playing a pre-determined sequence of content segments, comprising:
-
a processor; and a memory that stores at least one control program usable by the processor to control the playing of a predetermined sequence of content segments, and wherein the apparatus is configured to; in response to initiation of play of a content segment, initiate downloading to a pre-buffer cache of a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the playing content segment; in response to skipping to a target content segment of the predetermined sequence of content segments whose portion has been downloaded to the pre-buffer cache, initiate play of the downloaded portion of the target content segment; and
towhile playing the downloaded portion of the target content segment, initiate downloading of the rest of the target content segment, wherein the pre-determined sequence of content segments is scheduled by a multimedia scheduler configured to schedule content segments for network broadcast, and wherein the multimedia scheduler comprises; at least one work manager for each of a plurality of channels serviced, the work manager including at least one producer thread, a task queue and at least one worker thread; and one or more scheduler objects associated with each producer thread, wherein the work manager and associated scheduler objects create and maintain a broadcast schedule for each of the channels according to predefined criteria, wherein said at least one producer thread checks a channel at configurable intervals and increments the channel'"'"'s schedule by generating a work request and placing it in the task queue, wherein the worker threads execute the work requests, and wherein the multimedia scheduler is scalable to service the plurality of broadcast channels and/or services simultaneously. - View Dependent Claims (2, 3, 4, 5, 26, 27, 28, 29)
-
-
6. A method for playing a pre-determined sequence of content segments, comprising:
-
in response to initiation of play of a a content segment on the local computer, downloading to the local computer a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the playing content segment; pre-caching the downloaded portions in a pre-buffer cache of the local computer; in response to skipping from a playing content segment to a target content segment, checking whether the portion for the target content segment is in the pre-buffer cache; and if the portion of the target content segment is in the pre-buffer cache, initiating play of the portion of the target content segment from the pre-buffer cache, wherein the pre-determined sequence of content segments was pre-scheduled for network broadcast on one of a plurality of channels, including; creating and maintaining, by a work manager and associated scheduler objects, a broadcast schedule for each of the channels according to predefined criteria; checking, by at least one producer thread, the broadcast schedule for each of the channels at configurable intervals; incrementing, by at least one producer thread, the broadcast schedule for each of the channels by generating a work request and placing the work request in a task queue; and executing, by worker threads, the work requests. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage medium, having instructions stored thereon that, if executed by a computing device, cause the computing device to perform operations for playing a predetermined sequence of content segments, comprising:
-
in response to initiation of play of a content segment on the computing device, downloading to the computing device, consecutively, a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the playing content segment; pre-caching the downloaded portions in a pre-buffer cache of the computing device; in response to skipping from a playing content segment to a target content segment, checking whether the portion for the target content segment is in the pre-buffer cache; and if the portion of the target content segment is in the pre-buffer cache, initiating play of the portion of the target content segment from the pre-buffer cache, wherein the pre-determined sequence of content segments was pre-scheduled for network broadcast on one of a plurality of channels, including; creating and maintaining, by a work manager and associated scheduler objects, a broadcast schedule for each of the channels according to predefined criteria; checking, by at least one producer thread, the broadcast schedule for each of the channels at configurable intervals; incrementing, by at least one producer thread, the broadcast schedule for each of the channels by generating a work request and placing the work request in a task queue; and executing, by worker threads, the work requests. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification