Apparatuses, Methods, And Computer Program Products For An Interactive Experience

Various methods, apparatuses, and computer program products are provided. For example, a processing apparatus may be configured to determine whether to initiate a data session with a user equipment (UE) based on information provided by the UE, determine whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience, and select a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience.

BACKGROUND

Media may include one or more segments. A non-limiting example of media is a movie. A movie may include one or more segments, and each segment may have a portion of the movie. In existing systems, various features (e.g., content, sequence, chronology, timing, and/or duration) of the media may be pre-determined (e.g., pre-programmed or pre-selected). However, viewers may desire to interact with the media in order to affect such features. Accordingly, there exists a need in the art for interactivity with media.

SUMMARY

Methods, apparatuses, and computer program products are provided. In an aspect, a method may include determining whether to initiate a data session with a user equipment (UE) based on information provided by the UE, determining whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience, and selecting a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience.

In an aspect, an apparatus may include a means for deter mining whether to initiate a data session with a UE based on information provided by the UE, a means for determining whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience, and a means for selecting a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience.

In another aspect, an apparatus may include a memory and at least one processor associated with the memory and configured to determine whether to initiate a data session with a UE based on information provided by the UE, determine whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience, and select a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience.

In an aspect, a computer program product may include a computer-readable medium comprising code for determining whether to initiate a data session with a UE based on information provided by the UE, code for determining whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience, and code for selecting a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience.

Other aspects of apparatuses, methods, and computer program products described herein will become readily apparent to those skilled in the art based on the following detailed description, wherein various aspects of apparatuses and methods are shown and described by way of illustration. Such aspects may be used in many different forms and its details may be modified in various ways without deviating from the scope of the present disclosure. Accordingly, the drawings and detailed description provided herein are to be regarded as illustrative in nature and not as restricting the scope of the claims.

DETAILED DESCRIPTION

FIG. 1is a diagram illustrating an example implementation in a theater100. The theater100may be configured to display the interactive experience on the screen110. For example, the interactive experience may be a movie (e.g., a motion picture), a trailer (e.g., a movie trailer), a pre-show screening, pre-show advertisements, a post-show screening, a video, one or more images, a game, a gaming interface, or any type or form of media. The segments may each have various characteristics (e.g., content, sequence, chronology, timing, and/or duration). The viewers102,106may affect one or more of the characteristics of a segment using the UEs104,108as described in further detail infra.

FIG. 2is a diagram illustrating an example implementation in a sport arena200. The sport arena200may be configured to display the interactive experience on the screen210. For example, the interactive experience may be an advertisement, any type of video, one or more images, or any other type of suitable media. The segments may have various characteristics (e.g., content, sequence, chronology, timing, and/or duration). The viewers202,206may affect one or more of the characteristics of a segment using the UEs204,208as described in further detail infra.

Examples of UEs104,108,204,208may include a cellular phone, a smart phone, a session initiation protocol (SIP) phone, a laptop, a personal digital assistant (PDA), a multimedia device, a video device, a cam era, a tablet, or any other similar functioning device. The UEs104,108,204,208may also be referred to by those skilled in the art as a mobile station, a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, are mote device, a mobile subscriber station, an access terminal, a mobile terminal, a wireless terminal, a remote terminal, a handset, a user agent, a mobile client, a client, or some other suitable terminology. The UEs104,108,204,208may be provided by the viewers102,106,202,206(e.g., each viewer brings their own UE). Alternatively, the UEs104,108,204,208may be provided to the viewers102,106,202,206by the establishment (e.g., the theater or sport arena provides the UE to the viewer).

FIG. 3is a diagram illustrating an ex ample implementation in a viewing area302. The viewing area302may have seats306for viewers. At least some of the viewers may have access to a UE308. The viewing area302may also have a screen310configured for display. In some configurations, segments may be projected onto the screen310using the projector304. The projector304may display the segments according to data received from the content server312and/or the processing apparatus316. In some configurations, the segments may be displayed on the screen310according to data provided to the screen310from the content server312and/or the processing apparatus316.

The content server312may have at least one processor and at least one memory module configured to store and retrieve digital/electronic versions of various segments. The data may be provided to the content server312via a wireless connection (e.g., WiFi, WiMAX, 4 G/LTE, 3G, CDMA, etc.), a wired connection (e.g., Local Area Network), and/or a hard drive that may be inserted/installed into the content server312. Because alternative methods of providing the data to the content server312will be readily apparent to one of ordinary skill in the art, the method of providing the data to the content server312as described herein shall not be construed as a limiting embodiment of the present disclose.

The automation infrastructure314may have at least one processor and at least one memory module configured to control various characteristics of the lighting of the viewing area302, the sound of the viewing area302, and/or other elements of the infrastructure of the viewing area302.

