# Patent

## Title
Automatic camera selection

## Abstract

Various embodiments enable a video messaging experience which permits the exchange of short video messages in an asynchronous manner. The video messaging experience preserves the video intimacy and experience of synchronous-type video communications, while at the same time provides the convenience of SMS-type message exchange.

## Background
BACKGROUND
Voice over Internet Protocol (VoIP) communications continue to evolve and can provide a desirable and efficient way for parties to communicate with one another. In particular, VoIP calls that include a video element in which calling parties see one another can provide an intimate and desirable experience.
Yet, these types of communications continue to have barriers that affect the extent to which many users engage them. For example, consider the case where a video communication is desired using, for example, VoIP. Typically, in order to have such a video communication, contact details are exchanged between parties such that each party's contact details reside in one another's contact list. Further, both parties in a video communication are typically required to be on the line at same time. This can present problems particularly across varying time zones. In addition, video communications using VoIP generally require high-end computing devices with fairly high bandwidth network connections. Even if all of these challenges are met, there still may be problems in connecting video calls and sustaining the calls for any period of time.
SUMMARY
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
Various embodiments enable a video messaging experience which permits the exchange of short video messages in an asynchronous manner. The video messaging experience preserves the video intimacy and experience of synchronous-type video communications, while at the same time provides the convenience of SMS-type message exchange.
The video messaging experience is provided by a video messaging application which, in at least some embodiments, enables a short video message to be recorded and for a single action to be utilized to stop the recording and send the short video message to one or more intended recipients.
Various embodiments provide an ability to visually annotate, in a plurality of video message conversations, a respective status of each video message conversation in the plurality of video message conversations. In some cases, a video message conversation can be represented using a thumbnail video image. Some embodiments generate the thumbnail video image based, at least in part, on a most recently received video clip in the respective video message conversation.
Yet other embodiments enable a particular camera mode, either front camera mode or rear camera mode, to be automatically selected in accordance with a user's action.
Other embodiments enable portions of video message conversations to be played back in an interconnected fashion. Specifically, a filmstrip is provided as part of a user interface. The filmstrip includes a video representation, e.g. a thumbnail image, associated with each short video message in a video message conversation. Selection of a particular video representation were result in the video message conversation being played back, from that point, in a continuous fashion which includes the other short video messages that serially follow the selected video representation.



BRIEF DESCRIPTION OF THE DRAWINGS
The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
FIG. 1 is an illustration of an environment in an example implementation in accordance with one or more embodiments.
FIG. 2 is an illustration of a system in an example implementation showing FIG. 1 in greater detail.
FIG. 3 is an example implementation in accordance with one or more embodiments.
FIG. 4 is an example implementation in accordance with one or more embodiments.
FIG. 5 is a flow diagram that describes steps in a method in accordance with one or more embodiments.
FIG. 6 is an example implementation in accordance with one or more embodiments.
FIG. 7 is an example implementation in accordance with one or more embodiments.
FIG. 8 is an example implementation in accordance with one or more embodiments.
FIG. 9 is a flow diagram that describes steps in a method in accordance with one or more embodiments.
FIG. 10 is a flow diagram that describes steps in a method in accordance with one or more embodiments.
FIG. 11 is a flow diagram that describes steps in a method in accordance with one or more embodiments.
FIG. 12 illustrates an example computing device that can be utilized to implement various embodiments described herein.



