Playing media content in response to a trigger

By using a companion device to manage media content and triggers, limited-resource devices like smartwatches can efficiently play media without latency, conserving battery power through proactive file management.

JP7764485B2Active Publication Date: 2025-11-05GOOGLE LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023546332
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-02-01
Publication Date
2025-11-05
Estimated Expiration
2041-02-01

AI Technical Summary

Technical Problem

Computing devices with limited resources, such as smartwatches, are constrained by battery power and memory, limiting the media content they can play.

Method used

A companion device provides media content, metadata, and triggers to the computing device, which generates a sequence of media content to play based on metadata, and sends additional files when nearing the end of the threshold time, while erasing unnecessary files to conserve resources.

Benefits of technology

This approach allows seamless media playback by anticipating content needs, reducing latency and conserving battery power by managing file storage efficiently.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007764485000001
    Figure 0007764485000001
  • Figure 0007764485000002
    Figure 0007764485000002
  • Figure 0007764485000003
    Figure 0007764485000003
Patent Text Reader

Abstract

A non-transitory computer-readable storage medium may store instructions. When executed by at least one processor, the instructions may be configured to cause the mobile computing device to receive a plurality of files from a companion device. Each of the plurality of files includes at least media content, a trigger condition, and an operation to be performed if the trigger condition is met. The operation included in at least one file of the plurality of files may include playing media content from another file of the plurality of files. The instructions may be further configured to cause the mobile computing device to play the media content included in the at least one file of the plurality of files, receive at least one additional file from the companion device, erase the at least one file of the plurality of files, and play the media content included in the at least one additional file.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Technical Field This specification relates to the playback of media content. [Background technology]

[0002] background Some computing devices, such as smartwatches, have limited computing resources, such as battery power and / or memory, which limit the media content that the computing device can play. Summary of the Invention [Problem to be solved by the invention]

[0003] overview A non-transitory computer-readable storage medium may store instructions. When executed by at least one processor, the instructions may be configured to cause the mobile computing device to receive a plurality of files from a companion device. Each file of the plurality of files includes at least media content, a trigger condition, and an operation that is performed when the trigger condition is met. The operation included in at least one file of the plurality of files may include playing media content from another file of the plurality of files. The instructions may be further configured to cause the mobile computing device to play the media content included in at least one file of the plurality of files, receive at least one additional file from the companion device, erase the at least one file of the plurality of files, and play the media content included in the at least one additional file.

[0004] A non-transitory computer-readable storage medium may store instructions that, when executed by at least one processor, may be configured to cause a mobile computing device to receive at least a first file, a second file, and a third file from a companion device, play the first media content, receive input associated with a second trigger field, play the second media content in response to receiving the input associated with the second trigger field, receive input associated with a fourth trigger field, and play the third media content in response to receiving the input associated with the fourth trigger field. The first file may include the first media content and a first trigger field associated with a first operation to be performed by the computing device. The first operation is not associated with the second file or the third file, and the second trigger field is associated with the second file. The second file may include the second media content and a third trigger field associated with a second operation to be performed by the computing device. The second operation is not associated with the first file or the third file, and the fourth trigger field is associated with the third file. The third file may include a third media content.

[0005] A non-transitory computer-readable storage medium may store instructions that, when executed by at least one processor, may be configured to cause the companion device to transmit at least a first file, a second file, and a third file to the mobile computing device, receive from the mobile computing device an indication of active files on the computing device, determine that the last media content played on the computing device within a threshold time based on the indication of active files stored on the computing device and the files stored on the computing device, and transmit at least a fourth file to the computing device based on determining that the last media content played on the computing device within the threshold time. The fourth file includes fourth media content. The first file may include the first media content and a first trigger field associated with a first operation to be performed by the computing device. The first operation is not associated with the second file or the third file, and the second trigger field is associated with the second file. The second file may include second media content and a third trigger field associated with a second operation to be performed by the computing device. The second operation is not associated with the first file or the third file, and the fourth trigger field is associated with the third file, which may include third media content.

[0006] The mobile computing device may include at least one processor and a non-transitory computer-readable storage medium having instructions stored thereon. When executed by the at least one processor, the instructions may be configured to cause the mobile computing device to receive at least a first file, a second file, and a third file from a companion device, play first media content, receive input associated with a second trigger field, play the second media content in response to receiving the input associated with the second trigger field, receive input associated with a fourth trigger field, and play the third media content in response to receiving the input associated with the fourth trigger field. The first file may include the first media content and a first trigger field associated with a first operation to be performed by the computing device. The first operation is not associated with the second file or the third file, and the second trigger field is associated with the second file. The second file may include the second media content and a third trigger field associated with a second operation to be performed by the computing device. The second operation is not associated with the first file or the third file, and the fourth trigger field is associated with the third file, which may include third media content.

[0007] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a network diagram showing a computing device and a companion device. [Figure 2A] FIG. 1 is a block diagram illustrating a computing device. [Figure 2B] FIG. 2 is a block diagram illustrating a companion device. [Figure 3]FIG. 2 is a block diagram illustrating operations performed on a file. [Figure 4] FIG. 1 is a timing diagram illustrating operations performed by a computing device when not in communication with a companion device. [Figure 5] FIG. 1 is a timing diagram illustrating operations performed by a computing device and a companion device when the companion device is taking a long time to resume from a low power state. [Figure 6] FIG. 1 is a block diagram illustrating a chained file. [Figure 7] 1 is a flowchart illustrating a method performed by a computing device. [Figure 8] 1 is a flowchart illustrating a method performed by a computing device. [Figure 9] 10 is a flowchart illustrating a method performed by a companion device. [Figure 10] 1 illustrates examples of computing devices and mobile computing devices that can be used to implement the techniques described herein. DETAILED DESCRIPTION OF THE INVENTION

[0009] The same reference symbols in different drawings indicate the same elements. Detailed Description Some computing devices, such as wearable computing devices including smartwatches, have limited computing resources, such as battery power and / or memory, which limit the media content that the computing device can play.

[0010] A companion device, such as a smartphone communicating with the computing device via a personal area network (PAN) or wireless local area network (WLAN) or a server communicating with the computing device via the Internet, can provide and / or send files to the computing device. The files may include media content playable by the computing device, such as audio and / or video content. The files may also include metadata, such as a file identifier, a schedule and / or time for the computing device to play the media content, and / or triggers. The triggers may include inputs, such as user inputs, and may be associated with actions such as turning off the computing device's display, scrolling through media content, and / or playing media content contained in another file.

[0011] The computing device may generate and / or receive from a companion device a chain and / or graph linking files from which media content is played to other files in response to a trigger. If the computing device is nearing the end of a chain and / or needs additional files because there is no more media content to play within a threshold time, the companion device may send the additional files to the computing device. The computing device may erase files that are unlikely to be played again (or may never be played at all, depending on the path the computing device previously took to the files) and store new files. The computing device may play content already stored on the computing device while waiting for additional files from the companion device, thereby hiding latency from the user.