The processing apparatus316may have at least one processor and at least one memory module configured to receive data/signals/information from the UEs308and to determine the segment to be displayed on the screen310based on the received data. In some configurations, the data may be received from the UEs308via a wired connection322. In some configurations, the data may be received from the UEs308via a wireless connection324,326. For ex ample, the data may be received from the UEs308via a wireless connection324with a wireless network318(e.g., WiFi, WiMAX, etc.). As another example, the data may be received from the UEs308via a wireless connection326with a cellular network320(e.g., 4G/LTE, 3G, CDMA, etc.). In some configurations, the data may be received from the UEs308via a combination of a wired connection322and one or more of the wireless connections324,326. Additional description of processes performed by the processing apparatus316is provided infra.

One of ordinary skill in the art will appreciate that the example implementation described with respect toFIG. 3is not limited to any particular environment. For example, the viewing are a302may be a local environment, such as a home environment, an office environment, a retail environment, or any other suitable environment. Viewers in the local environment may use UEs308to communicate with the processing apparatus316. In some configurations, the processing apparatus316may be located inside of the local environment, and the content server312may be included outside of the local environment. For example, the content server312may provide media streaming from a remote location via a wired or wireless connection to the processing apparatus316, which may be located inside of the local environment. In some configurations, the processing apparatus316and the content server312may be located outside of the local environment. In some configurations, the content server312and the processing apparatus316may be located inside of the local environment. In some configurations, such as when the content server312and the processing apparatus316are both located inside of or outside of the local environment, the content server312and the processing apparatus316may be parts of the same device.

FIG. 4is a diagram illustrating an example of various segments of media400. The media400may have many more segments than the number of segments illustrated inFIG. 4. The method described with respect toFIG. 4may be performed by the processing apparatus316(seeFIG. 3) or any other apparatus or computer-readable medium configured to perform such methods. The media400may have an interactive segment (e.g., Segment B404). The interactive segment (e.g., Segment B404) may follow another segment (e.g., Segment A402), which may or may not also be an interactive segment. The interactive segment (e.g., Segment B404) may prompt the viewer to pro vide one or more inputs associated with various possible segments that can follow that interactive segment. The segment that follows the interactive segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) may be selected based on the one or more inputs provided by the viewer(s).

For example, Segment A402may be a video segment showing a character traveling on a path that splits in different directions. Segment B404may be a video segment prompting the viewer to provide one or more inputs regarding the particular path that the viewer prefers for the character to travel. Each of the possible paths that the character may travel corresponds to a different video segment. For example, Segment C1406may show a video of events that transpire if the character travels on a first path, and Segment C2408may show a video of events that transpire if the character travels on a second path. The next segment selected is among Segment C1406, Segment C2408, . . . , Segment CN410based on the one or more inputs provided by the viewer(s).

FIG. 5is a diagram illustrating information502transmitted by UEs and received by the processing apparatus316. At Time A, the processing apparatus316may receive information502from at least UE1, UE2, and UEN. The information502may be an identifier associated with a particular interactive experience. For example, the identifier may be a numeric code, an alpha-numeric code, a passphrase, a quick response (QR) code, a uniform resource locator (URL), a screening identification (ID), a movie ID, a theater ID, a cinema ID, a home ID, a venue ID, an event ID, or any other suitable information. Based on the information502received from the UE, the processing apparatus316may determine whether to initiate a data session with the UE. The identifier may be obtained from an admission ticket, an entrance pass, a viewing area, an on-screen message, an auditory message, or any other suitable source.

After the processing apparatus316receives the information502, the processing apparatus316may determine whether to initiate a data session with each UE based on the information502received from that UE. The processing apparatus316may determine to initiate a data session with the UE when the information502provided by the UE satisfies certain data session parameters. The processing apparatus316may refrain from initiating a data session with the UE when the information502provided by the UE does not satisfy data session parameters. Generally, the data session parameters may determine whether the UE is associated with a particular interactive experience. More specifically, the data session parameters may be associated with an identity of the interactive experience, a viewing area of the interactive experience, an address corresponding to the interactive experience, a show time of the interactive experience, or any other suitable aspect of the interactive experience. For example, the data session parameters are not satisfied when the UE provides information502associated with a different interactive experience in a different viewing area302. However, data session parameters may be satisfied when the UE provides information502associated with that particular interactive experience.

In the example illustrated inFIG. 5, the processing apparatus316receives information502from at least UE1, UE2, and UEN. The processing apparatus316determines to initiate data sessions with at least UE1, UE2, and UEN. Although not illustrated inFIG. 5, it will be understood by one of ordinary skill in the art that the processing apparatus316may refrain from initiating a data session with one or more UEs. For example, if the QR code provided by a UE does not satisfy certain data session parameters, then the processing apparatus316may refrain from initiating a data session parameter with that particular UE.