DETAILED DESCRIPTION
Overview
Various embodiments enable a video messaging experience which permits the exchange of short video messages in an asynchronous manner. The short video message can have any suitable length. For example, in some embodiments, the short video messages can have lengths up to about 40 second. In yet other embodiments, the short video messages can range from between 10-20 second in length. The video messaging experience preserves the video intimacy and experience of synchronous-type video communications, while at the same time provides the convenience of SMS-type message exchange. So, for example, whenever a particular individual has an opportunity, they can record and send a short video message to another person. The other person can reply, at their convenience, with a similar short video message. This approach solves the problem of requiring the parties to be online at the same time because the short video messages can be queued up by a corresponding video messaging application and presented to the recipient when the recipient launches or returns to the video messaging application. This approach also mitigates the need for high-end devices and high bandwidth connections because the short video messages are, as the name implies, short and can be easily exchanged on lower-end devices in suitable, less complicated file formats or streaming formats.
The video messaging experience is provided by a video messaging application which, in at least some embodiments, enables a short video message to be recorded and for a single action to be utilized to stop the recording and send the short video message to one or more intended recipients.
Various embodiments provide an ability to visually annotate, in a plurality of video message conversations, a respective status of each video message conversation in the plurality of video message conversations. A video message conversation can be thought of as a collection of short video messages associated with a common conversation thread. Thus, a video message conversation is essentially a series of back-and-forth short video messages between recipients. In some cases, a video message conversation can be represented using a thumbnail video image. Some embodiments generate the thumbnail video image based, at least in part, on a most recently received video clip in the respective video message conversation.
Yet other embodiments enable a particular camera mode, either front camera mode or rear camera mode, to be automatically selected in accordance with a user's action. For example, if a user opens up a new message and provides an address, an assumption is made that the user intends to send a short video message that includes a video of himself or herself. Accordingly, the front-facing camera is automatically selected so that a video of the user can be taken while a verbal message is conveyed. If, on the other hand, the user chooses to enter a record mode before opening a new message, an assumption is made that the user intends to capture video associated with their environment. Accordingly, the rear-facing, is automatically selected for video capture.
Other embodiments enable portions of video message conversations to be played back in an interconnected fashion. Specifically, a filmstrip is provided as part of a user interface. The filmstrip includes a video representation, e.g. a thumbnail image, associated with each short video message in a video message conversation. Selection of a particular video representation were result in the video message conversation being played back, from that point, in a continuous fashion which includes the other short video messages that serially follow the selected video representation.
In the following discussion, an example environment is first described that is operable to employ the techniques described herein. Example illustrations of the various embodiments are then described, which may be employed in the example environment, as well as in other environments. Accordingly, the example environment is not limited to performing the described embodiments and the described embodiments are not limited to implementation in the example environment.
Example Operating Environment
FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ the techniques described in this document. The illustrated environment 100 includes an example of a computing device 102 that may be configured in a variety of ways. For example, the computing device 102 may be configured as a traditional computer (e.g., a desktop personal computer, laptop computer, and so on), a mobile station, an entertainment appliance, a set-top box communicatively coupled to a television, a wireless phone, a netbook, a game console, a handheld device, and so forth as further described in relation to FIG. 2. Thus, the computing device 102 may range from full resource devices with substantial memory and processor resources (e.g., personal computers, game consoles) to a low-resource device with limited memory and/or processing resources (e.g., traditional set-top boxes, hand-held game consoles). The computing device 102 also includes software that causes the computing device 102 to perform one or more operations as described below.
Computing device 102 also includes a web platform 104. The web platform works in connection with content of the web, e.g. public content such as web pages and the like. A web platform can include and make use of many different types of technologies such as, by way of example and not limitation, URLs, HTTP, REST, HTML, CSS, JavaScript, DOM, and the like. The web platform can also work with a variety of data formats such as XML, JSON, and the like. Web platforms can include web browsers, local applications, and the like.
Computing device 102 also includes a gesture module 105 that recognizes input pointer gestures that can be performed by one or more fingers, and causes operations or actions to be performed that correspond to the gestures. The gestures may be recognized by module 105 in a variety of different ways. For example, the gesture module 105 may be configured to recognize a touch input, such as a finger of a user's hand 106a as proximal to display device 108 of the computing device 102 using touchscreen functionality, or functionality that senses proximity of a user's finger that may not necessarily be physically touching the display device 108, e.g., using near field technology. Module 105 can be utilized to recognize single-finger gestures and bezel gestures, multiple-finger/same-hand gestures and bezel gestures, and/or multiple-finger/different-hand gestures and bezel gestures.
Computing device 102 also includes a video messaging application 106 that can be invoked to execute on the computing device. Computing device 102 also includes one or more of a front-facing camera 113 and a rear-facing camera 115. These cameras can be used in conjunction with the video messaging application 106 as described above and below.
The voice messaging application 106 provides a number of different features including, by way of example and not limitation, single action stop and send recording, annotating video thumbnail representations, automatic camera selection, playback of interconnected short video messages, preemptive processing, and other features that are described in more detail below.
The computing device 102 may also be configured to detect and differentiate between a touch input (e.g., provided by one or more fingers of the user's hand 106a) and a stylus input (e.g., provided by a stylus 116). The differentiation may be performed in a variety of ways, such as by detecting an amount of the display device 108 that is contacted by the finger of the user's hand 106a versus an amount of the display device 108 that is contacted by the stylus 116.
Thus, the gesture module 105 may support a variety of different gesture techniques through recognition and leverage of a division between stylus and touch inputs, as well as different types of touch inputs and non-touch inputs.
FIG. 2 illustrates an example system 200 that includes the computing device 102 as described with reference to FIG. 1. The example system 200 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. Services and applications run substantially similar in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on.
In the example system 200, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers. These computers can be connected to the multiple devices through a network, the Internet, or other data communication link. In one embodiment, this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
In various implementations, the computing device 102 may assume a variety of different configurations, such as for computer 202, mobile 204, and television 206 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus the computing device 102 may be configured according to one or more of the different device classes. For instance, the computing device 102 may be implemented as the computer 202 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on. Each of these different configurations may employ a web platform, e.g. a web browser, as described above and below.
The computing device 102 may also be implemented as the mobile 204 class of device that includes mobile devices, such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 102 may also be implemented as the television 206 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on. The techniques described herein may be supported by these various configurations of the computing device 102 and are not limited to the specific examples the techniques described herein.
The cloud 208 includes and/or is representative of a platform 210 for content services 212. The platform 210 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 208. The content services 212 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 102. Content services 212 can be provided as a service over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.
The platform 210 may abstract resources and functions to connect the computing device 102 with other computing devices. The platform 210 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the content services 212 that are implemented via the platform 210. Accordingly, in an interconnected device embodiment, implementation of functionality described herein may be distributed throughout the system 200. For example, the functionality may be implemented in part on the computing device 102 as well as via the platform 210 that abstracts the functionality of the cloud 208.
Such functionality can include a video messaging service and, in particular, a video messaging service some aspects of which can be implemented by video messaging application 106, and other aspects of which can be implemented by content services 212, as described above and below.
The video messaging services implemented by content services 212 can include, by way of example and not limitation, serving as a message exchange focal point between users who send and receive short video messages, providing a mechanism by which preprocessing can be performed, for example, preemptive uploading and preemptive downloading of short video messages, as well as other backend services typically provided by servers that support the exchange of messages such as SMS messages.
Generally, any of the functions described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “module,” “functionality,” and “logic” as used herein generally represent software, firmware, hardware, or a combination thereof. In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on or by a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices.
In the discussion that follows, various sections describe various example embodiments. A section entitled “Video Messaging Application—Getting Started” describes how users can initially interact with a video messaging application in accordance with one or more embodiments. Following this, a section entitled “Annotating Video Thumbnail Representations” describes how video thumbnail representations can be utilized to annotate video message conversations in accordance with one or more embodiments. Next, a section entitled “Playback of Interconnected Video Messages” describes various aspects of how short video messages can be played back for a user in accordance with one or more embodiments. Following this, a section entitled “Single Action Stop Recording and Send” describes how short video messages can be sent in accordance with one or more embodiments. Next, a section entitled “Automatic Camera Selection” describes how a front-facing camera or a rear-facing camera can be automatically selected in accordance with one or more embodiments. Following this, a section entitled “Preemptive Processing” describes how certain aspects of message processing can be preemptively performed in accordance with one or more embodiments. Next, a section entitled “Emoticons and Pre-canned Responses” described how users may respond to short video messages that are received, in accordance with one or more embodiments. Last, a section entitled “Example Device” describes aspects of an example device that can be utilized to implement one or more embodiments.
Having described example operating environments in which the inventive principles can be employed, consider now a discussion of various embodiments.
Video Messaging Application—Getting Started
In one or more embodiments, the video messaging application is designed to enable asynchronous video communication in a manner that is “lightweight” and, from a user's perspective, fast and easy to use. The application itself, in one or more embodiments, has two main screens, an example of which is provided below. A first of the screens visually lists the video message conversations in which the user is currently taking part. The second of the screens enables the user to select a particular video message conversation and have its contents displayed in the second screen, an example of which is provided below. In this manner, a simple user interface is provided which promotes ease of usability.
In one or more embodiments, the video messaging application is based on the use of phone numbers. For individuals who appear in a user's contact list, associated phone numbers may be resolved from names or contact information appearing in the user's contact list. This can permit a user to communicate with anyone in their phonebook or contact list, as well as people who may not appear in their phonebook or contact list. Thus, this solves one of the barriers associated with VoIP communication which requires the exchange of contact information between users through a user interface.
In one or more embodiments, when a user starts the video messaging application for the first time, a simple phone number-based challenge can be issued to ensure that the user is the actual owner of that phone number. This can take place in any suitable way including, for example, using well-accepted SMS code challenge techniques. Once completed, the video messaging application can be opened by the user and the user can be presented with a welcome video explaining the various application features and functionality. The user can then start a video message conversation by simply selecting a contact or providing a phone number of an individual with whom they wish to converse. The user can then record a short video message and have it sent to the recipient.
In cases where an intended recipient does not have the video messaging application installed on their device, an SMS message can be sent with a link that indicates that the sender of the message is using a video messaging application. The SMS message can indicate that the sender has recorded a short video message for the recipient and can indicate that by clicking on the link, they can effectively install the video messaging application. When the user clicks on the link, they can be navigated to an application store from which they can download the video messaging application. Once the application is downloaded, the recipient can then view the short video message and reply accordingly
Having considered how the video messaging application can be initially accessed by a user, consider now some user interface aspects associated with video message conversations.
Annotating Video Thumbnail Representations
As discussed above, a video message conversation allows participants in the video message conversation to exchange video clips and/or short video messages with one another. At times, a video message conversation additionally allows an exchange of text messages. A video message conversation can be as simple as an exchange of short video messages between two participants, or can be more complex and involve an exchange of short video messages between three or more participants. Thus, a video message conversation allows participants to send and receive multiple short video messages with one another. In some cases, a particular user can engage in multiple video message conversations with multiple different participants. Depending upon the responsiveness of the user, as well as how active each video message conversation is (e.g. whether short video messages are actively being exchanged or not), the multiple video message conversations can be in varying states from one another. In turn, this can make the management of multiple video messages conversations cumbersome to the user. For example, the user may have some video message conversations with unconsumed content or content that has not been viewed. Further, the user may have trouble remembering who is participating in the video message conversation, or may be unsure whether contact information of a participant has been stored for future access.
Various embodiments provide an ability to visually annotate one or more statuses associated with a video message conversation. For example, some embodiments can annotate whether a video message conversation has a status associated with unconsumed and/or unviewed short video messages. At times, a video message conversation can be represented using a thumbnail video image. A visual annotation can be associated with the thumbnail video image to convey one or more status of the video message conversation, such as by superimposing the annotation over the thumbnail video image. Alternately or additionally, the thumbnail video image can be generated based, at least in part, on a received short video message in the respective video message conversation, as further described below.
Consider FIG. 3, which illustrates an example implementation in accordance with one or more embodiments. FIG. 3 includes device 300, which can be any suitable type of device, such as computing device 102 of FIGS. 1 and 2. In this example, device 300 is illustrated as a mobile phone device, but it is to be appreciated that any suitable type of computing device can be utilized without departing from the scope of the claimed subject matter.
Among other things, device 300 includes an ability for a user to participate in video message conversations. For example, as discussed above, video messaging application and/or plug in with video message conversation capabilities can be installed on device 300. The video messaging application can subsequently either be automatically launched or selectively launched. As noted above, device 300 also includes one or more cameras and/or audio input devices, shown generally here together as input device 302 for the sake of brevity. While illustrated here as a combined input device, it is to be appreciated that device 300 can include separate cameras and audio input devices placed in any suitable position without departing from the scope of the claimed subject matter. In some embodiments, device 300 can include a first camera facing a user of device 300 (i.e. a front-facing camera) and a second camera facing out from the back of device 300 (i.e. a rear-facing camera). It is to be appreciated and understood that cameras other than front-facing and rear-facing cameras can be employed without departing from the spirit and scope of the claimed subject matter. For example, multiple cameras that face different directions can be used, e.g., front and side cameras, back and side cameras, different side cameras, more than two cameras facing different directions, and the like. How a user interacts with device 300 can, at times, influence which camera captures video and/or how the captured video is inserted into a video message conversation, as further described below. For instance, device 300 can include selectable controls, such as viewfinder 304, that a user can interact with to trigger video capture and/or camera selection.
In this example, device 300 displays separate representations of six video message conversations that are associated with a particular user. While display 300 is illustrated as displaying six video message conversation representations, it is to be appreciated that this number is merely for discussion purposes, and that any suitable number of video messages can be displayed. In some embodiments, a user can scroll and/or move the currently displayed representations to access and/or view additional video message conversations. For example, when device 300 includes touch screen input capabilities, a user can input a touch gesture associated with scrolling and/or moving images. Alternately or additionally, the user can input similar scroll commands via any type of input mechanism, such as a keyboard, a mouse, soft keys, and so forth. It is to additionally be appreciated that a video message conversation can be represented in any suitable manner, such as by an icon, an emoticon, a still image, and/or a thumbnail video image. A thumbnail video image can include animation, video, and/or snapshots of images associated with the video message conversation, as further described below.
In some embodiments, representations of video message conversations can be separately annotated to convey respective status(es) of the associated video message conversation. To begin with, different types of representations can be used for the different video message conversations to convey different statuses. Here, the displayed representations for video message conversations include representations 306, 307, 308, 309, 310, and 311. In this example, representations 306 and 308 are still images, while representation 310 is a thumbnail video image. Among other things, this difference and/or annotation can be used to visually convey to the user that the video message conversation associated with representation 310 has unviewed content, while all content contained in the video message conversations associated with representations 306 and 310 has been viewed and/or consumed. However, as described above, any suitable representation can be used without departing from the scope of the claimed subject matter.
Additionally in this example, representations 306, 308, and 310 are superimposed with annotations 312, 314, and 316 respectively. In this example, the annotations are illustrated as text strings with different display properties from one another. For example, annotation 312 includes the string “Joe and Stacie” using white text, while annotation 314 includes the string “Iron Man Bob” using black text. As in the case above, these visual differences can be used to convey that the status of the video message conversation associated with representation 306 is different than the status of the video message conversation associated with representation 308. For example, the black text of status annotation 314 can also be used to convey that the video message conversation associated with “Iron Man Bob” has unviewed and/or unconsumed content. Further, the text term “Iron Man Bob” can convey a name assigned to the video message conversation and/or simply a participant who has sent a short video message in the video message conversation. Similarly, the white text of annotation 112M can be used to convey that all of the short video message and/or content associated with the corresponding video message conversation have been viewed and/or consumed.
Continuing on, annotation 316 includes the string “1-555-555-5555” using white text. Here, the numerical number and/or phone number that is displayed can be used to indicate that contact information associated with the participant who sent the video clip is not currently stored in an address book and/or contact information of the receiving user. Thus, visual annotations can be utilized to convey any suitable type of status information associated with a video message conversation, such as a new video message conversation has been received, a video message conversation is expiring, a video message conversation has new and/or unviewed video clip content, contact information has not been stored, a mood associated with the sending user (e.g. an emoticon), and so forth. Further, annotations can be displayed using any suitable type of content, such as an emoticon, text and its associated properties (e.g. bold, italic, color, etc.), icons, and so forth. Alternately or additionally, video messages conversations with unconsumed and/or unviewed content can playback thumbnail video images or a different animation to indicate the status of unconsumed content, while video message conversations whose content has been completely viewed simply display a still image.
In addition to annotating a representation of a video message conversation, some embodiments can use positioning of the representations to convey status information. For example, the order in which the representations are placed can indicate which video message conversations have older content and/or newer content. Alternately or additionally, the order in which the representations are placed can indicate which video message conversations have been viewed more recently. Here, representation 306 is illustrated as being in the upper left hand corner, followed by representation 310 to its immediate right. Among other things, this placement can indicate that the video message conversation associated with representation 310 includes newer content and/or more recently viewed content than the video message conversation associated with representation 306. Visually, this ordering follows a similar structure to a paragraph, where the starting point is at the top left hand corner of a paragraph, and words are read from left to right, until the bottom of the paragraph is reached. Using this structure, the placement of representation 308 indicates that the associated video message conversation has either newer content and/or and content viewed more recently than the video message conversations associated with representations 306 and 310. Thus, status information can additionally be conveyed through placement in/ordering of the representations.
Some embodiments use a thumbnail video image as a representation for a video message conference. At times, the thumbnail video image can be based upon a video clip composed of multiple frames from the short video message or video message conversation.
Consider FIG. 4, which illustrates an implementation that is in accordance with one or more embodiments. Here, video clip 400 generally represents a portion of video from a short video message received by a participant in a video message conversation. It is to be appreciated that video clip 400 can be composed from any suitable collection of frames in the video message conversation, such as the most recently received frames, the first frames received, frames associated with a particular user in the video message conversation, and so forth. When playing back the video clip, the series of frames are played in rapid succession, thus generating a video which captures potential changes in movement and/or content over time. A thumbnail video image can be generated from gathering a subset of the frames effective to create a shorter version of the received video clip. Any suitable algorithm and/or image selection process can be utilized. Here, thumbnail video image 402 is simply generated from video clip 400 by extracting every other still frame from the source video clip (e.g. video clip 400). However, it is to be appreciated that this simple selection metric is merely for discussion purposes. Other suitable selection metrics can be utilized to generate the thumbnail video, such as selecting frames for a predetermined amount of time from the beginning of the source video clip, selecting frames for a predetermined amount of time from the end of the source video clip, selecting frames based upon a fixed time interval, selecting a predetermined number of frames at equal intervals regardless of a short video message length (i.e. selecting 5 frames equally spaced), selecting frames based upon identifying content of interest, and so forth. For example, a face recognition algorithm could be used to analyze the source video clip to determine when a video has captured a facial image. When a facial image is determined, associated frames (and surrounding frames) could be extracted and/or copied effective to generate a thumbnail video image. Thus, detection algorithms can be used to ensure that the thumbnail video image contains content of interest to the recipient, such as a friend's face, rather than an empty room.
Once a thumbnail video image has been generated, it can be used to represent a video message conversation, such as representation 310 of FIG. 3. When displaying these representations, some embodiments automatically playback the collection of images contained within the thumbnail video image. This automatic playback can be configured in any suitable manner, such as a repeat loop, where the playback continues repeatedly from the start of the thumbnail video image to the end for an undetermined number of repeats, for a set number of repeats, and/or for a single playback. Alternately or additionally, the thumbnail video image can be configured to play based upon the user activating an associated playback control for the thumbnail video image.
FIG. 5 is a flow diagram that describes steps in a method in accordance with one or more embodiments. The method can be implemented in connection with any suitable hardware, software, firmware or combination thereof. In at least some embodiments, aspects of the method can be implemented by a suitably configured voice messaging application, such as voice messaging application 106 (FIG. 1).
Step 500 creates at least one video message conversation associated with a user. In some embodiments, creating a video message conversation involves the user receiving a notification, data, and/or a message initiated by at least a second user in the video message conversation effective to create a new video message conversation with the user as a participant. This can be as simple as receiving an initiation message, or as complex as being invited to join a conversation and going through subsequent authentication procedures to validate the user as a participant in the video message conversation. In other embodiments the user, by way of the voice messaging application, can create the video message conversation by initiating and sending data, such as a short video message, to other users to create a new video conversation message on their associated devices. As described above, the video message conversation can be as simple as an exchange of short video messages between two participants, or more complex and involve an exchange of short video messages between three or more participants. Alternately or additionally, a user can be a participant in multiple video message conversations.
Step 502 receives at least one short video message from another participant in a video message conversation. The short video message can be of any suitable data size and/or playback length in time. In some cases, short video messages can be received from multiple participants.
Responsive to receiving the short video message, step 504 generates a representation of the video message conversation. In some cases, a respective representation is generated for each video message conversation associated with the user. As discussed above, generating a representation can include generating a thumbnail video image based on a received short video message and/or generating a still image. In some embodiments, generation of the representation can be based on a user changing screens in an application, as further described below. For example, the voice messaging application can, among other things, facilitate creating, deleting, and viewing multiple video message conversations associated with a user. The user may desire to switch screens in the voice messaging application from a screen associated with a particular video message conversation to a screen associated with a summary of active and/or idle video message conversations associated with the user. Switching to the summary screen can, in some cases, trigger generation of the representation. In other cases, the representation is automatically generated in anticipation of switching to the summary screen at a future time.
Step 506 displays the representation of the video message conversation. Any suitable representation can be utilized, examples of which are provided above. In some cases, multiple representations of respective video message conversations can be displayed in a summary view, as further described below. Responsive to displaying the representation of the video message conversation, step 508 visually annotates the representation of the video message conversation based upon at least one status associated with the video message conversation. The annotation can be configured to convey one status or multiple statuses. In some case, multiple annotations can be used, such as a text string being displayed in parallel with an icon and/or emoticon. Thus, not only can a user be a participant in multiple video message conversations, but representations of each associated video message conversation can be displayed and annotated to convey status information of each respective conversation.
Having described various embodiments of annotating representations of video message conversations, consider now playback of associated short video messages in a video message conversation that is in accordance with one or more embodiments.
Playback of Interconnected Video Messages
As discussed above, a video message conversation can include multiple short video messages and/or video clips. As a user enters into a video message conversation, they may desire to view part and/or all of the associated videos in a seamless manner (i.e. contiguous viewing without user intervention). Various embodiments provide an ability for a user to seamlessly playback multiple short video messages exchanged in a video message conversation. For example, some embodiments enable a user to configure a video message application to play a single short video message in a video message conversation, or to contiguously (i.e. seamlessly) playback at least part of the associated short video messages. The contiguous playback enables multiple short video messages to be played together, without requiring user intervention to select and play each individual one separately. For example, when the video message application is configured in a contiguous playback mode, a first short video message of the video message conversation can be selected for playback. Upon the conclusion of the selected short video message being played, a second short video message of the same video message conversation can be automatically started for playback, and so on. In addition, the video message conversation can include, in addition to short video messages, video clips that may not necessarily be recorded by a participant. These video clips can include, by way of example and not limitation, pre-canned video clips as described below.
Consider now FIG. 6, which illustrates an example computing device in accordance with one or more embodiments. Here, the computing device is illustrated at two different points in time, each designated 600a and 600b, respectively. Point in time 600a illustrates a first screenshot, and point in time 600b illustrates a second screenshot. The first screenshot is illustrated as displaying a summary view of video message conversations associated with a particular user. In some embodiments, when a user wants to enter into a particular video message conversation (i.e. view content associated with that particular video message conversation), they can begin the process by selecting which video message conversation they wish to view. While reviewing this summary, the user may notice that the video message conversation associated with representation 602 (entitled “Emma”) has unviewed and/or unconsumed content, and may wish to view its associated content. Utilizing touch screen capabilities, the user touches the screen over representation 602 as illustrated. Upon receiving this input, the associated voice messaging application switches what is displayed on the screen to display information particular to the video message conversation associated with representation 602, as shown in the second screenshot. While this example is described in the context of inputting commands via a touch screen interface, it is to be appreciated and understood that any suitable type of input mechanism can be utilized without departing from the scope of the claimed subject matter.
FIG. 7 illustrates a more detailed view of the second screenshot. There, summary information associated with a particular video message conversation is displayed. In this video message conversation summary view, the current short video message to be played is located in a prominent position (e.g. a position that is more viewable and/or visible than other locations). Here, representation 602 is located near the top of the device and is larger than it was in the first screenshot. Alternately or additionally, this location can be configured to display the actual short video message associated with representation 602 in a paused, unstarted/stopped state, or simply as a still frame extracted from the short video message.
In some embodiments, representation 602 can include annotation 700 to indicate status information associated with the short video message as further described above. Alternately or additionally, annotation 700 can be configured as a selectable control. For instance, the left pointing arrow in annotation 700 can be selected to navigate to a previous screen (such as the first screenshot).
Beneath representation 602 appears a so-called filmstrip 702. The filmstrip includes at least a partial summary of additional content included in the video message conversation. In some cases, the filmstrip displays representations of associated short video messages that make up the particular video message conversation. Alternately or additionally, these representations can include annotations to indicate associated status information. Status information can additionally be indicated by using the ordering of how the representations in filmstrip 702 are displayed, such as which short video messages have been viewed in the video message conversation, the order in which short video messages were received, and so forth. To aid in viewing this content, some embodiments configure filmstrip 702 as a navigable filmstrip (e.g. with scrolling capabilities) in order to see what short video messages are included in the video message conversation. Each representation can be selected to enable contiguous playback of the selected short video message and those that follow from that point forward. Any suitable input can be used to initiate these actions, examples of which are provided above and below.
In addition to displaying summary information associated with a particular video message conversation, the illustrated screenshot can additionally include selectable controls that enable the user to interact with the video message conversation and/or the video message application. In the illustrated example, controls 704, 706, 708, and 710 are displayed as part of the video message conversation summary display. It is to be appreciated that the inclusion of these particular controls are merely for discussion purposes, and that any combination of controls with varying functionality can be included without departing from the scope of the claimed subject matter.
Control 704 can be configured to start playback of one or more short video messages in the video message conversation. In some embodiments, selection of control 704 can initiate contiguous playback of multiple short video messages in the associated video message conversation. Control 706 can be utilized to initiate a video recording session to generate a short video message for insertion in the associated video message conversation. Controls 708 and 710 can be used to access further functionality associated with the video messaging application, such as creating a new video message conversation, adding a new participant to the active video message conversation, configuring default settings and/or user settings of the video messaging application, and so forth.
To further illustrate, consider FIG. 8 which illustrates the computing device in a contiguous playback mode. The contiguous playback mode can either be a default configuration of the video message application, or a user-selected configuration. When a user selects control 704, playback of the short video message associated with representation 602 is initiated. As part of the playback process, control 704 can be removed from the display for unobscured viewing. Based upon each representation's location in filmstrip 702, a user may observe that the short video message associated with representation 800 is the first short video message received after the short video message associated with representation 602, followed by the short video message associated with representation 802a. Thus, upon completion of the currently playing short video message (i.e. the short video message associated with representation 602), some embodiments automatically play the short video message associated with representation 800. This is indicated by screenshot 100 HMc. Here, the short video message 804 assumes the primary viewing position in the topmost location with the biggest dedicated viewing area, and its playback is automatically started. Additionally, representation 802a is moved in filmstrip 702 into the position previously occupied by representation 800. This movement can be used to indicate that the associated short video message of representation 802 is next in the list to be played automatically. If another short video message has been received after the short video message associated with representation 802, its representation would visually move as well, indicated here by the appearance of representation 806.
In some embodiments, filmstrip 702 can be navigated to select a starting short video message. For example, in some cases, filmstrip 702 can be navigated to a starting point to identify the first short video message received time (regardless of whether there is unviewed content), to an ending point that identifies the last short video message received in time, or any point in between. Thus, a user can navigate to any short video message and begin seamless, contiguous playback of multiple short video messages from that point forward. In some cases, the playback of short video messages can be configured to only automatically playback certain short video messages. For example, in some embodiments, only short video messages with a status of being unviewed are automatically played back in a contiguous manner, or only short video messages associated with a particular sender are automatically played back in a contiguous manner. In other embodiments, all short video messages associated with the video message conversation can be contiguously played back. These can be played in any determined order, such as having unviewed short video messages being played back first, and then continuously playing back viewed short video messages after completing playback of the unviewed short video messages.
FIG. 9 is a flow diagram that describes steps in a method in accordance with one or more embodiments. The method can be implemented in connection with any suitable hardware, software, firmware or combination thereof. In at least some embodiments, aspects of the method can be implemented by a suitably configured voice messaging application, such as voice messaging application 106 (FIG. 1).
Step 900 receives selection of a first short video message associated with a video message conversation. The video message conversation can include multiple short video messages, as described above. Further, selection of the first short video message can occur in any suitable manner. In some embodiments, the first short video message can be automatically selected by the video message application upon entering and/or viewing the associated video message conversation. The first short video message for playback can also be selected based on any other suitable type of criteria and/or status. For example, in some embodiments the video message application can automatically select a short video message that has not yet been viewed. Alternately or additionally, the video message application can select the short video message based on when it was received. In other embodiments, the first short video message can be manually selected by a user.
Responsive to selection of the first short video message, however it may occur, step 902 initiates playback of the first short video message. In some embodiments, playback can be manually initiated by the user, such as through selection of a control. In other embodiments, playback of the first short video message can occur automatically and without user intervention.
Step 904 automatically plays back at least a second short video message associated with the video message conversation without user intervention. In some cases, the second short video message can be selected based upon when it was received in time relative to the first short video message. Alternately or additionally, a second short video message can be based on criteria and/or status information. For example, in some embodiments, selection of which short video messages to automatically play back can be based on the criteria to only automatically play back short video messages from a particular participant in the video message conversation. In other embodiments, selection of which short video messages to play can be based on a combination of criteria and status information, such as only automatically playing back short video messages from a particular participant that have not already been consumed and/or viewed.
Having considered aspects of playback of interconnected video messages, consider now a discussion of how a single action can be used to stop recording of a short video message and send the message to a recipient.
Single Action Stop Recording and Send
In one or more embodiments, the video messaging application enables a short video message to be recorded and for a single action to be utilized to stop the recording and send the short video message to one or more intended recipients. As an example, consider the following.
Assume, for example, the user has indicated an intent to send a short video message by opening a short video message shell and providing one or more addresses (i.e. phone numbers) in the shell. This can be done in any suitable way. For example, the user may simply select a contact and a short video message shell can be automatically opened. Alternately or additionally, the user may select a control that causes a short video message shell to be opened. The user can then populate the shell with one or more addresses of intended recipients. Alternately or additionally, the user may select a reply option to reply to a previously-received short video message. Once the short video message shell has had an address populated into it by whatever means, the user can select a record option to record their short video message. This step can be performed in any suitable way.
For example, in at least some embodiments, the record option can be selected by way of a hard control, such as a depressible button, on the associated computing device. The user can depress the hard control to initiate video capture. Once the user has terminated the short video message, by releasing the hard control, the short video message can be automatically sent to the specified recipient or recipients.
Alternately or additionally, in at least some embodiments the record option can be selected by way of a soft control, such as a displayed video record button. In these embodiments by tapping the video record button, the user can initiate video capture and begin to record their short video message. When the short video message has been completed, the user can simply tap again on the display, e.g., on the button, and the short video message can be automatically sent to the specified recipient or recipients. Further, the notion of “sending” the message can relate to allowing the message or portions thereof to be delivered, e.g., streamed, while the message is being recorded. In this case, portions of the short video message may be transmitted from the phone prior to the user deciding that they wish to have the message delivered as by, for example, terminating capture of the short video message. Still further, in at least some embodiments a “cancel” option can be provided. In this case, the user may choose to cancel the short video message rather than stopping and sending the message. This can be helpful in situations where a user may change their mind and, in this sense, may be advantageous over scenarios where a message is streamed before a user terminates recording the message.
FIG. 10 is a flow diagram that describes steps in a method in accordance with one or more embodiments. The method can be implemented in connection with any suitable hardware, software, firmware, or combination thereof. In at least some embodiments, aspects of the method can be implemented by a suitably-configured video messaging application.
Step 1000 receives a user input associated with preparing a short video message. This input can be received in any suitable way. For example, this input can be received and can be sufficient to cause a short video message shell to be populated with one or more addresses (i.e. phone numbers) of intended recipients of the short video message. Examples of how this can be done are provided above. Step 1002 receives input to initiate recording a short video message. This step can be performed in any suitable way. For example, this step can be performed by receiving input by way of a hard or soft control, as mentioned above.
Step 1004 receives input to terminate recording the short video message. In embodiments that utilize a hard control, this step can be performed by receiving an input that the hard control has been pressed or depressed in some manner. For example, the hard control may reside in the form of a toggle switch. By initially pressing the toggle switch, the video capture mode can be initiated. Subsequently, by pressing the toggle switch again, the video capture mode can be terminated. Alternately, the hard control may reside in the form of a button that is pressed down to record and released or depressed to terminate recording. In embodiments that utilize a soft control, the soft control may be initially tapped to initiate recording of the short video message. Subsequently, the soft control may again be tapped to terminate recording of the short video message.
Responsive to receiving the input, whether by way of hard or soft control, step 1006 terminates recording of the short video message and automatically sends the message to the recipients who were previously specified to receive the message. In this manner, a single user action is used to terminate recording the short video message and send the message to the intended recipients.
Having considered single action stop recording and send embodiments, consider now a discussion of how a camera can be automatically selected in accordance with one or more embodiments.
Automatic Camera Selection
In one or more embodiments, a particular camera mode, either front camera mode or rear camera mode, can be automatically selected in accordance with a user's action. For example, if a user opens up a new message and provides an address or otherwise indicates an intent to send a message, an assumption is made that the user intends to send a short video message that includes a video of himself or herself. Accordingly, the front-facing camera is automatically selected so that a video of the user can be taken while a verbal message is conveyed. If, on the other hand, the user chooses to enter a record mode before opening a new message, an assumption is made that the user intends to capture video associated with their environment. Accordingly, the rear-facing, is automatically selected for video capture.
Thus, in these embodiments, the video messaging application makes an assumption of the user's intent based upon a user action. Once the video messaging application makes its assumption, it automatically selects a camera mode to be used to make a short video message. So, for example, if a user selects a particular contact to which a message is to be sent, as by tapping on the contact, the video messaging application can make assumption that the user intends to send a short video message. Based upon this assumption, the video messaging application can automatically select the front-facing camera. Other user actions can result in the automatic selection of the front-facing camera. For example, instead of selecting a particular contact to which to send the message, the user may simply open up a new message shell and may or may not provide an address. In this instance, by selecting a new message shell, the video messaging application assumes that the user's intent is to send a short video message. As such, the front-facing camera can be selected automatically. Alternately or additionally, other user actions such as responding to a conversation that already exists can result in the video messaging application automatically selecting the front-facing camera.
As an example, consider FIG. 3. There, if the user selects one of the icons at the lower right thus indicating an intent to create a new message, the front-facing camera can be automatically selected based on the assumption that the user wishes to send a short video message. On the other hand, assume the user selects viewfinder 304 because they wish to record something in front of them, the rear-facing camera can be automatically selected based on the assumption that the user does not wish to record themselves.
FIG. 11 is a flow diagram that describes steps in a method in accordance with one or more embodiments. The method can be implemented in connection with any suitable hardware, software, firmware, or combination thereof. In at least some embodiments, aspects of the method can be implemented by a suitably-configured video messaging application.
Step 1100 receives a user input. This step can be performed by a suitably-configured computing device having a video messaging application installed thereon. Step 1102 ascertains whether the input is associated with sending a short video message. This step can be performed in any suitable way. For example, input associated with sending a short video message can include, by way of example and not limitation, receiving the user input via a selectable control which enables a new video message shell to be instantiated. Alternately or additionally, the input can include selection of one or more contacts to which a new video messages to be sent. Alternately or additionally, the input can include receiving an input associated with responding to a previously-received short video message. Alternately or additionally, the input can include receiving one or more addresses into a short video message shell.
Responsive to receiving an input associated with sending a short video message, step 1104 automatically selects a front-facing camera of the computing device and step 1106 enables preparation of a short video message. In this particular flow diagram path, this step can be performed by receiving a selection of a record button or control and recording the short video message. Step 1108 sends the short video message to one or more intended recipients.
If, on the other hand, step 1102 ascertains that the input is not associated with sending a short video message, step 1110 automatically selects a different camera, e.g., a rear-facing camera and step 1112 captures video with the rear-facing camera. Capture of the video can be performed responsive to receiving a user input by way of a record button or control. Step 1106 enables preparation of a short video message. This can include, in this particular flow diagram path, enabling the user to incorporate the video captured from the rear-facing camera into a short video message shell along with enabling the user to enter one or more addresses into the short video message shell. Step 1108 sends the short video message to one or more intended recipients.
Having considered automatic camera selection in accordance with one or more embodiments, consider now a discussion of preemptive processing.
Preemptive Processing
In various embodiments, preemptive processing can be utilized to increase the communication speed and reduce the perceived latency by the user. The illustrated and described embodiments, preemptive processing can take place in the form of preemptive uploads and preemptive downloads, each of which is discussed below under its own sub-heading.
Preemptive Upload
In at least some embodiments, content of a short video message can be uploaded to a particular server while the user is still completing the short video message. In this manner, the communication speed of the message can be increased. As an example, consider a situation in which the user is creating a short video message but has not yet indicated the recipient of the message. As soon as the user starts recording the message the content can begin to be reactively uploaded to the server even while the user has not indicated an intended recipient. Once the user indicates the recipient or recipients of the short video message, the recipients' addresses (e.g., phone numbers) can be provided to the server and the short video message can be delivered to the intended recipients.
Preemptive uploading can also work in a situation where the user has provided an address of an intended recipient and begins to compose the short video message. Similar to the approach described above, as soon as the user begins to compose the short video message, message content and the intended recipient addresses can be uploaded to the server while the user is composing the message. Upon completion of the message, the message can then be delivered to the intended recipients.
Preemptive Download
Preemptive processing can also include preemptively downloading portions of short video messages. Preemptive downloading can help to mitigate buffer delays and jitter during message playback. As an example consider the following. Assume that Max composes a short video message to Grace. When Max sends the short video message to Grace, the message can be downloaded on Grace's device before Grace is notified that there is a message waiting. In this manner, if she attempts to play the message back, the entire message file is on her device so that there will be no interruption to play back. This is the case even if Grace loses network connectivity.
At least some embodiments, preemptive upload and preemptive download can work in concert with one another to create an efficient message distribution pipeline. Specifically, while the user composes particular message to an intended recipient, during composition message content can be preemptively uploaded to the server and preemptively downloaded to the intended recipient. Upon completion of the message composition, the remainder of the message can be preemptively downloaded and a notification can then be generated to the recipient that they have a new message in the message queue.
Having considered preemptive processing in accordance with one or more embodiments, consider now a discussion of various features which can enhance the user experience.
Emoticons and Pre-Canned Responses
In many instances, a recipient of a short video message may not be in a position or location where they can record a video response. Yet, they may wish to confirm to the sender that the short video message was received, e.g., “I got your message.” In a video messaging application that is primarily video-based, pre-recorded responses can be utilized to provide a notification to the sender that a short video message was received. The pre-recorded responses can take any suitable form. For example, pre-recorded responses can utilize various emoticons that can be selected by the user or even customized by the user. For example, the user may select from a variety of preconfigured emoticons that provide a notification to the sender that the message was received. Alternately or additionally, users may be able to customize an emoticon in any suitable way. For example, the user may select a generic emoticon and then select features to make the emoticon look like an animated version of themselves. The notification may take any suitable form such as, for example, a 5-10 second animation that represents a common response to message such as “I'm busy, can't talk” or “Got your message, I really liked it.”
Alternately or additionally, the user might create their own recorded pre-canned video response that they may select and send to the sender of the short video passage. Such a video response would typically feature the user replying in some manner to the sender, e.g., “Hi, I received your message and it is important to me. However, I'm unable to send a reply at the present time. As soon as I am able, I will reply to your message. Cheers!”
In yet other embodiments, the user may be able to select a movie clip or a television show clip from a library of clips to use as their pre-canned response. For example, a user may select a movie clip of Robert De Niro in the movie Taxi Driver in which the actor looks into the mirror and asks “You talking to me?” Similarly, from the movie E.T. the Extraterrestrial, the user may select the clip in which E.T. says “E.T. phone home.”
From a business model standpoint, these clips may be licensed to users who would pay a small fee to be able to use the clips as their pre-canned response.
Having considered various embodiments, consider now a discussion of example device that can be utilized to implement the embodiments described above.
Example Device
FIG. 12 illustrates various components of an example device 700 that can be implemented as any type of portable and/or computer device as described with reference to FIGS. 1 and 2 to implement embodiments of the video messaging application described herein. Device 1200 includes communication devices 1202 that enable wired and/or wireless communication of device data 1204 (e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data 1204 or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on device 1200 can include any type of audio, video, and/or image data. Device 1200 includes one or more data inputs 1206 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television media content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source.
Device 1200 also includes communication interfaces 1208 that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 1208 provide a connection and/or communication links between device 1200 and a communication network by which other electronic, computing, and communication devices communicate data with device 1200.
Device 1200 includes one or more processors 1210 (e.g., any of microprocessors, controllers, and the like) which process various computer-executable or readable instructions to control the operation of device 1200 and to implement the embodiments described above. Alternatively or in addition, device 1200 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 1212. Although not shown, device 1200 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
Device 1200 also includes computer-readable media 1214, such as one or more memory components, examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like. Device 1200 can also include a mass storage media device 1216.
Computer-readable media 1214 provides data storage mechanisms to store the device data 1204, as well as various device applications 1218 and any other types of information and/or data related to operational aspects of device 1200. For example, an operating system 1220 can be maintained as a computer application with the computer-readable media 1214 and executed on processors 1210. The device applications 1218 can include a device manager (e.g., a control application, software application, signal processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, etc.), as well as other applications that can include, web browsers, image processing applications, communication applications such as instant messaging applications, word processing applications and a variety of other different applications. The device applications 1218 also include any system components or modules to implement embodiments of the techniques described herein. In this example, the device applications 1218 include an interface application 1222 and a gesture-capture driver 1224 that are shown as software modules and/or computer applications. The gesture-capture driver 1224 is representative of software that is used to provide an interface with a device configured to capture a gesture, such as a touchscreen, track pad, camera, and so on. Alternatively or in addition, the interface application 1222 and the gesture-capture driver 1224 can be implemented as hardware, software, firmware, or any combination thereof. In addition, computer readable media 1214 can include a web platform 1225a, a gesture module 1225b, and a video messaging application 1225c that functions as described above.
Device 1200 also includes an audio and/or video input-output system 1226 that provides audio data to an audio system 1228 and/or provides video data to a display system 1230. The audio system 1228 and/or the display system 1230 can include any devices that process, display, and/or otherwise render audio, video, and image data. Video signals and audio signals can be communicated from device 1200 to an audio device and/or to a display device via an RF (radio frequency) link, S-video link, composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In an embodiment, the audio system 1228 and/or the display system 1230 are implemented as external components to device 1200. Alternatively, the audio system 1228 and/or the display system 1230 are implemented as integrated components of example device 1200.
CONCLUSION
Various embodiments enable a video messaging experience which permits the exchange of short video messages in an asynchronous manner. The video messaging experience preserves the video intimacy and experience of synchronous-type video communications, while at the same time provides the convenience of SMS-type message exchange.
The video messaging experience is provided by a video messaging application which, in at least some embodiments, enables a short video message to be recorded and for a single action to be utilized to stop the recording and send the short video message to one or more intended recipients.
Various embodiments provide an ability to visually annotate, in a plurality of video message conversations, a respective status of each video message conversation in the plurality of video message conversations. In some cases, a video message conversation can be represented using a thumbnail video image. Some embodiments generate the thumbnail video image based, at least in part, on a most recently received video clip in the respective video message conversation.
Yet other embodiments enable a particular camera mode, either front camera mode or rear camera mode, to be automatically selected in accordance with a user's action.
Other embodiments enable portions of video message conversations to be played back in an interconnected fashion. Specifically, a filmstrip is provided as part of a user interface. The filmstrip includes a video representation, e.g. a thumbnail image, associated with each short video message in a video message conversation. Selection of a particular video representation were result in the video message conversation being played back, from that point, in a continuous fashion which includes the other short video messages that serially follow the selected video representation.
Although the embodiments have been described in language specific to structural features and/or methodological acts, it is to be understood that the embodiments defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed embodiments.

## Claims

1. A computer-implemented method comprising:
receiving, by a video messaging application implemented at a computing device, a user input;
determining that the user input is associated with sending the short video message if the user input comprises opening a new message;
responsive to determining that the user input is associated with sending the short video message, automatically selecting a front-facing camera of the computing device effective to capture video for the short video message using the front-facing camera, and sending the short video message in an asynchronous manner to one or more recipients;
determining that the user input is not associated with sending the short video message if the user input is to enter a record mode before opening the new message; and
responsive to determining that the user input is not associated with sending the short video message, automatically selecting a rear-facing camera of the computing device effective to capture video using the rear-facing camera.

2. The computer-implemented method of claim 1, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises a selection of a selectable control to start the video message.

3. The computer-implemented method of claim 1, wherein said determining that the user input is associated with sending the short video message further comprises determining that the user input comprises a selection of one or more contacts to which the short video message can be sent.

4. The computer-implemented method of claim 1, wherein said determining that the user input is associated with sending the short video message further comprises determining that the user input is associated with responding to a previously-received short video message.

5. The computer-implemented method of claim 1, wherein said determining that the user input is associated with sending the short video message further comprises determining that the user input comprises a selection of a reply option to reply to a previously-received short video message.

6. The computer-implemented method of claim 1, wherein said determining that the user input is associated with sending the short video message further comprises determining that the user input comprises receiving one or more addresses into a short video message shell.

7. The computer-implemented method of claim 1, wherein the sending the short video message further comprises preemptive preemptively uploading of portions of the short video message to a server.

8. One or more computer readable storage memories storing computer readable instructions which, when executed, perform operations comprising:
receiving, with a computing device, a user input;
responsive to ascertaining that the user input indicates intent to send a video message, automatically selecting a front-facing camera of the computing device effective to capture video for the video message using the front-facing camera; and
responsive to ascertaining that the user input is to enter a video record mode, automatically selecting a rear-facing camera effective to capture video in the record mode without sending the video message.

9. The one or more computer readable storage media of claim 8, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises a selection of a selectable control to start the video message.

10. The one or more computer readable storage media of claim 8, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises a selection of one or more contacts to which a video message can be sent.

11. The one or more computer readable storage media of claim 8, wherein said ascertaining whether the user input is associated with sending a short video message is performed by ascertaining whether the user input is associated with responding to a previously-received short video message.

12. The one or more computer readable storage media of claim 8, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises receiving one or more addresses into a video message shell.

13. The one or more computer readable storage media of claim 8 further comprising enabling sending of the video message to one or more intended recipients, wherein said enabling sending comprises enabling preemptive uploading of portions of the video message to a server.

14. A computing device comprising:
one or more processors;
one or more computer readable storage media;
instructions embodied on the one or more computer readable storage media which, when executed, perform operations comprising:
receiving a user input;
responsive to ascertaining that the user input indicates intent to send a video message, automatically selecting a front-facing camera of the computing device effective to capture video for the video message using the front-facing camera; and
responsive to ascertaining that the user input is to enter a video record mode, automatically selecting a rear-facing camera effective to capture video in the record mode without sending the video message.

15. The computing device of claim 14, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises a selection of a selectable control to start the video message.

16. The computing device of claim 14, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises a selection of one or more contacts to which the video message can be sent.

17. The computing device of claim 14, wherein said ascertaining that the user input indicates intent to send the video message comprises determining that the user input comprises determining that the user input is associated with responding to a previously-received short video message.

18. The computing device of claim 14, wherein the computing device comprises a phone.