Systems and methods for providing interactive streaming media
Abstract
A client system presents, within an execution environment of an application, a third-party media stream distinct from the application, received from a remote host server via a network. The client system detects interaction events during presentation of the third-party media stream, and transmits descriptions of the detected interaction events to the remote host server. The application may be pre-cued prior to presentation, e.g., to minimize start-up time. In some implementations, a side-band message channel is established to facilitate communication between the client system and the remote host server.
Claims
exact text as granted — not AI-modified1 . A system comprising:
a client simulation server comprising a memory, a network interface, and a processor, the processor configured to:
execute a simulation of a client device;
execute an application in the simulation of the client device up to a cue point, wherein the cue point is at a predetermined length of execution time;
suspend execution of the application at the cue point;
store, in the memory, a representation of the application in a suspended execution state, suspended at the cue point;
receive, from a client device via the network interface, a request to provide an interactive instance of the application;
execute, from the suspended execution state of the application, a resumed instance of the application responsive to the request using the representation stored in the memory; and
provide, to the client device via the network interface, an output from the resumed instance of the application.
2 . The system of claim 1 , the system further comprising a monitor configured to:
monitor a plurality of sampling instances provided by the client simulation server to a respective plurality of different client devices, each sampling instance associated with an initial load state; identify, for each of the plurality of sampling instances, a corresponding length of time from the respective initial load state to a respective initial user interaction; and determine the predetermined length of execution time for the cue point based on the identified lengths of time.
3 . The system of claim 2 , comprising determining the predetermined length of execution time for the cue point using an arithmetic mean of the identified lengths of time.
4 . The system of claim 2 , comprising determining the predetermined length of execution time for the cue point using a trimmed mean of the identified lengths of time.
5 . The system of claim 1 , wherein the cue point is a presentation stage in which the application presents a user interaction option.
6 . The system of claim 5 , the system further comprising a simulation monitor configured to detect presentation of the user interaction option.
7 . The system of claim 6 , wherein the simulation monitor is configured to detect presentation of the user interaction option using optical character recognition.
8 . The system of claim 1 , the processor of the client simulation server configured to suspend execution of the application at the cue point by suspending execution of the simulation of the client device at the cue point.
9 . The system of claim 1 , the processor of the client simulation server configured to:
receive, from the client device via the network interface, a client device characteristic descriptor; select a client simulation for a generalized client device with a characteristic conforming to the client device characteristic descriptor; and execute the simulation of the client device using the client simulation for the generalized client device.
10 . A method comprising:
executing, by a client simulation system comprising a processor, a simulation of a client device; executing, by the client simulation system, an application in the simulation of the client device up to a cue point, wherein the cue point is at a predetermined length of execution time; suspending execution of the application at the cue point; storing, in a memory associated with the client simulation system, a representation of the application in a suspended execution state, suspended at the cue point; receiving, from a client device via a network, a request to provide an interactive instance of the application; executing, by the client simulation system, from the suspended execution state of the application, a resumed instance of the application responsive to the request using the representation stored in the memory; and providing, to the client device via the network, an output from the resumed instance of the application.
11 . The method of claim 10 , the method further comprising determining the predetermined length of execution time by:
providing a plurality of sampling instances to a respective plurality of different client devices, each sampling instance associated with an initial load state; identifying, for each of the plurality of sampling instances, a corresponding length of time from the respective initial load state to a respective initial user interaction; and determining the predetermined length of execution time for the cue point based on the identified lengths of time.
12 . The method of claim 11 , comprising determining the predetermined length of execution time for the cue point using an arithmetic mean of the identified lengths of time.
13 . The method of claim 11 , comprising determining the predetermined length of execution time for the cue point using a trimmed mean of the identified lengths of time.
14 . The method of claim 10 , wherein the cue point is a presentation stage in which the application presents a user interaction option.
15 . The method of claim 14 , comprising detecting presentation of the user interaction option.
16 . The method of claim 14 , comprising detecting presentation of the user interaction option using optical character recognition.
17 . The method of claim 10 , comprising:
receiving, from the client device via the network, a client device characteristic descriptor; selecting a client simulation for a generalized client device with a characteristic conforming to the received client device characteristic descriptor; and executing the simulation of the client device using the client simulation for the generalized client device.
18 . A non-transitory computer-readable medium storing instructions that cause a processor executing the instructions to:
execute a simulation of a client device; execute an application in the simulation of the client device up to a cue point, wherein the cue point is at a predetermined length of execution time; suspend execution of the application at the cue point; store, in the memory, a representation of the application in a suspended execution state, suspended at the cue point; receive, from a client device via the network interface, a request to provide an interactive instance of the application; execute, from the suspended execution state of the application, a resumed instance of the application responsive to the request using the representation stored in the memory; and provide, to the client device via the network interface, an output from the resumed instance of the application.
19 . The non-transitory computer-readable medium of claim 18 storing the instructions that cause the processor executing the instructions to:
monitor a plurality of sampling instances provided by the client simulation server to a respective plurality of different client devices, each sampling instance associated with an initial load state;
identify, for each of the plurality of sampling instances, a corresponding length of time from the respective initial load state to a respective initial user interaction; and
determine the predetermined length of execution time for the cue point based on the identified lengths of time.
20 . The non-transitory computer-readable medium of claim 18 storing the instructions that cause the processor executing the instructions to:
receive a client device characteristic descriptor;
select a client simulation for a generalized client device with a characteristic conforming to the client device characteristic descriptor; and
execute the simulation of the client device using the client simulation for the generalized client device.Join the waitlist — get patent alerts
Track US2019079787A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.