FIG. 6is a diagram illustrating one or more input signals602transmitted by UEs and received by the processing apparatus316after the data session has been initiated. At Time B, the UEs with which the processing apparatus316has initiated a data session may provide one or more input signals602to the processing apparatus316. Because data sessions were initiated with at least UE1, UE2, and UEN, the processing system316may receive one or more input signals602from at least UE1, UE2, and/or UEN. The processing apparatus316may determine whether the one or more input signals602are associated with an interactive segment of the interactive experience. For example, referring back toFIG. 4, the processing apparatus316may determine whether the one or more input signal602received from at least UE1, UE2, and UENare associated with Segment B404.

Based on the received one or more input signals602associated with the interactive segment (e.g., Segment B404) of the interactive experience, the processing apparatus316may select a next segment of the interactive experience. For example, referring toFIG. 4, the processing system316may select one (or more) of Segment C1406, Segment C2408, . . . , Segment CN410based on the one or more input signals602received during Segment B404. As such, the one or more input signals602may be provided by at least UE1, UE2, and UENduring a time period corresponding to the interactive segment (e.g., Segment B404) of the interactive experience. In some configurations, the selection of the next segment of the interactive experience may include quantifying the one or more input signals602during a period of time and subsequently selecting the next segment of the interactive experience from one or more possible next segments according to the quantified one or more input signals602.

The one or more input signals may be provided in various forms and implementations. Any reference provided herein with respect to specific examples of the one or more input signals602shall not be construed as a limitation of the present disclosure. In some configurations, the one or more input signals602may be associated with a kinesthetic input604provided to the UE. For example, the one or more input signals602may correspond to a vote, a grade, a score, one or more words, one or more letters, and/or one or more alphanumeric phrases provided to the UE. For instance, the viewer may cast a vote using the UE for one (or more) of the possible next segments (e.g., Segment C1406, Segment C2408, . . . , Segment CN410). Accordingly, the next segment may be selected based on the number of votes cast for each of the possible next segments.

As another example, the one or more input signals602may be received from the UE in response to an inquiry or puzzle presented during a portion of the interactive experience. For instance, the viewer may be presented with a puzzle or inquiry on the screen310(seeFIG. 3) during a portion of the interactive experience (e.g., during Segment B404inFIG. 4). In response to viewing the inquiry or puzzle, the viewer may provide one or more inputs to the UE. Accordingly, processing apparatus316may receive one or more input signals from the UE in response to an inquiry or puzzle presented during a portion of the interactive experience. Accordingly, the next segment (e.g., Segment C1406, Segment C2408, Segment CN410) may be selected based on the responses provided to the UE in response to the puzzle or inquiry.

In some configurations, the one or more input signals602may be associated with a movement606of the UE. For example, the one or more input signals602may correspond to a degree of rotation, an amount of movement, a speed of movement, and/or an acceleration of movement of the UE. For instance, the viewer may move the UE in various directions and/or various speeds to indicate which one (or more) of the possible next segments (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) that the viewer prefers. Accordingly, the next segment may be selected based on the degree of rotation, the amount of movement, the speed of movement, and/or the acceleration of movement of the UE with respect to each possible next segment.

In some configurations, the one or more input signals602may be associated with an auditory input608provided to the UE. For example, the viewer may speak into a microphone of the UE. In some embodiments, the one or more input signals602may be quantified based on a volume of the auditory input608. For example, the processing apparatus316receiving one or more input signals602corresponding to speech may attribute a higher count to louder speech relative to quieter speech. In some other embodiments, the one or more input signals602may correspond to a correlation between a vocal input provided to the UE and one or more possible vocal inputs. For example, the view er may provide a vocal input (e.g., a speech signal) corresponding to a word or phrase (e.g., the phrase “path A”). The processing apparatus316may determine a correlation between the received vocal input (e.g., the speech signal of “path A”) and one or more possible vocal inputs (e.g., the speech signal of the phrase “path A,” the speech signal of the phrase “path B,” etc.). If the processing apparatus316determines that the received vocal input has the highest correlation to the speech signal of the phrase “path A,” then the processing apparatus316may determine that the one or more input signals602received from the UE correspond(s) to path A. Such determinations can be used to select the next segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) of the interactive experience.

In some configurations, the one or more input signals602may be associated with an image/video610captured by the UE. For instance, the viewer may be shown a series of possible next segments, and the viewer may use the UE to capture an image or video of a ‘thumbs-up’ or a ‘thumbs-down’ as each of the possibilities are shown to the viewer. If the viewer is shown an image or text corresponding to Option A, the viewer may have a duration of time in which to capture an image or video of a ‘thumbs-up’ or ‘thumbs-down.’ Subsequently, the viewer may be shown an image or text corresponding to Option B, and the viewer may have a duration of time in which to capture an image or video of a ‘thumbs-up’ or ‘thumbs-down.’ The processing apparatus316may perform pattern recognition analysis to determine the content of the image or video captured by the UE (e.g., whether the image or video is a ‘thumbs-up’ or a ‘thumbs-down’). Such determinations can be used to select the next segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) of the interactive experience.

