Claims
- 1. An apparatus for smoothly playing a pre-determined sequence of songs transmitted from a server over the Internet, the apparatus comprising a processor, a first memory that stores at least one program used by said processor to control the playing of the sequence of songs, and a second memory which is available to said at least one program for operations,
wherein said at least one program causes said processor at least to: as soon as a song starts to play, start to download, consecutively, a first small portion of each of a number of songs which are, in the pre-determined sequence, subsequent to the song in playing, said downloaded small portions being pre-cached in a buffer which is an area in said second memory; as soon as the user skips to a target song whose first small portion has been pre-cached, start to play the first small portion of said target song; and at the same time start to download the rest of said target song so that as soon as the playing of the first small portion of said target song ends, start to play the rest of said target song which is being downloaded from the server over the Internet.
- 2. The apparatus of claim 1, wherein said first small portion is approximately the data required for playing the first ten seconds.
- 3. The apparatus of claim 1, wherein said number is five.
- 4. The apparatus of claim 1, wherein said number of songs is all songs subsequent to the song in playing.
- 5. The apparatus of claim 1, wherein said buffer follows a first-in first-out algorithm and allows writing while reading.
- 6. A method for smoothly playing a pre-determined sequence of songs transmitted from a remote server to a local device over the Internet, comprising the steps of:
(a) as soon as a song starts to play, downloading, consecutively, a first small portion of each of a number of songs which are, in the pre-determined sequence, subsequent to said song in playing; and (b) pre-caching said downloaded small portions in a buffer which is an area of said local device's memory.
- 7. The method of claim 6, further comprising the steps of:
(c) as soon as the user skips from a song in playing to a target song, checking whether a file for said target song exists in said buffer, wherein if the check result is yes, continuing on step (d); (d) playing the first small portion of said target song; and (e) as soon as step (d) starts, downloading the rest of said target song; (f) as soon as step (d) starts, deleting any pre-cached song prior to said target song in said pre-determined sequence; and (g) playing the rest of said target song which is being downloaded from the server over the Internet.
- 8. The method of claim 7, further comprising the step of:
(h) as soon as step (d) starts, continuing on step (a), wherein if one or more songs subsequent to said target song are already pre-cached, skipping said one or more songs and downloading the subsequent ones, executively, to make up said number.
- 9. The method of claim 8, further comprising the steps of:
(i) if no skip command is given by the user while said target song is playing, as soon as the playing of said target song ends, playing the next song immediately subsequent to said target song; and (j) if a skip command is given by the user while said target song is playing, continuing on step (c).
- 10. The method of claim 7, wherein if the check result of step (c) is no, further comprising the steps of:
(k) sending request to stop transmitting of said song in playing and start transmitting said target song; (l), at the same time with step (k), deleting the pre-cached portion for any song which is prior to said target song in the pre-determined sequence of songs; (m) downloading said target song; (n) playing said target song while being downloaded as soon as said buffer allows so; and (o) at the same time with step (n), continuing on step (a).
- 11. The method of claim 10, subsequent to step (n), further comprising the steps of:
(p) if another skip command is given by the user while said target song is playing, continuing on step (c); and (q) if no skip command is given by the user while said target song is playing, as soon as the playing of said target song ends, playing the first small portion of the next song subsequent to said target song; (r) at the same time with step (q), downloading the rest of said target song; (s) at the same time with step (q), continuing on step (a), wherein if one or more songs subsequent to said next song are already pre-cached, skipping said one or more songs and downloading the subsequent ones, executively, to make up said number; and (t) subsequent to step (q), playing the rest of the next song which is being download from the server over the Internet
- 12. The method of claim 6, wherein said first small portion is approximately the data required for playing the first ten seconds.
- 13. The method of claim 6, wherein said number is five.
- 14. The method of claim 6, wherein said number of songs is all songs subsequent to the song in playing.
- 15. The method of claim 6, wherein said buffer follows a first-in first-out algorithm and allows writing while reading.
- 16. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method for smoothly playing a pre-determined sequence of songs transmitted from a remote server to a local device over the Internet, comprising the steps of:
(a) as soon as a song starts to play, downloading, consecutively, a first small portion of each of a number of songs which are, in the pre-determined sequence, subsequent to said song in playing; and (b) pre-caching said downloaded small portions in a buffer which is an area of said local device's memory.
- 17. The program storage medium of claim 16, further comprising the steps of:
(c) as soon as the user skips from a song in playing to a target song, checking whether a file for said target song exists in said buffer, wherein if the check result is yes, continuing on step (d); (d) playing the first small portion of said target song; and (e) as soon as step (d) starts, downloading the rest of said target song; (f) as soon as step (d) starts, deleting any pre-cached song prior to said target song in said pre-determined sequence; and (g) playing the rest of said target song which is being downloaded from the server over the Internet.
- 18. The program storage medium of claim 17, further comprising the step of:
(h) as soon as step (d) starts, continuing on step (a), wherein if one or more songs subsequent to said target song are already pre-cached, skipping said one or more songs and downloading the subsequent ones, executively, to make up said number.
- 19. The program storage medium of claim 18, further comprising the steps of:
(i) if no skip command is given by the user while said target song is playing, as soon as the playing of said target song ends, playing the next song immediately subsequent to said target song; and (j) if a skip command is given by the user while said target song is playing, continuing on step (c).
- 20. The program storage medium of claim 17, wherein if the check result of step (c) is no, further comprising the steps of:
(k) sending request to stop transmitting of said song in playing and start transmitting said target song; (l), at the same time with step (k), deleting the pre-cached portion for any song which is prior to said target song in the pre-determined sequence of songs; (m) downloading said target song; (n) playing said target song while being downloaded as soon as said buffer allows so; and (o) at the same time with step (n), continuing on step (a).
- 21. The program storage medium of claim 20, subsequent to step (n), further comprising the steps of:
(p) if another skip command is given by the user while said target song is playing, continuing on step (c); and (q) if no skip command is given by the user while said target song is playing, as soon as the playing of said target song ends, playing the first small portion of the next song subsequent to said target song; (r) at the same time with step (q), downloading the rest of said target song; (s) at the same time with step (q), continuing on step (a), wherein if one or more songs subsequent to said next song are already pre-cached, skipping said one or more songs and downloading the subsequent ones, executively, to make up said number; and (t) subsequent to step (q), playing the rest of the next song which is being download from the server over the Internet
- 22. The program storage medium of claim 16, wherein said first small portion is approximately the data required for playing the first ten seconds.
- 23. The program storage medium of claim 16, wherein said number is five.
- 24. The program storage medium of claim 16, wherein said number of songs is all songs subsequent to the song in playing.
- 25. The program storage medium of claim 16, wherein said buffer follows a first-in first-out algorithm and allows writing while reading.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to the U.S. provisional patent application Serial No. 60/433,734, filed on Dec. 13, 2002, which application is incorporated herein in its entirety by this reference thereto.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60433734 |
Dec 2002 |
US |