[0012] FIG. 1 is a network diagram illustrating a computing device 102 and a companion device 104. In some examples, the computing device 102 may include a mobile computing device and / or a wearable computing device, such as a smartwatch or smartglasses. An example of a smartwatch may include a band or strap extending from a case. The case may support a display, and the case and display may enclose a processor and memory. An example of smartglasses may include a pair of lenses supported by a rim or frame, temples rotatably and / or flexibly attached to the rim or frame, and a processor and memory supported by the rim, frame, and / or temples. The computing device 102 may include at least one output node and / or output device for playing media content, such as a speaker and / or a display. The computing device 102 may include a clock for checking a schedule to play media content at scheduled and / or predetermined times. The computing device 102 may include at least one input node for receiving input, such as a touchscreen, one or more buttons, and / or one or more sensors, that may be compared to triggers stored in a file.

[0013] In response to triggers stored in files received from companion device 104, computing device 102 may determine media content to play and / or determine operations to perform. Computing device 102 (think of as a target device) generates and / or stores a sequence of media content to play and / or operations to perform in response to triggers based on metadata included in the files.

[0014] Computing device 102 may communicate with companion device 104 via network 106. By way of non-limiting example, network 106 may include a PAN (Personal Area Network) such as an IEEE (Institute of Electrical and Electronics Engineers) 802.15 ("Bluetooth") network, a WLAN (Wireless Local Area Network) such as an IEEE 802.11 ("Wireless Fidelity") network, the Internet, or computing device 102 and companion device 104 may communicate directly with each other via a peer-to-peer protocol.

[0015] The companion device 104 may store and transmit files to the computing device 102. By way of non-limiting example, the companion device 104 may include a mobile computing device, such as a smartphone, or any computing device, such as a desktop computer or server.

[0016] 2A is a block diagram illustrating a computing device 102. The computing device 102 may receive a file from a companion device 104 (not shown in FIG. 2A), determine an operation to perform based on metadata stored in the file, and perform the operation, such as playing the media content contained in the file.

[0017] The computing device may include a file store 202. The file store 202 may store files received from the companion device 104 in memory 228. The files received by the computing device 102 and stored in the file store 202 may include media content, such as video and / or audio content. The files may also include metadata. The metadata may include an identifier for the file and a schedule indicating when the media content contained in the file should be played. In some examples, where the metadata for the file and / or another file indicates that the media content should be played in response to a trigger and / or a specific input, the schedule may be blank and / or null. The metadata may also include one or more triggers, associated operations, and associated operation tags. The trigger may indicate an event, such as a predefined input, that causes the computing device 102 to perform the associated operation (e.g., play the media content), and the associated tag may indicate the file containing the media content to be played. An example of a file 302 received by the computing device 102 and / or the file store 202 is shown in FIG. 3.

[0018] The computing device 102 may include a pointer table generator 204. The pointer table generator 204 may map file identifiers contained in the file's metadata to addresses in memory where the files are stored. Mapping identifiers to addresses may facilitate quick retrieval of files and / or the media content contained in the files. An example of the pointer table 232 is shown in FIG. 3.

[0019] The computing device 102 may include a schedule generator 206. The schedule generator 206 may generate a schedule of files and / or media content to play. The schedule generator 206 may generate the schedule based on a calendar, which may include dates and / or times included in the file's metadata, and an identifier included in the file's metadata. The computing device 102 may play the media content according to the generated schedule without communicating with the companion device 104. An example of a schedule generated by the schedule generator 206 is shown in FIG. 3.

[0020] The computing device 102 may include a trigger mapper 208. The trigger mapper 208 may map triggers to files. Files may be identified by their identifiers. The trigger mapper 208 may map inputs to triggers and / or determine that inputs meet certain trigger conditions. In some examples, the triggers may be gestures on a touchscreen of the computing device 102, inputs to buttons of the computing device 102, the occurrence of a specific time, the passage of a predetermined period of time, the capture of an image by a camera of the computing device 102, the receipt of voice and / or speech(es) by a microphone of the computing device 102, the computing device 102 arriving at and / or being in a predetermined location, and / or reaching a temperature threshold. The trigger mapper 208 may map triggers to files, such as by checking a clip table 236 shown in FIG. 3. The clip table 236 maps triggers included in the file's metadata to file identifiers and / or identifiers included in the file. The computing device 102 may play media content based on the mapping of triggers to files without communicating with the companion device 104. In some examples, the computing device 102 does not include the trigger mapper 208, and the computing device 102 receives the clip table 236 from the companion device 104.

[0021] The computing device 102 may include an address obtainer 210. The address obtainer 210 may obtain a memory address of the file and / or media content. The address obtainer 210 may obtain the address of the file and / or media content based on an identifier associated with the file and / or media content, such as by checking a pointer table, such as the pointer table 232 shown in FIG.

[0022] The computing device 102 may include a chain generator 212. The chain generator 212 may map triggers to files and / or generate chains or graphs that associate triggers with operations that are performed in response to the triggers and / or media content that is played in response to the triggers. The chain generator 212 may generate the chains or graphs based on associations between triggers, operations, and tags included in the file's metadata. An example of a chain or graph is shown in FIG. 6. In some examples, the chain generator 212 may generate the chains or graphs based on a clip table, such as the clip table 236 shown in FIG. 3.

[0023] The computing device 102 may include an input processor 214. As non-limiting examples, the input processor 214 may process inputs such as taps and / or swipes to a touchscreen included in the computing device 102, inputs to buttons included in the computing device 102, inputs to local or remote devices that may be coupled to the computing device 102 via a wired or wireless interface, such as a joystick, touchpad, or an inertial measurement unit (IMU), camera, microphone, and / or inputs to sensors, such as a temperature sensor, a global positioning system (GPS) sensor(s), and / or an accelerometer. The input processor 214 may provide the input to the trigger mapper 208 and / or interpret or classify the input as a gesture and provide the gesture and / or classified input to the trigger mapper 208.

[0024] The computing device 102 may include a clock 216. The clock 216 may maintain the date and / or the time. The trigger mapper 208 may process input from and / or the time maintained by the clock 216 to determine whether a trigger condition is met.

[0025] The computing device 102 may include a file retriever 218. The file retriever 218 may retrieve files and / or media content. The file retriever 218 may retrieve files and / or media content based on the trigger mapper 208 determining that a trigger condition is met and determining that a file and / or media content is associated with a trigger whose trigger condition is met.

[0026] The computing device 102 may include a media processing unit 220. The media processing unit 220 may process and / or play media content, such as video content and / or audio content. The media processing unit 220 may process and / or play video content by displaying the video content on a display included in the computing device 102. The media processing unit 220 may process and / or play audio content by outputting the audio content through speakers included in the computing device 102.