As another example, the viewer may use the UE to capture an image or video of a facial gesture (e.g., the facial gesture of the viewer's own face or the facial gesture of another person). The image or video captured by the UE may be received by the processing apparatus316. The processing apparatus316may use pattern recognition analysis to ascertain various characteristics of the captured facial gesture (e.g., a smile, a frown, etc.). For instance, the viewer may be shown an image or text corresponding to Option A, and the viewer may have a duration of time in which to capture an image or video of a facial gesture corresponding to Option A. Afterwards, the viewer may be shown an image or text corresponding to Option B, and the viewer may have a duration of time in which to capture a facial gesture corresponding to Option B. The processing apparatus316may perform pattern or facial recognition analysis to ascertain various characteristics of the facial gesture in the image or video captured by the UE (e.g., whether the facial gesture is a smile or a frown). Such determinations can be used to select the next segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) of the interactive experience.

FIG. 7is a diagram illustrating content702transmitted by the processing apparatus316and received by the UEs. At Time C, the processing apparatus316may transmit content702to at least UE1, UE2, and UEN. The content702may be a message having text, an image, a URL, a webpage, a phone number, a haptic component (e.g., a vibration), and/or any other suitable data. In some configurations, the content702may correspond to an element of the interactive segment of the interactive experience, an element of a segment prior to the interactive segment of the interactive experience, or an element of the next segment of the interactive experience. For example, referring back toFIG. 4, the content702may correspond to an element in Segment A402, an element in Segment B404, and/or an element in any one (or more) of Segment C1406, Segment C2408, . . . , Segment CN410. The element may be an actor, an object, a product, a trigger, a component, or any other aspect of any segment of the interactive experience. For example, a product (e.g., a specific vehicle) in a segment (e.g., Segment A402) of the interactive experience may trigger content702to be sent to the UE. The content702may include an image of the product (e.g., the specific vehicle) and the URL of the nearest location (e.g., car dealership) where that product may be purchased.

In some configurations, the time of the transmission of the content702from the processing apparatus316to the UE may not be based on (e.g., may be independent of) the time of receiving the one or more input signals602from the UE. For example, referring back toFIG. 6, the content702may be transmitted to the UE prior to the one or more inputs602being received by the processing apparatus316. Also, for example, the processing apparatus316may transmit the content702to a UE with which a data session was never initiated. In some configurations, the transmission of the content702to the UE may be independent of the one or more input signals602received from the UE. As such, the content702may be transmitted irrespective of the one or more inputs602being received from the UE.

In some configurations, the transmission of the content to the UE is based on at least an element of the interactive segment of the interactive experience, an element of a segment prior to the interactive segment of the interactive experience, or an element of the next segment of the interactive experience. For example, a viewer may be shown a specific vehicle during a pre-show event (e.g., a movie trailer). At the same time or at some time thereafter, the processing apparatus316may transmit content to the UE based on an element of that particular segment. For instance, the content may be some form of advertisement, such as an image of that specific vehicle, or a website where the viewer can obtain more details about that specific vehicle. One of ordinary skill in the art will appreciate that the foregoing are non-limiting examples and alternative embodiments and implementations are with in the scope of the disclosure provided herein.

FIG. 8is a flow chart illustrating an example of a method800. In some configurations, the method800may be performed by the processing apparatus316. At step802, the processing apparatus316may receive information provided by a UE. The information may be an identifier associated with a particular interactive experience. For example, referring back toFIG. 5, the identifier may be a numeric code, an alpha-numeric code, a passphrase, a QR code, a URL, a screening ID, a movie ID, a theater ID, a cinema ID, a home ID, a venue ID, an event ID, or any other suitable information. The identifier may be included in an admission ticket, an entrance pass, a viewing area, an on-screen message, an auditory message, or any other suitable source.

At step804, the processing apparatus316may determine whether to initiate a data session with the UE based on information provided by the UE. In some configurations, the processing apparatus316may refrain from initiating a data session with the UE when the information provided by the UE does not satisfy data session parameters. The data session parameters may be associated with an identity of at least the interactive experience, a viewing area of the interactive experience, an address corresponding to the interactive experience, or a show time of the interactive experience. If the processing apparatus316refrains from initiating a data session with the UE, then the processing apparatus316may proceed to step802. The processing apparatus316may initiate a data session with the UE when the information provided by the UE satisfied data session parameters. If the processing apparatus316initiates a data session with the UE, then the processing apparatus316may proceed to step806.

At step806, the processing apparatus316may determine whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience. For example, referring back toFIG. 4, the processing apparatus316may determine whether the one or more input signals received during the data session are associated with Segment B404, which is an interactive segment. Accordingly, in some configurations, the one or more input signals may be provided during a time period corresponding to the interactive segment (e.g., Segment B404) of the interactive experience.

The one or more input signals may be provided in various forms and implementations without deviating from the scope of the present disclosure. Referring back toFIG. 6, the one or more inputs may be associated with a kinesthetic input604, a movement606, an auditory input608, and/or an image/video610of the UE. In some configurations, the one or more input signals may correspond to at least a vote, a grade, a score, one or more words, one or more letters, or one or more alphanumeric phrases. In some configurations, the one or more input signals may correspond to at least a degree of rotation, an amount of movement, a speed of movement, or an acceleration of movement of the UE. In some configurations, the one or more input signals may correspond to an auditory input provided to the UE. In some configurations, the one or more input signals may correspond to a correlation between a vocal input provided to the UE and one or more possible vocal inputs. In some configurations, the one or more input signals are received in response to an inquiry or puzzle presented during a portion of the interactive experience. In some configurations, the one or more input signals may correspond to a content or characteristic of an image or video captured by the UE. For example, the characteristic of the video may include at least a direction of movement of an element in the video, a rate of movement of the element in the video, an acceleration of the element in the video, a pattern of movement of the element in the video, or a facial gesture or pattern in the video.

At step806, the processing apparatus316may determine that the one or more input signals provided by the UE are not associated with the interactive segment of the interactive experience when the one or more input signals correspond to a segment information request. For example, the UE may send a segment information request to obtain updated information (e.g., timing information, length/duration information, etc.) about a particular segment of the interactive experience. As such, the segment information request is not associated with the interactive segment of the interactive segment. When the one or more input signals correspond to the segment information request, the processing apparatus316may proceed to step808. At step808, the processing apparatus316may update the UE with current segment information (e.g., timing information, length/duration information, etc.). After performing step808, the processing apparatus316may proceed to step802.

Alternatively, at step806, the processing apparatus316may determine that the one or more input signals are associated with the interactive segment. If the processing apparatus316determines that the one or more input signals are associated with the interactive segment, the processing apparatus316may proceed to step810. At step810, the processing apparatus316may select the next segment of the interactive experience based on the received one or more in put signals associated with the interactive segment of the interactive experience. For example, referring back toFIG. 4, the processing apparatus316may select one (or more) of Segment C1406, Segment C2408, . . . , Segment CN410based on the received one or more input signals associated with Segment B404.

In some configurations, the processing apparatus316may select the next segment of the interactive segment by quantifying the one or more input signals during a period of time and subsequently selecting the next segment of the interactive experience from one or more possible next segments according to the quantified one or more input signals. For example, referring back toFIG. 4, the processing apparatus316may quantify the number of votes for Segment C1406, Segment C2408, . . . , Segment CN410. Based on the number of votes for Segment C1406, Segment C2408, . . . , Segment CN410, the processing apparatus316may select the next segment of the interactive experience. For instance, if Segment C2406received the greatest number of votes during the interactive segment (e.g., Segment B404), then the processing apparatus316may select Segment C2406as the next segment of the interactive experience.

In some configurations, the processing apparatus316may transmit content to the UE. In the example illustrated inFIG. 8, the processing apparatus316transmits content to the UE at step812. However, transmission of such content to the UE may be performed at any time and thus is not dependent up on any preceding step (e.g., steps802,804,806,808,810). Accordingly, the time of the transmission of the content to the UE is not based on the time of the receiving of the one or more input signals from the UE. For example, the processing apparatus316may transmit content to the UE at time T1and subsequently receive the one or more input signals from the UE at time T2, where T2>T1.

The content transmitted to the UE may correspond to an element of the interactive segment (e.g., Segment B404) of the interactive experience, an element of a segment prior to the interactive segment (e.g., Segment A402) of the interactive experience, or an element of the next segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) of the interactive experience. For example, referring back toFIG. 7, such an element may include at least an actor, an object, a product, a trigger, or a component displayed during at least the interactive segment (e.g., Segment B404) of the interactive experience, the segment prior to the interactive segment (e.g., Segment A402) of the interactive experience, or the next segment (e.g., Segment C1406, Segment C2408, . . . , Segment CN410) of the interactive experience.

