IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0688423
(2003-10-16)
|
등록번호 |
US-7797064
(2010-10-04)
|
발명자
/ 주소 |
- Loomis, Stephen
- Gondhalekar, Mangesh Madhukar
|
대리인 / 주소 |
Schwabe, Williamson & Wyatt, P.C.
|
인용정보 |
피인용 횟수 :
114 인용 특허 :
121 |
초록
▼
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-bufferin
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.
대표청구항
▼
The invention claimed is: 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 apparat
The invention claimed is: 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 to while 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. 2. The apparatus of claim 1, wherein the portion of the target content segment is approximately the data of the first ten seconds of the target content segment. 3. The apparatus of claim 1, wherein the number of portions of content segment to cache in advance is five. 4. The apparatus of claim 1, wherein the number of portions of content segments to cache in advance is all content segments in the pre-determined sequence of content segments that are subsequent to the playing content segment. 5. The apparatus of claim 1, wherein the pre-buffer cache follows a first-in first-out algorithm and allows writing while reading. 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. 7. The method of claim 6, further comprising: downloading at least another portion of the target content segment that is not in the pre-puffer cache; and playing the other portion of the target content segment. 8. The method of claim 7, further comprising: if the portion of the target content segment is in the pre-buffer cache, downloading, consecutively, a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the target content segment, wherein if portions of the one or more content segments subsequent to the target content segments are already in the pre-buffer cache, skipping the downloading of the portions of the one or more content segments already having portions in the pre-buffer cache and downloading the portions of the subsequent content segments such that portions of each of the number of content segments are downloaded to the pre-buffer cache. 9. The method of claim 8, further comprising: if no skip command is received while the target content segment is playing, as the playing of the target content segment ends, playing the content segment immediately subsequent to the target content segment; and if a skip command is received while the target content segment is playing checking whether the beginning portion of the content segment immediately subsequent to the target content segment is in the pre-buffer cache. 10. The method of claim 7, wherein if the beginning portion of the target content segment is not in the pre-buffer cache, the method, further comprised: sending a request to stop transmitting the playing content segment and to start transmitting the target content segment and at least substantially simultaneously: deleting the any content segment which precedes the target content segment in the pre-determined sequence of content segments from the pre-buffer cache; downloading at least a remaining portion of the target content segment; and begin playing the target content segment after a sufficient portion of the target content segment has been downloaded. 11. The method of claim 10, further comprising: if playback is skipped from the target content segment to another target content segment, checking whether the portion of the other target content segment is in the pre-buffer cache; and if playback is not skipped from the target content segment, playing portion of the content segment subsequent to the target content segment after the end of the target content segment is played and downloading at least a portion of the target content segment which is not in the pre-buffer cache, wherein if portions of the one or more content segments subsequent to the content segments in the pre-determined sequence of content segments are already in the pre-buffer cache, skipping the downloading of the beginning portions of the one or more content segments already having beginning portions in the pre-buffer cache and downloading the beginning portions of the subsequent content segments such that portions of each of the number of content segments are downloaded to the pre-buffer cache. 12. The method of claim 6, wherein the portion of the target content segment is approximately the data of the first ten seconds of the target content segment. 13. The method of claim 6, wherein the number of portions of content segments to cache in advance is five. 14. The method of claim 6, wherein the number of portions of content segments to cache in advance is all content segments in the pre-determined sequence of content segments that are subsequent to the playing content segment. 15. The method of claim 6, wherein the pre-buffer cache follows a first-in first-out algorithm and allows writing while reading. 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. 17. The computer-readable storage medium of claim 16, wherein the operations further comprise: downloading at least another portion of the target content segment that is not in the pre-puffer cache; and playing the other portion of the target content segment. 18. The computer-readable storage medium of claim 17, wherein the operations further comprise: if the portion of the target content segment is in the pre-buffer cache, downloading, consecutively, a portion of each of a number of content segments which are, in the pre-determined sequence, subsequent to the target content segment, wherein if portions of the one or more content segments subsequent to the target content segment are already in the pre-buffer cache, skipping the downloading of the portions of the one or more content segments already having portions in the pre-buffer cache and downloading the portions of the subsequent content segments such that portions of each of the number of content segments are downloaded to the pre-buffer cache. 19. The computer-readable storage medium of claim 18 wherein the operations further comprise: if no skip command is received while the target content segment is playing, as the playing of the target content segment ends, playing the content segment immediately subsequent; and if a skip command is received while the target content segment is playing checking whether the beginning portion of the content segment immediately subsequent to the content segment is in the pre-buffer cache. 20. The computer-readable storage medium of claim 17, wherein if the beginning portion of the target content segment is not in the pre-buffer cache, the operations further comprise: sending a request to stop transmitting the playing content segment and to start transmitting the target content segment and at least substantially simultaneously: deleting the portion of any content segment which is prior to the target content segments in the pre-determined sequence of content segments from the pre-buffer cache; downloading at least a remaining portion of the target content segment; and begin playing the target content segment after a sufficient portion of the target content segment has been downloaded. 21. The computer-readable storage medium of claim 20, wherein the operations further comprise: if playback is skipped from the target content segment to another target content segment, checking whether the portion of the other target content segment is in the pre-buffer cache; and if playback is not skipped from the target content segment, playing the portion of the content segment subsequent to the target content segment which is not in the pre-buffer cache and downloading at least a portion of the target content segment which is not in the pre-buffer cache; wherein if portions of the one or more content segments subsequent to at least a portion of the target content segment are already in the pre-buffer cache, skipping the downloading of the beginning portions of the one or more content segments already having beginning portions in the pre-buffer cache and downloading the beginning portions of the subsequent content segments such that portions of each of the number of content segments are downloaded to the pre-buffer cache. 22. The computer-readable storage medium of claim 16, wherein the portion of the target content segment is approximately the data of the first ten seconds of the target content segment. 23. The computer-readable storage medium of claim 16, wherein the number of portions of content segments to cache in advance is five. 24. The computer-readable storage medium of claim 16, wherein the number of portions of content segments to cache in advance is all content segments in the pre-determined sequence of content segments that are subsequent to the playing content segment. 25. The computer-readable storage medium of claim 16, wherein the pre-buffer cache follows a first-in first-out algorithm and allows writing while reading. 26. The apparatus of claim 1, wherein the number of content segments that are to be downloaded to the pre-buffer cache and a size of the pre-buffer cache are configurable via a function call. 27. The apparatus of claim 1, wherein the number of content segments that are to be downloaded to the pre-buffer cache and the length of each of the portions are configurable via a function call. 28. The apparatus of claim 1, wherein the control program is further configured to delete the portions of each of the number of content segments. 29. The apparatus of claim 1, wherein the content segments include songs and/or videos.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.