[0027] In some examples, the media processing unit 220 may combine multiple media streams, such as, by way of non-limiting example, combining media content from two different files, combining media content from a file with content rendered locally on the computing device 102, combining media content from a file with streaming media content that the computing device 102 receives from the companion device 104, or combining media content rendered locally on the computing device 102 with streaming media content that the computing device 102 receives from the companion device 104.

[0028] In some examples, the input processing unit 214 and the media processing unit 220 may scroll forward or backward through a media clip depending on which trigger condition the input satisfies, based on operations associated with scrolling triggers contained in the file and associated tags that indicate the same file. For example, the computing device 102 may respond to contact with the top of the display and / or an upward swipe on the display by advancing the media content backward by one or more frames, and / or may respond to contact with the bottom of the display and / or a downward swipe on the display by advancing the media content forward by one or more frames.

[0029] In some examples, the trigger condition for the associated file may include contact with the top of the display and / or an upward swipe on the display, and the operation may include presenting media content from a file further forward or backward in the chain such that the computing device can respond to the user's tap or swipe by presenting an image further forward or backward in the sequential document.

[0030] The computing device 102 may include a tagger 222. The tagger 222 may map tags contained in the metadata to files. The tagger 222 may map tags to files by mapping and / or matching tags contained in the metadata to identifiers contained in the metadata of other files. The tagger 222 may send tags and / or identifiers of files and / or media content currently playing on the computing device 102 to the companion device 104 to inform the companion device 104 which files and / or media content are currently playing on the computing device 102.

[0031] The computing device 102 may include a transitional media player 224. The transitional media player 224 may play pre-rendered transitional content, such as the pre-rendered transitional content 518 shown and described in FIG. 5, after the media processing unit 220 has played and / or processed the last media content in the chain and before the computing device 102 receives the additional files from the companion device. The transitional media content may be media content that is unrelated to and / or not referenced by the files and / or media content stored and / or referenced in the clip table 236 and / or the chain (an example chain is shown in FIG. 6). Playing the pre-rendered transitional content while waiting for the additional files from the companion device makes the transition from the last media content to the playback of the additional files appear seamless to the user.

[0032] Computing device 102 may include at least one processor 226. The at least one processor 226 may execute instructions, such as instructions stored in at least one memory device 228, that cause computing device 102 to perform any combination of the methods, functions, and / or techniques described herein.

[0033] Computing device 102 may include at least one storage device 228. The at least one storage device 228 may include a non-transitory computer-readable storage medium. The at least one storage device 228 may store data and instructions that, when executed by at least one processor, such as processor 226, are configured to cause computing device 102 to perform any combination of methods, functions, and / or techniques described herein. Accordingly, in any of the implementations described herein (even if not explicitly stated with respect to a particular implementation), software (e.g., processing modules, stored instructions) and / or hardware (e.g., processors, storage devices, etc.) associated with or included in computing device 102 may be configured, alone or in conjunction with computing device 102, to perform any combination of methods, functions, and / or techniques described herein.

[0034] The memory 228 may include a file store 230. The file store 230 may include files received by the computing device 102 and stored by the file storage unit 202. The file store 230 may also include a pointer table 232 generated by the pointer table generator 204, a schedule 234 generated by the schedule generator 206, and / or a clip table 236 received by the computing device 102 from the companion device 104.

[0035] The computing device 102 may include at least one input / output node 238. The at least one input / output node 238 may receive and / or transmit data from the computing device 102, the companion device 104, etc., and / or may receive input from and / or provide output to a user. The input and output functions may be combined into a single node or may be separated into separate input and output nodes.

[0036] 2B is a block diagram illustrating a companion device 104. The companion device 104 may send files to the computing device 102 (not shown in FIG. 2B), may monitor which content and / or files are active and / or playing on the computing device 102, and may send additional files to the computing device 102 when the computing device 102 is running out of content to play.

[0037] The companion device 104 may include a clip table generator 252. The clip table generator 252 may map triggers to files. The files may be identified by their identifiers. The clip table generator 252 may map inputs to triggers to generate the clip table 236. In some examples, the trigger may be a gesture on a touchscreen of the computing device 102, an input to a button of the computing device 102, a specific time occurring, a predetermined period of time elapsed, an image being captured by a camera of the computing device 102, voice and / or speech(es) being received by a microphone of the computing device 102, the computing device 102 arriving at and / or being in a predetermined location, and / or reaching a temperature threshold. The companion device 104 may transmit the generated clip table 236 to the computing device 102.

[0038] The companion device 104 may include a pre-renderer 254. The pre-renderer 254 may pre-render media content, such as video and / or audio content, for transfer to and subsequent playback by the computing device 102 and may store the pre-rendered media content in memory 262 of the companion device 104. Pre-rendering by the pre-renderer 254 converts the media content into a format ready for playback and / or output by the computing device 102, which may reduce the processing load on the computing device 102.

[0039] The companion device 104 may include an active file monitor 256. The active file monitor 256 may monitor which files and / or media content are active and / or playing on the computing device 102. The active file monitor 256 may store the most recent tags and / or identifiers sent by the tag processor 222 of the computing device 102 and received by the companion device 104. The tags and / or identifiers sent by the tag processor 222 and stored by the active file monitor 256 may indicate files and / or media content currently playing on and / or being output by the computing device 102.

[0040] The companion device 104 may include a threshold monitor 258. The threshold monitor 258 may determine, based on the active files and / or media content playing on the computing device 102 and the clip table 236 and / or a chain (an example chain is shown in FIG. 6 ), how long the computing device 102 has to play the media content before it runs out. The threshold monitor 258 may compare the time until the media content runs out with a threshold time. If the threshold monitor 258 determines that the time until the media content runs out is within the threshold time, the companion device 104 may send additional files to the computing device 102.

[0041] The companion device 104 may include at least one processor 260. The at least one processor 260 may execute instructions, such as instructions stored in at least one memory device 262, that cause the companion device 104 to perform any combination of the methods, functions, and / or techniques described herein.

[0042] The companion device 104 may include at least one storage device 262. The at least one storage device 262 may include a non-transitory computer-readable storage medium. The at least one storage device 262 may store data and instructions that, when executed by at least one processor, such as processor 260, are configured to cause the companion device 104 to perform any combination of the methods, functions, and / or techniques described herein. Thus, in any of the implementations described herein (even if not explicitly noted with respect to a particular implementation), software (e.g., processing modules, stored instructions) and / or hardware (e.g., processors, storage devices, etc.) associated with or included in the companion device 104 may be configured, alone or in conjunction with the companion device 104, to perform any combination of the methods, functions, and / or techniques described herein.

[0043] The companion device 104 may include at least one input / output node 264. The at least one input / output node 264 may receive and / or transmit data from, for example, the computing device 102 and the companion device 104, and / or may receive input from and / or provide output to a user. The input and output functions may be combined into a single node or may be separated into separate input and output nodes.