FIG. 9is a flow chart illustrating an example of a method900. The method900may be performed by the processing apparatus316. The processing apparatus316may be a system that is configured to operate an event-driven software application. The event-driven software application may process events from user devices (e.g., UE(s)), an automation infrastructure314, a playback system (e.g., content server312), management tools, a backend system, and/or other internal processes. Events may be associated with various clients. One of ordinary skill in the art will appreciate that a ‘client’ may refer to the UE described supra. Also, one of ordinary skill in the art will appreciate that a ‘screening’ may refer to the inter active experience, or any segment thereof, as described supra.

At step902, the processing apparatus316may perform initialization. (With respect to step902inFIG. 9, additional description will be provided infra with reference toFIG. 10.) At step904, the processing apparatus316may start an event queue. At step906, the processing apparatus316may wait for an event. The event may be one or more of the following: ‘start session event’908(e.g., the ‘information’ described supra), ‘management command’910, ‘client event’912(the ‘one or more input signals’ described supra), ‘backend message’914, and/or ‘screening event’916. If the event is a ‘start session event’908, the processing apparatus316may perform new session processing at step918. (With respect to step918inFIG. 9, additional description will be provided infra with reference toFIG. 11.) If the event is a ‘management command’ event910, the processing apparatus316may perform management command processing at step920. If the event is a ‘client event’912, then the processing apparatus316may perform client event processing at step922. If the event is a ‘back end message’914, then the processing apparatus316may perform backend message processing at step924. If the event is a ‘screening event’916, then the processing apparatus316may perform screening event processing at step926.

