This disclosure relates generally to graphical user interfaces for media capture applications.
Media capture devices (e.g., smart phones, tablet computers), include applications that allow users to record media clips (e.g., video clips, audio clips) using one or more embedded cameras and microphones. The user holds down a virtual record button to capture a media clip. Once the user is done recording, the user can drag the media clip into a desired order with other media clips and add filters, emoji, animated icons and titles. Media clips can be shared indirectly through social networks and/or sent directly to friends through, for example, instant messaging applications.
The disclosed embodiments are directed to a media capture lock affordance for a graphical user interface. In an embodiment, a method of capturing media comprising: detecting, by a media capture device, a tap and hold gesture input directed to a media capture affordance displayed at a first location on a graphical user interface presented on a display screen of the media capture device; responsive to the tap and hold gesture input, initiating, by the image capture device, a media capture session on the media capture device in an unlocked state; responsive to the media capture device detecting a first lift gesture in which the tap and hold gesture input lifts from the first location on the graphical user interface during the media capture session, terminating, by the image capture device, the media capture session; responsive to the media capture device detecting a slide gesture input in which the media capture affordance slides from the first location to a second location on the graphical user interface during the media capture session, changing, by the media capture device, the media capture affordance to a media capture lock affordance; and responsive to the media capture device detecting a second lift gesture in which the slide gesture input lifts from the graphical user interface at the second location during the media capture session, transitioning, by the media capture device, the media capture session into a locked state.
Other embodiments can include an apparatus, computing device and non-transitory, computer-readable storage medium.
Particular embodiments disclosed herein may provide one or more of the following advantages. A media capture lock affordance allows a user to lock and unlock a capture state of a media capture device using a simple and intuitive touch gesture that can be applied by the user's finger (e.g., the user's thumb) while holding the media capture device in one hand.
The details of one or more implementations of the subject matter are set forth in the accompanying drawings and the description below. Other features, aspects and advantages of the subject matter will become apparent from the description, the drawings and the claims.
This disclosure relates to media recording functionality of a media capture device that locks a media capture affordance on a graphical user interface (GUI) into a locked media capture state for continuous media capture. In an embodiment, to initiate a media capture session of a media clip (e.g., a video clip, audio clip), the user taps and holds the media capture affordance (e.g., a virtual recording button). As long as the user holds their touch on the media capture affordance, the media continues to be captured by the media capture device. If the user removes their touch during the media capture session, the media capture session terminates. If the user maintains their touch on the media capture affordance while making a sliding gesture with their finger, the media capture affordance visually changes to a locked media capture affordance and the media capture session is maintained, resulting in continuous recording of the media. In an embodiment, the locked media capture affordance moves down below the user's finger so that it is not obscured by the user's finger. The user can remove their finger from the locked media capture affordance and the media capture session will be maintained until the user taps the locked state capture button, which then terminates the media capture session.
Referring to
In some embodiments, additional affordances (not shown) are included on GUI 101 for allowing the user to playback the captured media (hereinafter also referred to as a “media clip”), and order, filter, add emoji, animated icons and titles to the media clip. Other affordances allow the user to share the media clips indirectly with social networking websites and directly with friends and family through various communication means (e.g., instant messaging, email, tweeting). In the embodiment shown, a navigation bar is located under the media display area that allows the user select an operation mode such as Camera, Library and Posters.
Referring to
Referring to
In other embodiments, multiple taps can be used instead of a single tap. The direction of the slide gesture input can be in any direction on GUI 101, including up, down, right and left. A sound effect can be played in sync with the tap and slide gesture, such as a “click” sound effect to indicate when the media capture session is locked and unlocked. In an embodiment, force feedback (e.g., a vibration) can be provided by a haptic engine to indicate when the media capture session is locked and unlocked. Affordances 102, 106 can be placed at any desired location on GUI 101, and can change location, size and/or shape in response to the orientation of media capture device 100, such as portrait and landscape orientations. In an embodiment, the user can enter or exit a locked media capture state using a voice command, which is processed by a speech detection/recognition engine implemented in media capture device 100.
Process 200 begins by receiving a tap and hold gesture input directed to a media capture affordance at a first location of a GUI presented on a display device of a media capture device (201). The media capture affordance can be and size, shape or color. The first location can be any desired location on the GUI. Responsive to the tap and hold gesture input, process 200 initiates a media capture session on the media capture device, where the media capture session is initiated in an “unlocked” state (202). Responsive to a first lift gesture at the first location, process 200 terminates the media capture session (203).
Responsive to a slide gesture input from the first location to a second location on the GUI, process 200 changes the media capture affordance to a media capture lock affordance (204). The media capture lock affordance can be any size, shape or color. The second location can be any desired location on the GUI except the first location. The slide gesture can be in any desired direction including up, down, left and right.
Responsive to detecting a second lift gesture at the second location, process 200 transitions the media capture session from an unlocked state into a locked state (205). In a locked state, the media capture device will capture media continuously, until the user taps the media capture lock affordance to terminate the media capture session. In an embodiment, the user can tap anywhere on the GUI to terminate the media capture session after the second lift gesture, or press a mechanical button on the media capture device (e.g., a home button on a smartphone).
Sensors, devices and subsystems can be coupled to peripherals interface 306 to facilitate multiple functionalities. For example, one or more motion sensors 310, light sensor 312 and proximity sensor 314 can be coupled to peripherals interface 306 to facilitate motion sensing (e.g., acceleration, rotation rates), lighting and proximity functions of the mobile device. Location processor 315 can be connected to peripherals interface 306 to provide geopositioning. In some implementations, location processor 315 can be a GNSS receiver, such as a Global Positioning System (GPS) receiver chip. Electronic magnetometer 316 (e.g., an integrated circuit chip) can also be connected to peripherals interface 306 to provide data that can be used to determine the direction of magnetic North. Electronic magnetometer 316 can provide data to an electronic compass application. Motion sensor(s) 310 can include one or more accelerometers and/or gyros configured to determine change of speed and direction of movement of the mobile device. Barometer 317 can be configured to measure atmospheric pressure around the mobile device.
Camera subsystem 320 and an optical sensor 322, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as capturing photographs and recording video clips.
Communication functions can be facilitated through one or more wireless communication subsystems 324, which can include radio frequency (RF) receivers and transmitters (or transceivers) and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the communication subsystem 324 can depend on the communication network(s) over which a mobile device is intended to operate. For example, architecture 300 can include communication subsystems 324 designed to operate over GSM networks, GPRS networks, EDGE networks, a Wi-Fi™ or Wi-Max™ networks and Bluetooth™ networks. In particular, the wireless communication subsystems 324 can include hosting protocols, such that the mobile device can be configured as a base station for other wireless devices.
Audio subsystem 326 can be coupled to a speaker 328 and a microphone 330 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording and telephony functions. Audio subsystem 326 can be configured to receive voice commands from the user.
I/O subsystem 340 can include touch surface controller 342 and/or other input controller(s) 344. Touch surface controller 342 can be coupled to a touch surface 346 or pad. Touch surface 346 and touch surface controller 342 can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch surface 346. Touch surface 346 can include, for example, a touch screen. I/O subsystem 340 can include a haptic engine or device for providing haptic feedback (e.g., vibration) in response to commands from a processor.
Other input controller(s) 344 can be coupled to other input/control devices 348, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of speaker 328 and/or microphone 330. Touch surface 346 or other controllers 344 (e.g., a button) can include, or be coupled to, fingerprint identification circuitry for use with a fingerprint authentication application to authenticate a user based on their fingerprint(s).
In one implementation, a pressing of the button for a first duration may disengage a lock of the touch surface 346; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device on or off. The user may be able to customize a functionality of one or more of the buttons. The touch surface 346 can, for example, also be used to implement virtual or soft buttons and/or a virtual touch keyboard.
In some implementations, the mobile device can present recorded audio and/or video files, such as MP3, AAC and MPEG files. In some implementations, the mobile device can include the functionality of an MP3 player. Other input/output and control devices can also be used.
Memory interface 302 can be coupled to memory 350. Memory 350 can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices and/or flash memory (e.g., NAND, NOR). Memory 350 can store operating system 352, such as iOS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. Operating system 352 may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system 352 can include a kernel (e.g., UNIX kernel).
Memory 350 may also store communication instructions 354 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers, such as, for example, instructions for implementing a software stack for wired or wireless communications with other devices. Memory 350 may include graphical user interface instructions 356 to facilitate graphic user interface processing described in reference to
In an embodiment, the taps, slide and lift gestures described in reference to
Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory 350 can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., SWIFT, Objective-C, C#, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, a browser-based web application, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random-access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor or a retina display device for displaying information to the user. The computer can have a touch surface input device (e.g., a touch screen) or a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer. The computer can have a voice input device for receiving voice commands from the user.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
A system of one or more computers can be configured to perform particular actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
One or more features or steps of the disclosed embodiments may be implemented using an Application Programming Interface (API). An API may define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation. The API may be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter may be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters may be implemented in any programming language. The programming language may define the vocabulary and calling convention that a programmer will employ to access functions supporting the API. In some implementations, an API call may report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
This application claims the benefit of priority from U.S. Provisional Patent Application No. 62/628,825 for “Media Capture Lock Affordance for Graphical User Interface, filed Feb. 9, 2018, which provisional patent application is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62628825 | Feb 2018 | US |