[0044] 3 is a block diagram illustrating operations performed on a file. An exemplary file 302 is shown in FIG. 3. The file 302 may also be considered a container. The file 302 and / or container may contain data, such as a media content 304 portion and a metadata 310 portion, in a predetermined format. The computing device 102 may receive multiple files 302 from the companion device 104.

[0045] The file 302 may include media content 304. The media content 304 may include content that may be continuously played and / or output by the computing device 102. The media content 304 may include video content 306 and / or audio content 308. In some examples, the media content 304 includes only video content 306, and when the computing device 102 plays the media content 304 included in the file 302, the computing device 102 plays and / or outputs the video content 306 without corresponding audio content via a display included with the computing device 102. In some examples, the media content 304 includes only audio content 308, and when the computing device 102 plays the media content 304 included in the file 302, the computing device 102 plays and / or outputs the audio content 308 without corresponding video content via speakers included with the computing device 102. In some examples, the media content 304 includes both video content 306 and audio content 308, and when the computing device 102 plays the media content 304 included in the file 302, the computing device 102 plays and / or outputs the video content 306 via a display and plays and / or outputs the audio content 308 via a speaker, and the video content 306 and the audio content 308 are synchronized with each other.

[0046] The file 302 may include metadata 310. The metadata 310 may include information about the file 302, such as information for identifying the file 302, when the media content 304 contained in the file 302 should be played and / or what other actions should be taken, and when these actions should be taken while and / or after the media content 304 contained in the file 302 is being played.

[0047] The metadata 310 may include an identifier (ID) 312. The identifier 312 (which may also be considered an identifier field) may serve as an identifier for the file 302. The computing device 102 may retrieve and / or process the file 302, and / or the media content 304 and / or metadata included in the file 302, based on the identifier 312 included in the metadata 310 of the file 302.

[0048] In some examples, the metadata 310 may include a schedule 314. The schedule 314 (which may also be considered a schedule field) may indicate the time and / or date that the computing device 102 should play the media content 304 included in the file 302. In some examples, the computing device 102 may use the schedule 314 included in the metadata 310 of the file 302 to construct a schedule 324 for when the media content 304 of a particular file 302 should be played.

[0049] The intended use of the media content 304 of some files 302 is not to be played at a specific time, but rather to be played in response to a specific trigger and / or condition. For media content 304 that is not intended to be played at a specific time, the schedule 314 may be blank and / or may contain null values.

[0050] In some examples, the metadata 310 may include any number of triggers 316, 316A, such as zero or more, one or more, or multiple, and associated operations 318, 318A and tags 320, 320A. The triggers 316 (which may also be considered trigger fields) may identify a trigger condition that causes the associated operation 318 to occur. By way of non-limiting example, the trigger conditions may include user input to a touchscreen, such as gestures including loop clicks, swipes, left swipes, or right swipes; user movement captured by a sensor, such as an accelerometer detecting movement of the computing device 102 or a camera capturing a head nod; user input detected by a microphone, such as a word representing a command; input captured by a microphone, such as a predetermined sound including a bicycle bell or a baby crying; movement of the computing device 102, such as a throwing or dropping movement, detected by an accelerometer included in the computing device 102; or the satisfaction of a threshold temperature detected by a thermometer included in the computing device 102.

[0051] The metadata 310 may include an operation 318 (which may also be considered an operation field) associated with each trigger 316. The operation 318 may be an operation that the computing device 102 takes and / or executes in response to and / or based on the condition of the associated trigger 316 being satisfied. The operation 318 may include, by way of non-limiting example, playing the media content 304 of another file 302, indicating whether the media content will play forward or reverse; turning off a display included with the computing device 102 (which may include turning the display back on in response to user input) or turning on a display; sending data (e.g., data included in a tag 320) to the companion device 104; pausing playback of the media content 304; resuming playback of the media content 304; moving the media content 304 forward by a specified number of frames (e.g., one or more); moving the media content 304 backward by a specified number of frames (e.g., one or more); turning up the volume of a speaker; turning down the volume of a speaker; setting the volume of a speaker to a particular value; taking, capturing, and / or storing a photo taken by a camera included in the computing device; starting to record and / or stream video captured by the computing device 102; stopping to record and / or stream video captured by the computing device 102; starting to record and / or stream audio detected by a microphone included in the computing device 102; stopping to record and / or stream video audio detected by the microphone; and / or storing and / or recording the captured audio and / or video data for a predetermined period of time, such as a predetermined number of seconds.

[0052] The metadata 310 may include a tag 320 associated with each trigger 316 and / or operation 318. If the operation 318 includes playing media content 304 from another file 302, the tag 320 (which may also be considered a tag field) may include and / or identify an identifier 312 of the other file 302 (including the media content 304 to play). If the operation 318 includes sending data to the companion device 104, the tag 320 may include data to send to the companion device 104, such as the identifier 312 of the currently playing file 302, so that the companion device 104 knows and / or has information about the file 302 and / or media content 304 currently playing on the computing device 102. In some examples, if the operation 318 does not include playing media content 304 from another file 302 or sending data to the companion device 104, the tag 320 may be blank and / or include a null value.

[0053] The computing device 102 may receive and store 322 the files 302 from the companion device. The computing device 102 may store the received files 302 in the file store 230. In some examples, when the computing device 102 receives files from the companion device 104, such as after playing media content 304 from some of the files 302, the computing device 102 may erase and / or delete some of the files to free up memory for additional files.

[0054] The pointer table generator 204 included in the computing device 102 may generate the pointer table 232. The pointer table 232 may map identifiers 312A, 312B included in a file to addresses in memory 228, such as in the file store 230, where the file 302 is stored.

[0055] The schedule generator 206 included in the computing device 102 may generate the schedule 234. The schedule generator 206 may generate the schedule 234 by mapping the schedules 314A, 314B included in the metadata 310 of the file 302 to the identifiers 312C, 312D included in the metadata of the file 302.

[0056] The computing device 102 may generate and store the clip table 236 and / or may receive and store the clip table 236 from the companion device 104. The clip table 236 may map triggers 316B, 316C included in the metadata of the file 302 to file 302 identifiers 312E, 312F included in the file 302. In some examples where the file 302 includes multiple triggers 316, 316A, the clip table 236 may include multiple triggers 316B, 316C that map to the same identifiers 312E, 312F of the same file 302.

[0057] In some examples, the triggers 316B, 316C included in the clip table 236 serve as entries into a chain of files, such as the chain shown in Figure 6. For example, while the computing device 102 is not playing media content, the computing device 102 may respond to an input that satisfies a condition of a trigger 316B, 316C included in the clip table 236 by playing the media content included in the file identified by the identifier 312E, 312F associated with the trigger 316B, 316C whose trigger condition was met, and then performing an operation 318, 318A based on the satisfaction of the associated trigger 316, 316A included in the file identified by the identifier 312E, 312F associated with the trigger 316B, 316C whose trigger condition was met.

