Detecting visibility of a content item using tasks triggered by a timer
US-9460159-B1 · Oct 4, 2016 · US
US9954919B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9954919-B1 |
| Application number | US-201514634163-A |
| Country | US |
| Kind code | B1 |
| Filing date | Feb 27, 2015 |
| Priority date | Feb 27, 2015 |
| Publication date | Apr 24, 2018 |
| Grant date | Apr 24, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
To provide the continuous playback of content, a content server may provide code to a requesting device that causes the requesting device to play streaming content delivered in chunks or other portions without disruption in playback. The requesting device may execute the code by a browser or other application, which may cause the requesting device to determine whether a data buffer is empty or nearly empty and request additional content from a streaming server if the data buffer is empty or nearly empty. The process may be repeated a number of times each second for the duration of the playback of the content in order to enable continuous playback of the content regardless of any throttling of the code execution or content playback attempted to be imposed by a browser or other application.
Opening claim text (preview).
What is claimed is: 1. A system comprising: a content server database configured to store code for a plurality of content pages; and a content server configured to: receive a request for a first content page from a user device, retrieve first code corresponding to the first content page from the content server database, wherein the first code, when executed by a browser application running on the user device, directs the user device to execute a first number of timers that expire at different times, wherein, upon expiration of a timer in the first number of timers, the user device is directed to perform a process comprising: determining whether an amount of data remaining in a buffer is below a threshold value, retrieving a data block from a streaming server in response to a determination that the amount of data remaining in the buffer is below the threshold value, and storing the retrieved data block in the buffer, wherein the number of timers corresponds with a frame rate of an audio signal, and wherein the performance of the process upon expiration of each of the first number of timers enables the user device to output the audio signal based on the retrieved data block stored in the buffer at the frame rate independent of a state of the browser application, and transmit the first code to the user device. 2. The system of claim 1 , wherein enabling the user device to output the audio signal at the frame rate independent of the state of the browser application comprises causing audio playback without audible interruption when the browser application is in a minimized state. 3. The system of claim 1 , wherein the first code comprises a script that, when executed by the browser application, directs the user device to execute the first number of timers. 4. The system of claim 1 , wherein the number of timers equals a number of frames per second processed during playback of the audio signal. 5. The system of claim 4 , wherein the first code, when executed by the browser application running on the user device, directs the user device to perform the process a number of times that equals the number of timers during a one second period of time. 6. The system of claim 1 , wherein the state of the browser application is determined based on a state of a window in the browser application that is associated with the audio signal. 7. The system of claim 6 , wherein the window in the browser application is in a first state if the window is viewable in the browser application, the window is in a second state if the browser application is active and the window is not viewable in the browser application, and the window is in a third state if the browser application is inactive and the window is not viewable in the browser application. 8. The system of claim 1 , wherein the data block is retrieved from the streaming server at least in part via Hypertext Transfer Protocol Live Streaming communications. 9. The system of claim 1 , wherein the content server is further configured to: retrieve second code referenced by the first code from a second content server; retrieve third code referenced by the first code from a third content server; assemble the first code, the second code, and the third code to form a modified first code; and transmit the modified first code to the user device. 10. A computer-implemented method comprising: as implemented by one or more computing devices configured with specific executable instructions, receiving a request for a first content page from a user device; retrieving first code corresponding to the first content page from a content server database, wherein the first code, when executed by a browser application running on the user device, directs the user device to execute a first number of timers that expire at different times, wherein, upon expiration of a timer in the first number of timers, the user device is directed to perform a process comprising: determining whether an amount of data remaining in a buffer is below a threshold value, retrieving a data block from a streaming server in response to a determination that the amount of data remaining in the buffer is below the threshold value, and storing the retrieved data block in the buffer, wherein the number of timers corresponds with a frame rate of content, and wherein the performance of the process upon expiration of the individual first number of timers enables the user device to output the content based on the retrieved data block stored in the buffer at the frame rate independent of a state of the browser application; and transmitting the first code to the user device. 11. The computer-implemented method of claim 10 , wherein enabling the user device to output the content at the frame rate independent of the state of the browser application comprises causing content playback without audible or visual interruption when the browser application is in a minimized state. 12. The computer-implemented method of claim 10 , wherein the retrieved data block comprises at least one of audio data, video data, or audiovisual data. 13. The computer-implemented method of claim 10 , wherein the first code comprises a script that, when executed by the browser application, directs the user device to execute the first number of timers. 14. The computer-implemented method of claim 13 , wherein the script is JavaScript. 15. The computer-implemented method of claim 10 , wherein the number of timers equals a number of frames per second processed during playback of the content. 16. The computer-implemented method of claim 10 , wherein the state of the browser application is determined based on a state of a window in the browser application that is associated with the content. 17. The computer-implemented method of claim 16 , wherein the window in the browser application is in a first state if the window is viewable in the browser application, the window is in a second state if the browser application is active and the window is not viewable in the browser application, and the window is in a third state if the browser application is inactive and the window is not viewable in the browser application. 18. The computer-implemented method of claim 10 , wherein the data block is retrieved from the streaming server at least in part via Hypertext Transfer Protocol Live Streaming communications. 19. A non-transitory computer-readable medium having stored thereon executable program code that directs a computing device to perform operations when executed by a browser component operating on the computing device, the operations comprising: starting a plurality of timers during a browser throttle period, wherein each timer expires at a different time within the browser throttle period, and wherein a number of timers in the plurality of timers corresponds with a frame rate of content to be presented; receiving an indication that a timer in the plurality of timers has expired; and performing, each time any timer in the plurality of timers expires, a process that comprises: determining whether an amount of data remaining in a buffer is below a threshold value, retrieving a data block from a streaming server in response to a determination that the amount of data remaining in the buffer is below the threshold value, and storing the retrieved data block in the buffer, wherein the performance of the operations enables the computing device to present the content based on the retrieved data block stored in the buffer at the frame rate. 20. The non-transitory
Network streaming of media packets · CPC title
using dynamic buffer space allocation · CPC title
for supporting traffic characterised by the type of applications · CPC title
of access to content, e.g. by caching · CPC title
in combination with information about buffer occupancy at either end or at transit nodes · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.