At step928, the processing apparatus316may determine whether to exit the event-driven software application. If the processing apparatus316determines not to exit, then the processing apparatus316may return to step906to wait for the next event. If the processing apparatus316determines to exit, then the processing apparatus316may persist any active screening data at step930, send a message to automation systems at step932, and update the backend system at step934.

FIG. 10is a flow chart illustrating an example of a method1000. The method1000may be sub-steps performed in step902(inFIG. 9) for performing initialization. The method1000may be performed by the processing apparatus316. At step1002, the processing apparatus316may read local configuration information. At step1004, the processing apparatus316may determine the location of the configuration information. If the configuration information is located in a local network, the processing apparatus316proceeds to step1006to read the configuration information from the local network. If the configuration information is located in a configuration server, the processing apparatus316may proceed to step1008in order to read the configuration information from the configuration server. If the configuration information is located in a remote file, the processing apparatus316may proceed to step1010to read the configuration information from the remote file.

After the configuration information is read, the processing apparatus316may process the configuration information at step1012, initialize internal data structures to manage one or more screenings at step1014, and retrieve any files needed for the one or more screenings at step1016. At step1018, the processing apparatus316may determine whether to use an internal scheduler. If an internal scheduler is used, the processing apparatus316may start the internal scheduler at1020. If an internal scheduler is not used, the processing apparatus316may initialize a threadpool and event queue at step1022. After step1022, initialization may be complete and the processing apparatus316may subsequently proceed to step904(seeFIGS. 9 and 10) to start the event queue.

FIG. 11is a flow chart illustrating an example of a method1100. The method1100may be sub-steps performed in step918(seeFIG. 9) for new session processing. The method1100may be performed by the processing apparatus316. The processing apparatus316may receive a start session event908, such as the ‘information’ described in greater detail supra. After receiving the start session event908, the processing apparatus316may begin new session processing. At step1104, the processing apparatus316may determine whether the UE previously joined a particular screening or interactive experience. If the UE previously joined the particular screening or interactive experience, at step1106, the processing apparatus316may determine whether the UE is an exact match to the UE that previously joined the particular screening or interactive experience. If the processing apparatus316determines that the UE is not an exact match, then the processing apparatus316may return an error message to be displayed on the UE at step1112and end the new session processing and wait for the next event at step1114. However, if the processing apparatus316determines that an exact match exists, then the processing apparatus may use an existing session at step1122, send session and current screening state to the UE at step1120, and end the new session processing and wait for the next event at step1114.

If, at step1104, the processing apparatus316determines that the UE did not previously join that screening or interactive experience, then the processing apparatus316may proceed to step1108to determine whether the start session parameters are valid. If the start session parameters are not valid, then the processing apparatus316may return an error message to be displayed on the UE at step1112and end the new session processing and wait for the next event at step1114. However, if the start session parameters are valid, then the processing apparatus316may proceed to step1110to determine whether the parameters identify a screening or interactive experience at a particular viewing area. If the parameters do not identify a screening or interactive experience at the particular viewing area, then the processing system316may return an error message to be displayed on the UE at step1112and end the new session processing and wait for the next event at step1114. However, if the parameters identify a screening at the particular viewing area, then the processing apparatus316may generate and persist a new session at step1116, send the new session to the backend system at step1118, send the new session and the current screening state to the UE at step1120, and end the new session processing and wait for the next event at step1114.