[0058] In some examples, the computing device 102 does not generate the clip table 236, but only receives the clip table 236 from the companion device 104. Receiving the clip table 236 from the companion device 104 and not generating the clip table 236 may reduce the workload of the processor 226, thereby conserving battery power for the computing device 102.

[0059] In some examples, based on the clip table 236 and / or based on the input processor 214 interpreting input from a sensor 338 (which may include, by way of non-limiting example, a touchscreen, a button, a camera, a microphone, an accelerometer, a GPS sensor, or a thermometer) when the trigger mapper 208 determines that a mapping to a file's identifiers 312E, 312F occurs based on the time indicated by the clock 216 matching a time in the schedule 234 that is mapped to the identifiers 312C, 312D, the address retriever 210 of the computing device 102 may retrieve (328) the addresses of the media content 304. The address retriever 210 may retrieve (328) the addresses by mapping the identifiers 312C, 312D, 312E, 312F from the schedule 234 or clip table 236 to the identifiers 312A, 312B in the pointer table and returning and / or retrieving the addresses 324A, 324B associated with the identifiers 312A, 312B.

[0060] In an example where the operation 318, 318A included in the metadata 310 of the retrieved file 302 and associated with the trigger 316, 316A whose trigger condition is met includes playing media content, the file retriever 218 may retrieve (326) the media content identified by the tag 320, 320A associated with the trigger 316, 316 whose trigger condition is met. The file retriever 218 may retrieve the file by mapping the identifier included in the associated tag 320, 320A to the same identifier 312A, 312B in the pointer table 232 and retrieving the file 302 stored at the memory address 324A, 324B associated with the identifier 312A, 312B. The media processor 220 may process (330) the media content 304 included in the retrieved file 302, such as by outputting audio (332) through speaker(s) and / or video through a display (334).

[0061] In an example where the operation 318, 318A included in the metadata 310 of the acquired file 302 and associated with the trigger 316, 316 whose trigger condition is met includes sending data to the companion device 104, the computing device 102 may send to the companion device 104 the data stored in the tag 320, 320A associated with the trigger 316, 316A whose trigger condition is met.

[0062] In some examples, the computing device 102 may send an indication of the active files 302 on the computing device 102 to the companion device 104. The active files may indicate which media content the computing device 102 is currently playing. An indication and / or record of which files 302 are stored on the computing device 102 may be stored on the companion device 104. The companion device 104 may generate a chain or graph similar to the chain shown in FIG. 6. Based on the chain or graph and the indication of which media content the computing device 102 is currently playing, the companion device 104 may determine when the last media content is played on the computing device 102. The companion device 104 makes the determination of whether the last media content is played and / or whether to finish playing the last media content within a threshold time. If the companion device 104 determines that the last media content has been played and / or determines to end playback within the threshold time, the companion device 104 may send additional files 302 to the computing device 102 so that the computing device 102 does not run out of media content 304 to play.

[0063] In some examples, the computing device 102 does not determine when the last media content plays on the computing device 102 and / or how long the media content will play before the computing device 102 terminates playing the media content stored on the computing device 102. In these examples, the computing device 102 sends an indication of which media content is currently playing on the computing device 102 to the companion device, and the companion device 104 determines when the last media content plays on the computing device 102 and / or how long the media content will play before the computing device 102 terminates playing the media content stored on the computing device 102. In these examples, the companion device 104 determines when to send additional files to the computing device 102. By having the companion device 104 determine when to send additional files to the computing device 102, the computing device 102 can reduce the workload on the processor 226, thereby conserving battery power.

[0064] 4 is a timing diagram illustrating operations performed by the computing device 102 when not in communication with the companion device 104. As non-limiting examples, communication between the computing device 102 and the companion device 104 may be impossible if the distance between the computing device 102 and the companion device 104 exceeds the communication range distance, the companion device 104 is powered off, or a network error occurs.

[0065] A particular input may satisfy a trigger condition, such as a user 400 performing an action 402A, such as tapping on the display of the computing device 102. The computing device 102 may process 404A the input resulting from the action 402A, determine that the processed input satisfies the trigger condition, and respond to the trigger condition being satisfied by attempting to contact the companion device 104. The computing device 102 may respond to not receiving a response from the companion device 104 by playing stored media content, such as pre-rendered content 406A.

[0066] The user 400 performs another operation 402B, in which the computing device 102 processes 404B the input, determines that the processed input satisfies the trigger condition, attempts to contact the companion device, and, based on not receiving a response from the companion device 104, may play stored media content, such as pre-rendered content 406B.

[0067] 5 is a timing diagram illustrating operations performed by the computing device 102 and the companion device 104 when the companion device 104 is taking a long time to resume from a low power state. The operations in the top row (502, 504, 506, 510, 512) are operations performed by the companion device 104, and the operations in the bottom row (514, 516, 518, 520) are operations performed by the computing device 102.

[0068] In this example, the companion device 104 may transmit one or more and / or multiple pre-rendered transitional clips and / or transitional media content to the computing device 102. After transmitting the pre-rendered transitional clip(s) and / or transitional media content to the computing device 102, the companion device 104 may go to sleep and / or enter a low power state. The pre-rendered transitional clip(s) and / or transitional media content may give the companion device 104 time to wake up, exit the low power state, and / or enter a higher power state and respond to a request for additional media content from the computing device 102.

[0069] The companion device 104 may transmit the streaming introductory content (502) to the computing device 102. The computing device 102 presents and / or outputs the streaming introductory content (502) as the introductory content to be experienced (514). While the computing device is displaying the last frame (516), the companion device may pre-render (504) the operation transition content and transmit the pre-rendered operation transition content to the computing device 102. The computing device 102 may store the pre-rendered operation transition content in memory 228. After pre-rendering and transmitting the pre-rendered operation transition content to the computing device 102, the companion device 104 may go to sleep (506) and / or enter a low power state.

[0070] While the companion device is in a sleep state and / or low power state, the user 400 may perform an operation 402C, such as making an input, including a tap or gesture, to the computing device 102. The computing device 102 may recognize the input and respond to the input by sending an operation notification 508 to the companion device 104 to prompt the companion device 104 to wake up, exit a low power state, and / or enter a higher power state. While the computing device 102 waits for the companion device 104 to wake up (510) and send content to the computing device 102, the transitional media player 224 of the computing device 102 may play pre-rendered transitional content (518) that the companion device pre-rendered (504). After waking up (510), the companion device 104 may resume streaming (512) the experiential content to the computing device 102, and the computing device 102 may continue playing (520) the experiential content received from the companion device 104.

[0071] 6 is a block diagram illustrating chained files 302A, 302B, 302C, 302D, 302E, 303F, and 302G. Based on files identified by tags 320, 320A included in metadata 310 of files 302A, 302B, 302C, 302D, 302E, 303F, and 302G, the chain generator 212 of computing device 102 may chain files 302A, 302B, 302C, 302D, 302E, 303F, and 302G and / or create a graph of files 302A, 302B, 302C, 302D, 302E, 303F, and 302G. Based on the trigger conditions 616A, 616B, 616C, 616D being satisfied, the computing device 102 may perform an operation 618A, 618B, 618C, 618D, 618D, such as playing media content of another file 302A, 302B, 302C, 302D, 302E, 302E, 302F, 302F or turning off the display.

