Claims
- 1. A method for selectively limiting skipping during media playback, comprising:
receiving input requesting a skip of at least a portion of a media item, the skip having a length; determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allowing the requested skip.
- 2. The method of claim 1, further comprising, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, updating the current slippage value to reflect the requested skip.
- 3. The method of claim 1, further comprising, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, adding the length of the requested skip to the current slippage value.
- 4. The method of claim 3, wherein adding the length of the requested skip to the current slippage value comprises:
subtracting the elapsed time for the skip from the length of the skipped portion of the media item; and adding the result of the subtraction to the current slippage value.
- 5. The method of claim 1, further comprising obtaining a current slippage value by comparing a first difference between theoretical and actual start times for a first song at a first point in time with a second difference between theoretical and actual start times for a second song at a second point in time.
- 6. The method of claim 1, further comprising:
responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, skipping the requested at least one portion of the media item.
- 7. The method of claim 6, wherein skipping the requested at least one portion of the media item comprises:
playing a portion of the media item following the skipped portion of the media item.
- 8. The method of claim 6, wherein skipping the requested at least one portion of the media item comprises:
playing a subsequent media item following the skipped media item.
- 9. The method of claim 6, wherein skipping the requested at least one portion of the media item comprises:
requesting from a server a portion of the media item following the skipped portion of the media item.
- 10. The method of claim 6, wherein skipping the requested at least one portion of the media item comprises:
requesting from a server a subsequent media item following the skipped media item.
- 11. The method of claim 1, further comprising:
responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, executing the requested skip.
- 12. The method of claim 1, further comprising:
responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value, denying the requested skip.
- 13. The method of claim 1, further comprising:
responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value:
skipping a sub-portion of the requested at least one portion of the media item, the sub-portion having a length that, when added to the current slippage value does not exceed the predetermined maximum slippage value.
- 14. The method of claim 1, further comprising:
subtracting the added length from the slippage value after a predetermined time period has elapsed since adding the length.
- 15. The method of claim 14, wherein the predetermined time period is three hours.
- 16. The method of claim 1, wherein the media item comprises a song.
- 17. The method of claim 1, wherein the media item comprises an audio item.
- 18. The method of claim 1, wherein the media item comprises a video item.
- 19. The method of claim 1, further comprising, prior to receiving input requesting a skip, beginning playback of at least one media item.
- 20. The method of claim 1, further comprising, prior to receiving input requesting a skip:
receiving at least one media item from a server; and beginning playback of the at least one media item.
- 21. The method of claim 20, wherein receiving at least one media item comprises receiving the at least one media item in a streaming format.
- 22. The method of claim 1, wherein the method steps are performed by a client in a client/server system.
- 23. The method of claim 1, further comprising, prior to receiving input requesting a skip:
receiving at least a portion of a media item over a network; and beginning playback of the media item.
- 24. The method of claim 23, wherein the network comprises the Internet.
- 25. The method of claim 1, wherein determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value comprises:
receiving, from a server, an estimated maximum skipping amount for a media item; and determining whether a cumulative skipped amount for the media item, including the requested skip, would exceed the estimated maximum skipping amount.
- 26. The method of claim 1, wherein determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value comprises:
receiving, from a server, an estimated maximum skipping amount for a block of media items; and determining whether a cumulative skipped amount for the block of media items, including the requested skip, would exceed the estimated maximum skipping amount.
- 27. The method of claim 1, wherein the requested skip comprises a skip of a media item.
- 28. The method of claim 1, wherein the requested skip comprises a skip of a portion of a media item.
- 29. The method of claim 28, further comprising:
responsive to a determination that adding the length of the media item containing the portion specified in the requested skip to the current slippage value would not exceed the predetermined maximum slippage value:
allowing the requested skip; and adding the length of the requested skip to the current slippage value.
- 30. The method of claim 29, further comprising:
responsive to a determination that adding the length of the media item containing the portion specified in the requested skip to the current slippage value would exceed the predetermined maximum slippage value, denying the requested skip.
- 31. A method for selectively limiting skipping during media playback of a block, the block including a plurality of media items, comprising:
receiving input requesting a skip of at least a portion of one of the media items in the block, the skip having a length; determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allowing the requested skip; and upon conclusion of media playback of the block, determining a new slippage value.
- 32. The method of claim 31, each media item having a length, wherein determining a new slippage value comprises:
determining a total block length, the block length corresponding to a sum of the lengths of the media items in the block; determining an elapsed time for playback of the block; and increasing the slippage value by an amount equal to the difference between the total block length and the elapsed time.
- 33. The method of claim 31, each media item having a length, wherein determining a new slippage value comprises:
determining a total block length, the block length corresponding to a sum of the lengths of the media items in the block; determining an elapsed time for playback of the block; increasing the slippage value by an amount equal to the difference between the total block length and the elapsed time; and responsive to expiry, during playback of the block, of a predetermined time period since a previous increase in slippage value, decreasing the slippage value by an amount corresponding to the previous increase.
- 34. A method for selectively limiting skipping during media playback, comprising:
transmitting at least one media item to a client; receiving, from the client, a signal indicating a request to skip of at least a portion of a media item, the skip having a length; determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allowing the requested skip.
- 35. The method of claim 34, further comprising, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, updating the current slippage value to reflect the requested skip.
- 36. The method of claim 34, further comprising, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, adding the length of the requested skip to the current slippage value.
- 37. The method of claim 34, wherein allowing the requested skip comprises transmitting to the client a portion of the media item following the skipped portion of the media item.
- 38. The method of claim 34, wherein allowing the requested skip comprises transmitting to the client a subsequent media item following the skipped media item.
- 39. A method for selectively limiting skipping during media playback, comprising:
modifying an original performance complement limitation by extending a compliance time period by a predetermined additional time period; formulating a media item playback list conforming to the modified performance complement limitation; responsive to user input requesting a skip of at least a portion of a media item:
determining whether the requested skip would cause a violation of the original performance complement limitation; responsive to the requested skip not causing a violation of the original performance complement limitation, allowing the requested skip; and responsive to the requested skip causing a violation of the original performance complement limitation, denying the requested skip.
- 40. The method of claim 39, wherein determining whether the requested skip would cause a violation of the original performance complement limitation comprises:
determining whether an aggregated skipped amount exceeds the predetermined additional time period.
- 41. In a media playback client, a system for selectively limiting skipping during media playback, comprising:
a user input device, for receiving input requesting a skip of at least a portion of a media item, the skip having a length; a slippage tracker, coupled to the user input device, for determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; and a skip control module, coupled to the slippage tracker, for, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allowing the requested skip.
- 42. The system of claim 41, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the slippage tracker updates the current slippage value to reflect the requested skip.
- 43. The system of claim 41, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the slippage tracker adds the length of the requested skip to the current slippage value.
- 44. The system of claim 41, further comprising:
a media output device, coupled to the skip control module, for, responsive to the skip control module allowing the requested skip, skipping the requested at least one portion of the media item.
- 45. The system of claim 41, further comprising:
a media stream requester, coupled to the skip control module, for, responsive to the skip control module allowing the requested skip, requesting from a server a portion of the media item following the skipped portion of the media item.
- 46. The system of claim 41, further comprising:
a media stream requester, coupled to the skip control module, for, responsive to the skip control module allowing the requested skip, requesting from a server a subsequent media item following the skipped media item.
- 47. The system of claim 41, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value, the skip control module denies the requested skip.
- 48. The system of claim 41, wherein the slippage tracker subtracts the added length from the slippage value after a predetermined time period has elapsed since adding the length.
- 49. The system of claim 48, wherein the predetermined time period is three hours.
- 50. The system of claim 41, wherein the media item comprises a song.
- 51. The system of claim 41, wherein the media item comprises an audio item.
- 52. The system of claim 41, wherein the media item comprises a video item.
- 53. The system of claim 41, further comprising:
a media output device, coupled to the skip control module, for, outputting at least one media item.
- 54. The system of claim 53, further comprising:
a network interface, coupled to the media output device, for receiving at least one media item from a server.
- 55. The system of claim 54, wherein the media output device receives the at least one media item in a streaming format.
- 56. The system of claim 54, wherein the network interface receives the at least one media item across a network.
- 57. The system of claim 56, wherein the network comprises the Internet.
- 58. The system of claim 41, further comprising:
a server interface, coupled to the slippage tracker, for receiving, from a server, an estimated maximum skipping amount for a media item; and wherein the slippage tracker determines whether a cumulative skipped amount for the media item, including the requested skip, would exceed the estimated maximum skipping amount.
- 59. The system of claim 41, further comprising:
a server interface, coupled to the slippage tracker, for receiving, from a server, an estimated maximum skipping amount for a block of media items; and wherein the slippage tracker determines whether a cumulative skipped amount for the block of media items, including the requested skip, would exceed the estimated maximum skipping amount.
- 60. The system of claim 41, wherein the requested skip comprises a skip of a media item.
- 61. The system of claim 41, wherein the requested skip comprises a skip of a portion of a media item.
- 62. In a media playback client, system for selectively limiting skipping during media playback, comprising:
a user input device, for receiving input requesting a skip of at least a portion of a media item, the skip having a length; a slippage tracker, coupled to the user input device, for determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; and a media output device, coupled to the slippage tracker, for, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, executing the requested skip.
- 63. The system of claim 62, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value, the media output device skips a sub-portion of the requested at least one portion of the media item, the subportion having a length that, when added to the current slippage value does not exceed the predetermined maximum slippage value.
- 64. In a media playback client, a system for selectively limiting skipping during media playback of a block, the block including a plurality of media items, the system comprising:
a user input device, for receiving input requesting a skip of at least a portion of one of the media items in the block, the skip having a length; a slippage tracker, coupled to the user input device, for determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; and a skip control module, coupled to the slippage tracker, for, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allowing the requested skip; wherein, upon conclusion of media playback of the block, the slippage tracker determines a new slippage value.
- 65. In a media playback server, a system for selectively limiting skipping during media playback, comprising:
a media item transmission channel, for transmitting at least one media item to a client; a network interface, coupled to the media item transmission channel, for, receiving, from the client, a signal indicating a request to skip of at least a portion of a media item, the skip having a length; a skip control module, coupled to the command input reception interface, for determining whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the network interface transmits, to the client, a command allowing the requested skip.
- 66. The system of claim 65, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the skip control module updates the current slippage value to reflect the requested skip.
- 67. The system of claim 65, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the skip control module adds the length of the requested skip to the current slippage value.
- 68. The system of claim 65, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the media item transmission channel transmits to the client a portion of the media item following the skipped portion of the media item.
- 69. The system of claim 65, wherein, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, the media item transmission channel transmits to the client a subsequent media item following the skipped media item.
- 70. A computer program product for selectively limiting skipping during media playback, comprising:
computer-readable program code configured to cause a computer to receive input requesting a skip of at least a portion of a media item, the skip having a length; computer-readable program code configured to cause a computer to determine whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; computer-readable program code configured to cause a computer to, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, allow the requested skip.
- 71. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer to, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, update the current slippage value to reflect the requested skip.
- 72. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer to, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, add the length of the requested skip to the current slippage value.
- 73. The computer program product of claim 72, wherein the computer-readable program code configured to cause a computer to add the length of the requested skip to the current slippage value comprises:
computer-readable program code configured to cause a computer to subtract the elapsed time for the skip from the length of the skipped portion of the media item; and computer-readable program code configured to cause a computer to add the result of the subtraction to the current slippage value.
- 74. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer to obtain a current slippage value by comparing a first difference between theoretical and actual start times for a first song at a first point in time with a second difference between theoretical and actual start times for a second song at a second point in time.
- 75. The computer program product of claim 70, further comprising:
computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to skip the requested at least one portion of the media item.
- 76. The computer program product of claim 75, wherein the computer-readable program code configured to cause a computer to skip the requested at least one portion of the media item comprises:
computer-readable program code configured to cause a computer to play a portion of the media item following the skipped portion of the media item.
- 77. The computer program product of claim 75, wherein the computer-readable program code configured to cause a computer to skip the requested at least one portion of the media item comprises:
computer-readable program code configured to cause a computer to play a subsequent media item following the skipped media item.
- 78. The computer program product of claim 75, wherein the computer-readable program code configured to cause a computer to skip the requested at least one portion of the media item comprises:
computer-readable program code configured to cause a computer to request from a server a portion of the media item following the skipped portion of the media item.
- 79. The computer program product of claim 75, wherein the computer-readable program code configured to cause a computer to skip the requested at least one portion of the media item comprises:
computer-readable program code configured to cause a computer to request from a server a subsequent media item following the skipped media item.
- 80. The computer program product of claim 70, further comprising:
computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to execute the requested skip.
- 81. The computer program product of claim 70, further comprising:
computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value, to deny the requested skip.
- 82. The computer program product of claim 70, further comprising:
computer-readable program code configured to cause a computer to, responsive to a determination that adding the length of the requested skip to the current slippage value would exceed the predetermined maximum slippage value:
skip a sub-portion of the requested at least one portion of the media item, the sub-portion having a length that, when added to the current slippage value does not exceed the predetermined maximum slippage value.
- 83. The computer program product of claim 70, further comprising:
computer-readable program code configured to cause a computer to subtract the added length from the slippage value after a predetermined time period has elapsed since adding the length.
- 84. The computer program product of claim 83, wherein the predetermined time period is three hours.
- 85. The computer program product of claim 70, wherein the media item comprises a song.
- 86. The computer program product of claim 70, wherein the media item comprises an audio item.
- 87. The computer program product of claim 70, wherein the media item comprises a video item.
- 88. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer, prior to receiving input requesting a skip, to begin playback of at least one media item.
- 89. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer to, prior to receiving input requesting a skip:
receive at least one media item from a server; and begin playback of the at least one media item.
- 90. The computer program product of claim 89, wherein the computer-readable program code configured to cause a computer to receive at least one media item comprises computer-readable program code configured to cause a computer to receive the at least one media item in a streaming format.
- 91. The computer program product of claim 70, further comprising computer-readable program code configured to cause a computer to, prior to receiving input requesting a skip:
receive at least a portion of a media item over a network; and begin playback of the media item.
- 92. The computer program product of claim 91, wherein the network comprises the Internet.
- 93. The computer program product of claim 70, wherein the computer-readable program code configured to cause a computer to determine whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value comprises:
computer-readable program code configured to cause a computer to receive, from a server, an estimated maximum skipping amount for a media item; and computer-readable program code configured to cause a computer to determine whether a cumulative skipped amount for the media item, including the requested skip, would exceed the estimated maximum skipping amount.
- 94. The computer program product of claim 70, wherein the computer-readable program code configured to cause a computer to determine whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value comprises:
computer-readable program code configured to cause a computer to receive, from a server, an estimated maximum skipping amount for a block of media items; and computer-readable program code configured to cause a computer to determine whether a cumulative skipped amount for the block of media items, including the requested skip, would exceed the estimated maximum skipping amount.
- 95. The computer program product of claim 70, wherein the requested skip comprises a skip of a media item.
- 96. The computer program product of claim 70, wherein the requested skip comprises a skip of a portion of a media item.
- 97. The computer program product of claim 96, further comprising:
computer-readable program code configured to cause a computer to, responsive to a determination that adding the length of the media item containing the portion specified in the requested skip to the current slippage value would not exceed the predetermined maximum slippage value:
allow the requested skip; and add the length of the requested skip to the current slippage value.
- 98. The computer program product of claim 97, further comprising:
computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the media item containing the portion specified in the requested skip to the current slippage value would exceed the predetermined maximum slippage value, to deny the requested skip.
- 99. A computer program product for selectively limiting skipping during media playback of a block, the block including a plurality of media items, comprising:
computer-readable program code configured to cause a computer to receive input requesting a skip of at least a portion of one of the media items in the block, the skip having a length; computer-readable program code configured to cause a computer to determine whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to allow the requested skip; and computer-readable program code configured to cause a computer, upon conclusion of media playback of the block, to determine a new slippage value.
- 100. The computer program product of claim 99, each media item having a length, wherein the computer-readable program code configured to cause a computer to determine a new slippage value comprises:
computer-readable program code configured to cause a computer to determine a total block length, the block length corresponding to a sum of the lengths of the media items in the block; computer-readable program code configured to cause a computer to determine an elapsed time for playback of the block; and computer-readable program code configured to cause a computer to increase the slippage value by an amount equal to the difference between the total block length and the elapsed time.
- 101. The computer program product of claim 99, each media item having a length, wherein the computer-readable program code configured to cause a computer to determine a new slippage value comprises:
computer-readable program code configured to cause a computer to determine a total block length, the block length corresponding to a sum of the lengths of the media items in the block; computer-readable program code configured to cause a computer to determine an elapsed time for playback of the block; computer-readable program code configured to cause a computer to increase the slippage value by an amount equal to the difference between the total block length and the elapsed time; and computer-readable program code configured to cause a computer, responsive to expiry, during playback of the block, of a predetermined time period since a previous increase in slippage value, to decrease the slippage value by an amount corresponding to the previous increase.
- 102. A computer program product for selectively limiting skipping during media playback, comprising:
computer-readable program code configured to cause a computer to transmit at least one media item to a client; computer-readable program code configured to cause a computer to receive, from the client, a signal indicating a request to skip of at least a portion of a media item, the skip having a length; computer-readable program code configured to cause a computer to determine whether adding the length of the requested skip to a current slippage value would exceed a predetermined maximum slippage value; computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to allow the requested skip.
- 103. The computer program product of claim 102, further comprising computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to update the current slippage value to reflect the requested skip.
- 104. The computer program product of claim 102, further comprising computer-readable program code configured to cause a computer, responsive to a determination that adding the length of the requested skip to the current slippage value would not exceed the predetermined maximum slippage value, to add the length of the requested skip to the current slippage value.
- 105. The computer program product of claim 102, wherein the computer-readable program code configured to cause a computer to allow the requested skip comprises computer-readable program code configured to cause a computer to transmit to the client a portion of the media item following the skipped portion of the media item.
- 106. The computer program product of claim 102, wherein the computer-readable program code configured to cause a computer to allow the requested skip comprises computer-readable program code configured to cause a computer to transmit to the client a subsequent media item following the skipped media item.
- 107. A computer program product for selectively limiting skipping during media playback, comprising:
computer-readable program code configured to cause a computer to modify an original performance complement limitation by extending a compliance time period by a predetermined additional time period; computer-readable program code configured to cause a computer to formulate a media item playback list conforming to the modified performance complement limitation; computer-readable program code configured to cause a computer to, responsive to user input requesting a skip of at least a portion of a media item:
determine whether the requested skip would cause a violation of the original performance complement limitation; responsive to the requested skip not causing a violation of the original performance complement limitation, allow the requested skip; and responsive to the requested skip causing a violation of the original performance complement limitation, deny the requested skip.
- 108. The computer program product of claim 107, wherein the computer-readable program code configured to cause a computer to determine whether the requested skip would cause a violation of the original performance complement limitation comprises:
computer-readable program code configured to cause a computer to determine whether an aggregated skipped amount exceeds the predetermined additional time period.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is a continuation-in-part of U.S. patent application Ser. No. 09/846,823 for “Relationship Discovery Engine,” filed Apr. 30, 2001, the disclosure of which is incorporated herein by reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09846823 |
Apr 2001 |
US |
Child |
10177643 |
Jun 2002 |
US |