FIG. 12is a flow chart illustrating an example of a method1200. The method1200may be sub-steps performed in step922(inFIG. 9) for client event processing. The method1200may be performed by the processing apparatus316. At step912, the processing system316may receive the client event, such as the ‘one or more input signals’ described in greater detail supra. At step1204, the processing apparatus316may determine whether the data session is valid. If the data session is not valid, the processing apparatus316may send an error message to the UE at step1206and end client event processing at step1214. However, if the data session is valid, the processing apparatus316may determine whether the client event is an interactive segment result at step1208. If the client event is an interactive segment result, then the processing apparatus316may determine whether the client event is valid for the current segment at step1210. If the client event is not valid for the current segment, then the processing apparatus316may send an error message to the UE at step1206and end the client event processing at step1214. However, if the client event is valid for the current segment, then the processing system316may add the client event to aggregated results for the current segment at step1212and end the client event processing at step1214.

If, at step1208, the processing apparatus316determines that the client event is not an interactive segment result, then the processing apparatus proceeds to step1216. At step1216, the processing apparatus316may determine whether the client event is a segment information request. If the client event is a segment information request, then the processing apparatus316may update the UE with current segment information at step1218. However, if the client event is not a segment information request, then the processing apparatus316may log the unknown message type at step1220, send an error message to the UE at step1222, and end the client event processing at step1214.

FIG. 13is a flow chart illustrating an example of a method1300. The method1300may be sub-steps performed in step926(seeFIG. 9) for screening event processing. The method1300may be performed by the processing apparatus316. The processing system316may receive the screening event916. At step1304, the processing apparatus316may determine whether the screening event916is a start screening event. If the screening event is a start screening event, then the processing apparatus316may create internal data structures for screening at step1306, notify the backend system and receive additional screening data at step1308, retrieve all resources not available locally at step1310, and end the screening event processing and wait for the next event at step1342. If the screening event is not a start screening event, then the processing apparatus316may proceed to step1312.

At step1312, the processing apparatus316may determine whether the screening event is a start pre-show event. If the screening event is a start pre-show event, then the processing apparatus316may load the pre-show data at step1314, initialize the first pre-show segment at step1316, interface with hardware and change display content at step1318, push data to one or more UEs at step1320, and end the screening event processing and wait for the next event at step1342. If the screening event is not a start pre-show event, the processing apparatus316may proceed to step1322.

At step1322, the processing apparatus316may determine whether the screening event is a start movie event. If the screening event is a start movie event, then the processing apparatus316may load segment data at step1324, initialize the first segment at step1326, interface with hardware and change display content at step1318, push data to one or more UEs at step1320, and end the screening event processing and wait for the next event at step1342. If the screening event is not a start movie event, then the processing apparatus316may proceed to step1328.

At step1328, the processing apparatus316may determine whether the screening event is a finish segment event. If the screening event is a finish segment event, then the processing apparatus316may proceed to step1330. At step1330, the processing apparatus316may determine whether the current segment is interactive (e.g., whether the current segment is an interactive segment). If the current segment is interactive, then the processing apparatus316may process segment results and dynamically determine the next segment at step1332, interface with hardware and change display content at step1318, push data to the one or more UEs at step1320, and end the screening event processing and wait for the next event at step1342. However, if the current segment is not interactive, the processing apparatus316may proceed to step1342to end the screening event processing and wait for the next event. If the screening event is not a finish segment event, then the processing apparatus316may proceed to step1334.

At step1334, the processing apparatus316may determine whether the screening event is an end screening event. If the screening event is an end screening event, then the processing apparatus316may aggregate screening data at step1336, cleanup resources associated with the screening at step1338, send a completion message to the backend system at step1340, and end the screening event processing and wait for the next event at step1342. However, if the screening event is not an end screening event, then the processing apparatus316may proceed to step1342to end the screening event processing and wait for the next event.

FIG. 14is a flow chart illustrating an example of a method1400. The method may be performed by a UE or client device, as described in additional detail supra. At step1402, the UE may prompt the user of the UE for information. For example, such information may be the start session event described in greater detail supra with reference toFIGS. 9 and 10. At step1404, the UE may send a start session request to a server. At step1406, the UE may determine whether the UE has successfully joined the screening or inter active experience. If the UE has not successfully joined the screening or interactive experience, the UE may proceed to step1402. If the UE has successfully joined the screening or interactive experience, the UE may proceed to step1408. At step1408, the UE may parse a response and subsequently proceed to step1410. At step1410, the UE may determine whether the screening or interactive experience has more to show. If the screening or interactive experience has no more to show, the processing apparatus316may disconnect from the server at step1412. However, if the screening or interactive experience has more to show, then the processing apparatus316may download additional resources at step1414, wait for the next segment of the screening or interactive experience at step1416, and display the next segment of the screening or interactive experience at step1418. At step1420, the UE may send an input to the server and subsequently proceed to step1408, as described supra.

FIG. 15is a conceptual data flow diagram1500illustrating the data flow between different modules/means/components in an example of the processing apparatus1502. The processing apparatus1502may include a receiving module1504, a deter mining module1506, a selecting module1508, an updating module1510, and/or a transmission module1512.