[0072] 6, if a trigger condition of no input for N seconds 622A is satisfied while the computing device 102 is playing media content from a first file 302A, the computing device 102 performs an operation to turn off the display 622B. The operation to turn off the display 622B is not associated with the other files 302B, 302C, 302D, 302E, 302F, and 302G. If a trigger condition of a click on the display 624A is satisfied while the media content from the first file 302A is playing, the computing device 102 performs an operation to play media content from a second file B (file 302B) 624B. If a trigger condition of a left swipe on the display 626A is satisfied while the media content from the first file 302A is playing, the computing device 102 performs an operation to play media content from a third file C (file 302C) 626B. If a trigger condition of a right swipe 628A on the display is met while the media content of the first file 302A is playing, the computing device 102 performs an operation to play the media content of the fourth file D (file 302D) 628B.

[0073] If the computing device 102 is playing media content from a second file B (file 302B) and a trigger condition of no input for N seconds 632A is met, the computing device 102 performs an operation to play media content from a fifth file E (file 302E) 632B.

[0074] When the computing device 102 is playing media content from a third file C (file 302C) and a trigger condition of no input for N seconds 642A is met, the computing device 102 performs a turn off display operation 642B. The turn off display operation 642B is not associated with any of the other files 302A, 302B, 302D, 302E, 302F, and 302G.

[0075] If the trigger condition of no input for N seconds 652A is met while the computing device 102 is playing media content in a fourth file D (302D), the computing device 102 performs a display turn off 652B operation. The display turn off operation 652B is not associated with the other files 302A, 302B, 302C, 302E, 302F, and 302G. If the trigger condition of a left swipe 654A on the display is met while the media content in the fourth file 302D is playing, the computing device 102 performs a display play operation. If the trigger condition of a right swipe 656A on the display is met while the media content in the fourth file 302D is playing, the computing device 102 performs a display play operation.

[0076] 7 is a flowchart illustrating a method performed by the computing device 102. The method may include receiving (702) a plurality of files 302 from the companion device 104. Each of the plurality of files 302 may include at least media content (304), a trigger condition (316), and an operation (318) that is performed when the trigger condition (316) is met. The operation 318 included in at least one of the plurality of files 302 may include playing media content 304 from another file of the plurality of files 302. The method may include playing (704) the media content 304 included in the at least one file of the plurality of files 302. The method may include receiving (706) at least one additional file 302 from the companion device 304. The method may include erasing (708) at least one file of the plurality of files 302. The method may include playing (710) the media content 304 included in the at least one additional file 302.

[0077] In some examples, the mobile computing device 302 may include a smartwatch.

[0078] In some examples, the trigger condition 316 may include a user input. In some examples, the trigger condition 316 may include a user input to a touchscreen included with the mobile computing device 102 .

[0079] In some examples, the companion device 104 may include a smartphone. In some examples, the method may further include playing transitional media content 518 after playing the media content 304 included in the plurality of files 302 and before receiving the at least one additional file 302. The transitional media content 518 is independent of the plurality of files 302 and the at least one additional file 302.

[0080] 8 is a flowchart illustrating a method performed by a computing device 102. The method may include receiving (802) at least a first file 302, 302A, a second file 302, 302D, and a third file 302, 302F, 302G from a companion device 104. The first file 302 may include a first media content 304 and a first trigger field 316, 622A associated with a first operation 318, 622B to be performed by the computing device 102, where the first operation 318, 622B is not associated with the second file 302, 302D or the third file 302, 302F, 302G, and the first file 302 may further include a second trigger field 316, 628A associated with the second file 302, 302D, 628B. The second file 302, 302D may include a second media content 304 and a third trigger field 316, 652A associated with a second operation 318, 652B to be performed by the computing device 102, where the second operation 318, 652B is not associated with the first file 302, 302A or the third file 302, 302F, 302G, and the second file 302, 302D may further include a fourth trigger field 316, 656A associated with the third file 302, 302F, 302G, 656B. The third file 302, 302F, 302G may include the third media content 304. The method may also include playing (804) the first media content 304. The method may also include receiving (806) input associated with the second trigger field 316. The method may also include playing (808) the second media content 304 in response to receiving input associated with the second trigger field 316. The method may also include receiving (810) input associated with the fourth trigger field 316. The method may also include playing (812) the third media content 304 in response to receiving input associated with the fourth trigger field 316.

[0081] In some examples, the third file may further include a fifth trigger field associated with the first file, and the method may further include receiving input associated with the fifth trigger field, playing the first media content in response to receiving the input associated with the fifth trigger field, receiving input associated with the first trigger field, and performing the first operation in response to receiving the input associated with the first trigger field.

[0082] In some examples, the first operation may include turning off a display included in the mobile computing device.

[0083] In some examples, the third file may further include a fifth trigger field associated with the second file, and the method may further include receiving input associated with the fifth trigger field, playing second media content in response to receiving the input associated with the fifth trigger field, receiving input associated with a third trigger field, and performing a second operation in response to receiving the input associated with the third trigger field.

[0084] In some examples, the second operation may include turning off a display included in the mobile computing device.

[0085] In some examples, the third file may further include a fifth trigger field identifying the first input, the fifth trigger field being associated with a third operation of the computing device, the third operation including moving the third media content forward by at least one frame, and the third file may further include a sixth trigger field identifying the second input, the sixth trigger field being associated with a fourth operation of the computing device, the fourth operation including moving the third media content backward by at least one frame.

[0086] In some examples, the method may further include requesting the additional file from the companion device and playing at least one of the first media content, the second media content, or the third media content based on not receiving a response to the request.

[0087] In some examples, the method may further include determining that the additional file is needed, and based on determining that the additional file is needed, requesting the additional file from the companion device, and playing at least one of the first media content, the second media content, or the third media content.

[0088] In some examples, the method may further include generating a media content chain that may connect the first media content to the second media content based on the first file including a second trigger field, the second trigger field being associated with the second file, and the second file including the second media content, and may connect the second media content to the third media content based on the second file including a fourth trigger field, the fourth trigger field being associated with the third file, and the third file including the third media content.

[0089] In some examples, the method may further include receiving a fourth file, the fourth file including fourth media content and a fifth trigger field, the fifth trigger field including a time, and the method may further include playing the fourth media content at the time included in the fifth trigger field.

[0090] In some examples, the method may further include determining that the last media content played within the threshold time, and requesting the file from the companion device based on determining that the last media content played within the threshold time.

[0091] 9 is a flowchart illustrating a method performed by the companion device 104. The method may include transmitting (902) at least a first file, a second file, and a third file to the mobile computing device 102. The first file may include first media content and a first trigger field associated with a first operation to be performed by the computing device, the first operation not associated with the second or third file, and the first file may further include a second trigger field associated with the second file. The second file may include second media content and a third trigger field associated with a second operation to be performed by the computing device, the second operation not associated with the first or third file, and the second file may further include a fourth trigger field associated with the third file. The third file may include third media content. The method may further include receiving (904) an indication of active files on the computing device from the mobile computing device. The method may further include determining (906) that the last media content will be played on the computing device within a threshold time based on a representation of active files on the computing device and files stored on the computing device. The method may further include transmitting (908) at least a fourth file to the computing device based on determining that the last media content will be played on the computing device within the threshold time, the fourth file including the fourth media content.

[0092] 10 illustrates an example of a generic computing device 1000 and a generic mobile computing device 1050 that may be used with the technology described herein. Computing device 1000 is intended to represent various forms of digital computers, such as laptops, desktops, tablets, workstations, personal digital assistants (PDAs), televisions, servers, blade servers, mainframes, and other suitable computing devices. Computing device 1050 is intended to represent various forms of mobile equipment, such as PDAs, mobile phones, smartphones, and other similar computing devices. The components, their connections and relationships, and their functions illustrated herein are merely exemplary and do not limit the scope of the invention(s) described and / or claimed herein.

[0093] The computing device 1000 includes a processor 1002, a memory 1004, a storage device 1006, a high-speed interface 1008 connected to the memory 1004 and a high-speed expansion port 1010, and a low-speed interface 1012 connected to a low-speed bus 1014 and the storage device 1006. The processor 1002 may be a semiconductor-based processor. The memory 1004 may be a semiconductor-based memory. Each of the components 1002, 1004, 1006, 1008, 1010, and 1012 are connected to one another using various buses and may be implemented on a common motherboard or in other suitable manners. The processor 1002 is capable of processing instructions for execution within the computing device 1000, including instructions stored in the memory 1004 or on the storage device 1006 for displaying graphical information for a GUI on an external input / output device, such as a display 1016 coupled to the high-speed interface 1008. In other implementations, multiple processors and / or multiple buses may be utilized, along with multiple memories and types of memory, as appropriate, and multiple computing devices 1000 may be connected, each providing a portion of the required operations (e.g., as a server bank, a cluster of blade servers, or a multi-processor system).

[0094] The memory 1004 stores information within the computing device 1000. In one implementation, the memory 1004 is one or more volatile storage devices. In another implementation, the memory 1004 is one or more non-volatile storage devices. The memory 1004 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.

[0095] The storage device 1006 can provide mass storage for the computing device 1000. In one embodiment, the storage device 1006 can be or include a computer-readable medium, such as a floppy disk drive, a hard disk drive, an optical disk drive, or a tape drive, a flash memory or other similar solid-state memory device, or an array of devices, including devices included in a storage area network or other configuration. A computer program product can be tangibly embodied on an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable or machine-readable medium, such as the memory 1004, the storage device 1006, or memory on the processor 1002.

[0096] High-speed controller 1008 manages operations requiring more bandwidth for computing device 1000, while low-speed controller 1012 manages operations requiring more lower bandwidth. This allocation of functionality is merely exemplary. In one embodiment, high-speed controller 1008 is coupled to memory 1004 (e.g., through a graphics processor or accelerator), display 1016, and high-speed expansion port 1010. High-speed expansion port 1010 can accept various expansion cards (not shown). In this embodiment, low-speed controller 1012 is coupled to storage device 1006 and low-speed expansion port 1014. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as a keyboard, pointing device, scanner, etc., or to a network device, such as a switch or router, for example, through a network adapter.

[0097] Computing device 1000 may be implemented in a number of different forms, as shown. For example, it may be implemented as a standard server 1020, multiple times in a cluster of such servers, or as part of a rack server system 1024. Additionally, it may be implemented in a personal computer, such as a laptop computer 1022. Alternatively, the components of computing device 1000 may be combined with other components of a mobile device (not shown), such as device 1050. Each such device may include one or more of computing devices 1000, 1050, and the entire system may consist of multiple computing devices 1000, 1050 in communication with each other.

[0098] Computing device 1050 includes, among other things, a processor 1052, memory 1064, input / output devices such as a display 1054, a communication interface 1066, and a transceiver 1068. A storage device, such as a microdrive or other device, may be provided in device 1050 to provide additional storage. Each of components 1050, 1052, 1064, 1054, 1066, and 1068 are connected to one another using various buses, and some of these components may be implemented on a common motherboard or in other suitable manners.

[0099] The processor 1052 can execute instructions within the computing device 450, including instructions stored in the memory 1064. The processor may be implemented as a chipset of chips including separate analog and digital processors. The processor enables the coordination of other components of the device 1050, for example, controlling the user interface, controlling applications run by the device 1050, and controlling wireless communications by the device 1050.

[0100] The processor 1052 may communicate with a user through a control interface 1058 and a display interface 1056 coupled to a display 1054. The display 1054 may be, for example, a TFT LCD (thin film transistor liquid crystal display) or an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 1056 may include appropriate circuitry for driving the display 1054 to present graphical and other information to the user. The control interface 1058 may receive commands from the user and convert them for execution by the processor 1052. Additionally, an external interface 1062 may be provided in communication with the processor 1052 to enable the device 1050 to communicate with other devices over short distances. For example, the external interface 1062 may enable wired communication in some implementations and wireless communication in other implementations, or multiple interfaces may be used.

[0101] The memory 1064 stores information within the computing device 1050. The memory 1064 may be embodied as one or more computer-readable media, one or more volatile storage devices, or one or more non-volatile storage devices. Additionally, an expansion memory 1074 may be provided and connected to the device 1050 through an expansion interface 1072. The expansion interface 1072 may include, for example, a Single In Line Memory Module (SIMM) card interface. Such expansion memory 1074 may provide additional storage space for the device 1050 or may also store applications or other information for the device 1050. Specifically, the expansion memory 1074 may include instructions for performing or assisting in the processes described above and may also include secure information. Thus, for example, the expansion memory 1074 may be provided as a security module for the device 1050, or instructions enabling use of the secure device 1050 may be programmed into the expansion memory 1074. Additionally, secure applications may be provided with additional information via the SIMM card, such as placing identifying information on the SIMM card in a way that cannot be hacked.

[0102] The memory may include, for example, flash memory and / or NVRAM memory, as described below. In one embodiment, a computer program product is tangibly embodied on an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable or machine-readable medium, such as memory 1064, expansion memory 1074, or memory on processor 1052, and may be received, for example, via transceiver 1068 or external interface 1062.

[0103] Device 1050 may communicate wirelessly through communication interface 1066. The communication interface may include digital signal processing circuitry, if necessary. The communication interface may enable communication under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio frequency transceiver 1068. Additionally, short-range communication may occur, such as using Bluetooth, Wi-Fi, or other such transceivers (not shown). Additionally, a Global Positioning System (GPS) receiver module 1070 may provide additional navigation-related or location-related wireless data to device 1050. The additional navigation-related or location-related wireless data may be utilized by applications executing on device 1050, as appropriate.