The processing apparatus1502may include additional modules that perform each of the steps of the algorithm in the aforementioned flow charts ofFIGS. 8-14. As such, each step in the aforementioned flow charts ofFIGS. 8-14may be performed by a module and the processing apparatus1502may include one or more of those modules. The modules may be one or more hardware components specifically configured to carry out the stated processes/algorithm, implemented by a processor configured to perform the stated processes/algorithm, stored within a computer-readable medium for implementation by a processor, or some combination thereof.

The receiving module1504may be configured to receive information. The determining module1506may be configured to determine whether to initiate a data session with a UE1550based on information provided by the UE1550. The determining module1506may be further configured to determine whether one or more input signals provided by the UE1550during the data session are associated with an interactive segment of the interactive experience. In some configurations, the determining module1506may be further configured such that determining whether to initiate the data session with the UE1550includes initiating the data session when the information provided by the UE1550satisfies data session parameters and refraining from initiating the data session when the information provided by the UE1550does not satisfy the data session parameters.

The selecting module1508may be configured to select a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience. In some configurations, the selecting module1508may be further configured such that selecting the next segment of the interactive experience includes quantifying the one or more input signals during a period of time and selecting a next segment of the interactive experience from one or more possible next segments according to the quantified one or more input signals.

The updating module1510may be configured to update the UE1550with current segment information when the one or more input signals correspond to a segment information request.

The transmission module1512may be configured to transmit content to the UE1550. The content may correspond to an element of the interactive segment of the interactive experience, an element of a segment prior to the interactive segment of the interactive experience, or an element of the next segment of the interactive experience.

FIG. 16is a diagram1600illustrating an example of a hardware implementation for a processing apparatus1502′ utilizing a processing system1614. The processing system1614may be implemented with a bus architecture, represented generally by the bus1624. The bus1624may include any number of interconnecting buses and bridges depending on the specific application of the processing system1614and the overall design constraints. The bus1624links together various circuits including one or more processors and/or hardware modules, represented by the processor1604, the modules1504,1506,1508,1510,1512, and the computer-readable medium/memory1606. The bus1624may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art.

The processing system1614may be coupled to a transceiver1610. The transceiver1610is coupled to one or more antennas1620. The transceiver1610provides a means for communicating with various other apparatuses over a transmission medium. The transceiver1610receives a signal from the one or more antennas1620, extracts information from the received signal, and provides the extracted information to the processing system1614, specifically the receiving module1504. In addition, the transceiver1610receives information from the processing system1614, specifically the transmission module1512, and based on the received information, generates a signal to be applied to the one or more antennas1620. The processing system1614includes a processor1604coupled to a computer-readable medium/memory1606. The processor1604is responsible for general processing, including the execution of software stored on the computer-readable medium/memory1606. The software, when executed by the processor1604, causes the processing system1614to perform the various functions described supra for any particular apparatus. The computer-readable medium/memory1606may also be used for storing data that is manipulated by the processor1604when executing software. The processing system further includes at least one of the modules1504,1506,1508,1510,1512. The modules may be software modules running in the processor1604, resident/stored in the computer readable medium/memory1606, one or more hardware modules coupled to the processor1604, or some combination thereof. The processing system1614may be a component of the processing apparatus316and may include other memory and/or at least one other processor.

In some configurations, the processing apparatus1502/1502′ provides and/or includes means for determining whether to initiate a data session with a UE based on information provided by the UE. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for determining whether one or more input signals provided by the UE during the data session are associated with an interactive segment of the interactive experience. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for selecting a next segment of the interactive experience based on the one or more input signals associated with the interactive segment of the interactive experience. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for initiating the data session when the information provided by the UE satisfies data session parameters. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for refraining from initiating the data session when the information provided by the UE does not satisfy the data session parameters. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for updating the UE with current segment information when the one or more input signals correspond to the segment information request. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for quantifying the one or more input signals during a period of time. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for selecting a next segment of the interactive experience from one or more possible next segments according to the quantified one or more input signals. In some configurations, the processing apparatus1502/1502′ provides and/or includes means for transmitting content to the UE, the content corresponding to an element of the interactive segment of the interactive experience, a segment prior to the interactive segment of the interactive experience, or the next segment of the interactive experience.

The aforementioned means may be one or more of the aforementioned modules of the processing apparatus1502and/or the processing system1614of the processing apparatus1502′ configured to perform the functions recited by the aforementioned means. As described supra, the processing system1614may include at least one processor. As such, in one configuration, the aforementioned means may be the at least one processor configured to perform the functions recited by the aforementioned means.

Several aspects of a system have been presented with reference to various apparatus, methods, and/or computer program products. Such apparatus, methods, and/or computer program products have been described in the detailed description and illustrated in the accompanying drawings by various blocks, modules, components, circuits, steps, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.