[0104] Device 1050 may also communicate via voice using audio codec 1060. Audio codec 1060 may accept voice information from a user and convert it into usable digital information. Similarly, audio codec 1060 may generate sounds for the user, such as through a speaker in a handset of device 1050. Such sounds may include audio from a voice telephone call, recorded audio (e.g., voice messages, music files, etc.), and sounds generated by applications running on device 1050.

[0105] The computing device 1050 may be implemented in a number of different forms, as shown, such as a mobile phone 1080, or as part of a smartphone 1082, personal digital assistant, or other similar mobile device.

[0106] Various implementations of the systems and techniques described herein may be realized in digital electronic circuitry, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system. The programmable system includes at least one programmable processor, which may be a special-purpose processor or a general-purpose processor, coupled to a storage system, at least one input device, and at least one output device to receive and transmit data and instructions.

[0107] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and / or device (e.g., magnetic disk, optical disk, memory, programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including machine-readable media that accept machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0108] To enable user interaction, the systems and techniques described herein may be implemented on a computer that has a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) that allows the user to provide input to the computer. Other types of devices may also be used to enable user interaction; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be accepted in any form, such as acoustic input, speech input, tactile input, etc.

[0109] The system may be implemented in a computer system having a middleware component (e.g., an application server), a front-end component (e.g., a client computer having a graphical user interface or web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such back-end, middleware, and front-end components. These components of the system may be connected to each other by any form or medium of digital data communication (e.g., a communication network). Communication networks include LANs (local area networks), WANs (wide area networks), the Internet, and the like.

[0110] A computer system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server exists by virtue of computer programs running on the respective computers and having a client-server relationship.

[0111] While several embodiments have been described, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.

[0112] Additionally, the illustrated logic flows do not necessarily require the particular order shown, or the sequence shown, to achieve desirable results. Additionally, other steps may be provided or eliminated from the described flows, and other components may be added or removed from the described systems. Accordingly, other embodiments are within the scope of the following claims.

Claims

1. A program comprising instructions that, when executed by at least one processor, cause a mobile computing device to: configured to receive at least a first file and a second file from a companion device; The first file is a first media content; a first trigger field associated with a first operation to be performed by the mobile computing device, the first operation not being associated with the second file, and the first file being further comprising a second trigger field associated with the second file; The instructions may cause the mobile computing device to: playing the first media content; receiving an input associated with the second trigger field; The program further configured to cause second media content to be played in response to receiving input associated with the second trigger field.

2. the third file further includes a third trigger field associated with the first file; The instructions may cause the mobile computing device to: receiving an input associated with the third trigger field; playing the first media content in response to receiving an input associated with the third trigger field; receiving an input associated with the first trigger field; The program of claim 1 , further configured to cause the first operation to be performed in response to receiving an input associated with the first trigger field.

3. The program of claim 2 , wherein the first operation includes turning off a display included in the mobile computing device.

4. the third file further includes a third trigger field associated with the second file; The instructions may cause the mobile computing device to: receiving an input associated with the third trigger field; playing the second media content in response to receiving an input associated with the third trigger field; receiving input associated with a fourth trigger field; The program of claim 1 , further configured to cause a second operation to be performed in response to receiving an input associated with the fourth trigger field.

5. The program of claim 4 , wherein the second operation includes turning off a display included in the mobile computing device.

6. The third file is and a third trigger field identifying a first input, the third trigger field being associated with a third operation of the mobile computing device, the third operation including moving third media content forward by at least one frame, the third file being:

6. The program of claim 1, further comprising a fourth trigger field identifying a second input, the fourth trigger field corresponding to a fourth operation of the mobile computing device, the fourth operation including moving the third media content in a reverse direction by at least one frame.

7. The instructions may cause the mobile computing device to: causing the companion device to request additional files; 7. The program of claim 1, further configured to play at least one of the first media content, the second media content, or a third media content based on not receiving a response to the request.

8. The instructions may cause the mobile computing device to: Determine that additional files are required, Based on your determination that additional files are required, causing the companion device to request additional files; The program of any one of claims 1 to 7, further configured to cause playback of at least one of the first media content, the second media content, or a third media content.

9. The instructions are further configured to cause the mobile computing device to generate a chain of media content, the chain of media content comprising: the first file includes the second trigger field; the second trigger field is associated with the second file; and and based on the second file containing the second media content, connecting the first media content to the second media content, the chain of media content further comprising: the second file includes a third trigger field; the third trigger field is associated with a third file; and based on the third file containing third media content, The program of any one of claims 1 to 8, further comprising connecting the second media content to the third media content.

10. The instructions are further configured to cause the mobile computing device to receive a third file; the third file includes third media content and a third trigger field; the third trigger field includes a time of day; The program of claim 1 , wherein the instructions are further configured to cause the mobile computing device to play the third media content at the time included in the third trigger field.

11. The instructions may cause the mobile computing device to: determining that the last media content has been played within a threshold time; The program of any one of claims 1 to 10, further configured to cause the companion device to request a file based on determining that the last media content played within the threshold time.

12. A program comprising instructions that, when executed by at least one processor, cause a companion device to: configured to cause at least a first file and a second file to be transmitted to a mobile computing device; The first file is a first media content; a first trigger field associated with a first operation to be performed by the mobile computing device, the first operation not being associated with the second file, and the first file being further comprising a second trigger field associated with the second file; The instructions may include for the companion device to: receiving from the mobile computing device an indication of active files on the mobile computing device; determining, based on the representation of the active file and files stored on the mobile computing device, that a last media content has been played on the mobile computing device within a threshold time; and, based on determining that the last media content is played on the mobile computing device within the threshold time, further configured to cause at least a third file to be transmitted to the mobile computing device, the third file including second media content.

13. The instructions may include for the companion device to: The instructions may further be configured to cause the companion device to generate a table, the table associating the second trigger field with an identifier of the second file and the third trigger field with an identifier of a third file, The program of claim 12 , further configured to cause the mobile computing device to transmit the table.

14. 1. A mobile computing device, comprising: at least one processor; and a non-transitory computer-readable storage medium having stored thereon instructions that, when executed by at least one processor, cause the mobile computing device to: configured to receive at least a first file and a second file from a companion device; The first file is a first media content; a first trigger field associated with a first operation to be performed by the mobile computing device, the first operation not being associated with the second file, and the first file being further comprising a second trigger field associated with the second file; The instructions may cause the mobile computing device to: playing the first media content; receiving an input associated with the second trigger field; The mobile computing device is further configured to cause second media content to be played in response to receiving input associated with the second trigger field.

15. The mobile computing device of claim 14 , wherein the mobile computing device comprises a smartwatch.

Citation Information

Patent Citations

  • Content providing method and system

    JP2019531019A