Integration of hardware and software for tracking user interfaces
By selecting camera sensors based on device connectivity and enabling object tracking modes, the method enhances user interface efficiency and reduces power consumption in electronic devices.
Patent Information
- Application Number
- JP2025541113
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-29
- Filing Date
- 2024-01-05
- Publication Date
- 2026-02-03
AI Technical Summary
Existing techniques for integrating hardware and software tracking user interfaces in electronic devices are cumbersome and inefficient, often requiring multiple key presses or keystrokes, wasting user time and device energy, particularly in battery-operated devices.
A method that selects a camera sensor for video capture based on the device's connection to a moveable mount, enabling a distinct object tracking mode and initiating processes with the appropriate camera sensor, and optionally causing the mount to perform mechanical movements to track objects.
This approach reduces cognitive burden on users, increases productivity, and conserves power by minimizing redundant user input and processor usage.
Smart Images

Figure 2026504094000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Patent Application No. 18 / 523,076, entitled "INTEGRATION OF HARDWARE AND SOFTWARE TRACKING USER INTERFACES," filed November 29, 2023, U.S. Provisional Patent Application No. 63 / 445,871, entitled "INTEGRATION OF HARDWARE AND SOFTWARE TRACKING USER INTERFACES," filed February 15, 2023, and U.S. Provisional Patent Application No. 63 / 439,560, entitled "INTEGRATION OF HARDWARE AND SOFTWARE TRACKING USER INTERFACES," filed January 17, 2023, the entire disclosures of which are incorporated herein by reference.
[0002] The present disclosure relates generally to computer user interfaces, and more particularly to techniques for integrating hardware and software tracking user interfaces. [Background technology]
[0003] The electronic device may be used to capture images and / or video, which may be used to track one or more objects. Summary of the Invention
[0004] However, some techniques for integrating hardware and software tracking user interfaces with electronic devices are generally cumbersome and inefficient. For example, some existing techniques use complex and time-consuming user interfaces that may involve multiple key presses or keystrokes. Existing techniques take longer than necessary, wasting the user's time and the device's energy. This latter consideration is particularly important in battery-operated devices.
[0005] The present technology thus provides electronic devices with faster, more efficient methods and interfaces for integrating hardware and software tracking user interfaces. Such methods and interfaces optionally complement or replace other methods for integrating hardware and software tracking user interfaces. Such methods and interfaces reduce the cognitive burden on users and create a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and increase the time between battery charges.
[0006] According to some embodiments, a method is described that includes, in a computer system in communication with two or more camera sensors and one or more input devices, detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors, and in response to detecting the request to capture video, initiating a process to capture video using a first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process to capture video using a second camera sensor of the two or more camera sensors, different from the first camera sensor, in accordance with a determination that the computer system is not connected to the moveable mount.
[0007] According to some embodiments, a non-transitory computer-readable storage medium is described, the non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs including instructions to detect, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors, and in response to detecting the request to capture video, to initiate a process of capturing video using a first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is connected to a moveable mount, and to initiate a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is not connected to the moveable mount.
[0008] According to some embodiments, a temporary computer-readable storage medium is described, the temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs including instructions to detect, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors, and in response to detecting the request to capture video, to initiate a process of capturing video using a first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is connected to a moveable mount, and to initiate a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is not connected to the moveable mount.
[0009] In some embodiments, a computer system configured to communicate with two or more camera sensors and one or more input devices is described, the computer system comprising one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to detect, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors, and in response to detecting the request to capture video, to initiate a process of capturing video using a first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is connected to a moveable mount, and to initiate a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is not connected to the moveable mount.
[0010] In some embodiments, a computer system configured to communicate with two or more camera sensors and one or more input devices is described, the computer system comprising: means for detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; and means for, in response to detecting the request to capture video, initiating a process of capturing video using a first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is connected to the moveable mount, and initiating a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is not connected to the moveable mount.
[0011] According to some embodiments, a computer program product is described, comprising one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs including instructions for detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors, and in response to detecting the request to capture video, in accordance with a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using a first camera sensor of the two or more camera sensors, and in accordance with a determination that the computer system is not connected to the moveable mount, initiating a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors.
[0012] According to some embodiments, a method is described that includes detecting, in a computer system having one or more camera sensors, a request to capture video using the one or more camera sensors of the computer system, and in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking mode of operation in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking mode of operation in accordance with a determination that the computer system is not connected to a moveable mount.
[0013] According to some embodiments, a non-transitory computer-readable storage medium is described, the non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs including instructions for detecting a request to capture video using the one or more camera sensors of the computer system, and in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking operational mode in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking operational mode in accordance with a determination that the computer system is not connected to a moveable mount.
[0014] According to some embodiments, a temporary computer-readable storage medium is described, the temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs including instructions for detecting a request to capture video using the one or more camera sensors of the computer system, and in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking mode of operation in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking mode of operation in accordance with a determination that the computer system is not connected to a moveable mount.
[0015] According to some embodiments, a computer system configured to communicate with one or more camera sensors is described, the computer system comprising one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for detecting a request to capture video using one or more camera sensors of the computer system, and in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking mode of operation in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking mode of operation in accordance with a determination that the computer system is not connected to a moveable mount.
[0016] According to some embodiments, a computer system configured to communicate with one or more camera sensors is described, the computer system comprising: means for detecting a request to capture video using one or more camera sensors of the computer system; and means for, in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking mode of operation in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking mode of operation in accordance with a determination that the computer system is not connected to a moveable mount.
[0017] According to some embodiments, a computer program product is described, comprising one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs including instructions for detecting a request to capture video using the one or more camera sensors of the computer system, and in response to detecting the request to capture video, initiating a process of capturing video using the one or more camera sensors of the computer system according to a separate object tracking mode of operation in accordance with a determination that the computer system is connected to a moveable mount, and initiating a process of capturing video using the one or more camera sensors without enabling the separate object tracking mode of operation in accordance with a determination that the computer system is not connected to a moveable mount.
[0018] According to some embodiments, a method is described that includes, in a computer system in communication with a moveable mount, receiving an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured, and, in response to receiving the indication of the event, causing the moveable mount to perform one or more sequences of mechanical movements that move the device connected to the moveable mount, the sequences of the one or more mechanical movements associated with the event.
[0019] According to some embodiments, a non-transitory computer-readable storage medium is described, the non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a moveable mount, the one or more programs including instructions for: obtaining an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and, in response to obtaining the indication of the event, causing the moveable mount to perform one or more sequences of mechanical movements that move the device connected to the moveable mount, the sequences of the one or more mechanical movements being associated with the event.
[0020] According to some embodiments, a temporary computer-readable storage medium is described, the temporary computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a moveable mount, the one or more programs including instructions to: obtain an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and, in response to obtaining the indication of the event, cause the moveable mount to perform one or more sequences of mechanical movements that move the device connected to the moveable mount, the sequences of the one or more mechanical movements being associated with the event.
[0021] According to some embodiments, a computer system configured to communicate with a moveable mount is described, the computer system comprising one or more processors and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to: obtain an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and, in response to obtaining the indication of the event, cause the moveable mount to perform one or more sequences of mechanical movements that move the device connected to the moveable mount, the sequences of the one or more mechanical movements being associated with the event.
[0022] According to some embodiments, a computer system configured to communicate with a moveable mount is described, the computer system comprising: means for receiving an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and means for causing the moveable mount to perform one or more sequences of mechanical movements to move the device connected to the moveable mount in response to receiving the indication of the event, the sequences of the one or more mechanical movements being associated with the event.
[0023] According to some embodiments, a computer program product is described, the computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a moveable mount, the one or more programs including instructions for: obtaining an indication of an event associated with capturing video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and, in response to obtaining the indication of the event, performing one or more sequences of mechanical movements that move the device connected to the moveable mount, the sequences of the one or more mechanical movements being associated with the event.
[0024] Executable instructions to perform these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured for execution by one or more processors.
[0025] This provides devices with faster, more efficient methods and interfaces for integrating hardware and software tracking user interfaces, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces may complement or replace other methods for integrating hardware and software tracking user interfaces. [Brief explanation of the drawings]
[0026] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description of the Invention in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout:
[0027] [Figure 1A] FIG. 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display in accordance with some embodiments.
[0028] [Figure 1B] FIG. 2 is a block diagram illustrating exemplary components for event processing according to some embodiments.
[0029] [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments.
[0030] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface in accordance with some embodiments.
[0031] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device according to some embodiments.
[0032] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device having a touch-sensitive surface that is separate from the display, in accordance with some embodiments.
[0033] [Figure 5A] 1 illustrates a personal electronic device according to some embodiments.
[0034] [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments.
[0035] [Figure 6A] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6B] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6C] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6D] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6E] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6F] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6G] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6H] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 6I] 1 illustrates an exemplary user interface for capturing video, according to some embodiments.
[0036] [Figure 7] FIG. 1 is a flow diagram illustrating a method for capturing video, according to some embodiments.
[0037] [Figure 8A] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8B] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8C] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8D]1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8E] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8F] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8G] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8H] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8I] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8J] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8K] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8L] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8M] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8N] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8O] 1 illustrates an exemplary user interface for capturing video, according to some embodiments. [Figure 8P] 1 illustrates an exemplary user interface for capturing video, according to some embodiments.
[0038] [Figure 9] FIG. 1 is a flow diagram illustrating a method for capturing video, according to some embodiments.
[0039] [Figure 10A] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10B] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10C] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10D] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10E] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10F] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10G] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments. [Figure 10H] 1 illustrates an example technique for performing animation using a moveable mount, according to some embodiments.
[0040] [Figure 11] FIG. 1 is a flow diagram illustrating a method for performing animation using a moveable mount, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0041] The following description sets forth example methods, parameters, etc. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but rather is provided as a description of example embodiments.
[0042] There is a need for an electronic device that provides an efficient method and interface for integrating hardware and software tracking user interfaces. In some embodiments, a computer system selects a camera to capture video based on whether the computer system is connected to a moveable mount. In some embodiments, the computer system enables a distinct object tracking operational mode based on whether the computer system is connected to a moveable mount. In some embodiments, the computer system causes the moveable mount to perform a sequence of one or more mechanical movements that move a device connected to the moveable mount. Such techniques can reduce the cognitive burden on a user using an integrated hardware and software tracking user interface, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0043] Below, FIGS. 1A-1B, 2, 3, 4A-4B, and 5A-5B provide a description of an example device for performing a technique for managing event notifications. FIGS. 6A-6I illustrate an example technique and user interface for capturing video, according to some embodiments. FIG. 7 is a flow diagram illustrating a method for capturing video, according to some embodiments. The user interfaces of FIGS. 6A-6G are used to illustrate processes described below, including the process of FIG. 7. FIGS. 8A-8P illustrate an example technique and user interface for capturing video, according to some embodiments. FIG. 9 is a flow diagram illustrating a method for capturing video, according to some embodiments. The user interfaces of FIGS. 8A-8P are used to illustrate processes described below, including the process of FIG. 9. FIGS. 10A-10H illustrate an example technique for performing animation using a movable mount, according to some embodiments. FIG. 11 is a flow diagram illustrating a method for performing animation using a movable mount, according to some embodiments. The user interfaces of FIGS. 10A-10H are used to illustrate the processes described below, including the process of FIG.
[0044] The processes described below enhance the usability of the device and streamline the user-device interface (e.g., by helping the user provide appropriate inputs and reducing user errors when operating / interacting with the device) through various techniques, including providing improved visual feedback to the user, reducing the number of inputs required to perform an action, providing additional control options without cluttering the user interface with additional displayed controls, performing an action without requiring further user input when a set of conditions is met, enhancing privacy, and / or additional techniques. These techniques also reduce power usage and improve the device's battery life by allowing the user to use the device more quickly and efficiently.
[0045] Furthermore, for methods described herein in which one or more steps are conditioned on one or more conditions being satisfied, it should be understood that the described method can be repeated in multiple iterations, such that over the course of the iterations, all of the conditions on which the method steps are conditioned are satisfied in different iterations of the method. For example, if a method requires performing a first step if a condition is satisfied and a second step if the condition is not satisfied, one skilled in the art will understand that the steps recited in the claim can be repeated in any order until the conditions are met and are no longer met. Thus, a method described with one or more steps that depend on one or more conditions being satisfied can be rewritten as a method that is repeated until each condition recited in the method is met. However, this is not required for system or computer-readable medium claims in which the system or computer-readable medium includes instructions that perform a conditional action based on the satisfaction of the corresponding one or more conditions, and thus can determine whether a contingency is met without explicitly repeating the method steps until all conditions on which the method steps are conditioned are satisfied. Those skilled in the art will also understand that, as with methods having conditional steps, the system or computer-readable storage medium may repeat the steps of the method as many times as necessary to ensure that all of the conditional steps have been performed.
[0046] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. In some embodiments, these terms are used to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of various described embodiments. In some embodiments, the first touch and the second touch are two separate references to the same touch. In some embodiments, the first touch and the second touch are both touches, but they are not the same touch.
[0047] The terminology used in the description of various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. In the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Also, as used herein, the term "and / or" should be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0048] The term "if" is interpreted, optionally, according to the context, to mean "when" or "upon," or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" are interpreted, optionally, according to the context, to mean "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]."
[0049] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Optionally, other portable electronic devices, such as a laptop computer or tablet computer having a touch-sensitive surface (e.g., a touchscreen display and / or touchpad), are also used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer having a touch-sensitive surface (e.g., a touchscreen display and / or touchpad). In some embodiments, the electronic device is a computer system in communication (e.g., via wired communication, via wireless communication) with a display generation component. The display generation component is configured to provide a visual output, such as a display via a CRT display, a display via an LED display, or a display via image projection. In some embodiments, the display generation component is integrated with the computer system. In some embodiments, the display generation component is separate from the computer system. As used herein, "displaying" content includes displaying content (e.g., video data rendered or decoded by display controller 156) by transmitting data (e.g., image data or video data) over a wired or wireless connection to an integrated or external display generation component to visually generate the content.
[0050] In the following discussion, electronic devices are described that include a display and a touch-sensitive surface. However, it should be understood that the electronic device optionally includes one or more other physical user-interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0051] The device typically supports a variety of applications such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephony application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video player application.
[0052] Various applications running on the device optionally use at least one common physical user-interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within individual applications. In this way, the common physical architecture of the device (such as the touch-sensitive surface) optionally supports various applications with user interfaces that are intuitive and transparent to the user.
[0053] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 having touch-sensitive display system 112, according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a "touch screen" and sometimes known or referred to as a "touch-sensitive display system." Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 that detect the intensity of a contact on device 100 (e.g., a touch-sensitive surface, such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 that generate tactile output on device 100 (e.g., generate tactile output on a touch-sensitive surface such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0054] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a proxy for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four distinct values and more typically includes hundreds (e.g., at least 256) distinct values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted averaged) to determine an estimated force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure of the force or pressure of the contact is used directly to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is stated in units corresponding to the surrogate measure). In some implementations, the surrogate measure of the contact force or pressure is converted to an estimate of the force or pressure, and the estimate of the force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows users to access additional device functionality (e.g., on a touch-sensitive display) and / or receive user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons) that may not otherwise be accessible to users on devices of reduced size that have limited footprint for displaying affordances.
[0055] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to a previous position of the device, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or a displacement of a component relative to the center of mass of the device, that will be detected by the user with the user's sense of touch. For example, in a situation where a device or a component of a device is in contact with a touch-sensitive surface of a user (e.g., the fingers, palm, or other part of the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user feels a tactile sensation such as a “downclick” or “upclick” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even if there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.
[0056] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of its components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0057] Memory 102 optionally includes high-speed random access memory, and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.
[0058] Peripheral interface 118 may be used to couple input and output peripherals of the device to CPU 120 and memory 102. One or more processors 120 operate or execute various software programs (e.g., computer programs (e.g., including instructions)) and / or instruction sets stored in memory 102 to perform various functions and process data for device 100. In some embodiments, peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0059] RF (radio frequency) circuitry 108 transmits and receives RF signals, also referred to as electromagnetic signals. RF circuitry 108 converts electrical signals to electromagnetic signals or electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. RF circuitry 108 optionally communicates via wireless communications with networks, such as the Internet, also referred to as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices. RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as by short-range radios. Wireless communication optionally includes, but is not limited to, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), Long Term Evolution (LTE), and other standards.evolution (LTE), near field communications (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and / or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol), The present invention may use any of a number of communication standards, protocols, and technologies, including the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (XMPP), the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), the Instant Messaging and Presence Service (IMPS), and / or the Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this application.
[0060] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 also includes a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., mono or binaural headphones) and an input (e.g., a microphone).
[0061] I / O subsystem 106 couples input / output peripherals on device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes display controller 156, optical sensor controller 158, depth camera controller 169, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive / send electrical signals from / to other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some embodiments, input controller(s) 160 are optionally coupled to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2 ) optionally include up / down buttons for volume control of speaker 111 and / or microphone 113. The one or more buttons optionally include push buttons (e.g., 206 in FIG. 2 ). In some embodiments, the electronic device is a computer system in communication with one or more input devices (e.g., via wireless communication over wired communication). In some embodiments, the one or more input devices include a touch-sensitive surface (e.g., a trackpad as part of a touch-sensitive display). In some embodiments, the one or more input devices include one or more camera sensors (e.g., one or more optical sensors 164 and / or one or more depth camera sensors 175), such as for tracking user gestures (e.g., hand gestures and / or air gestures) as input. In some embodiments, the one or more input devices are integrated with the computer system. In some embodiments, the one or more input devices are separate from the computer system.In some embodiments, an air gesture is a gesture that is detected without the user touching an input element that is part of the device (or independent of an input element that is part of the device) and is based on detected movement of a part of the user's body in the air, including movement of the user's body relative to an absolute reference (e.g., the angle of the user's arm relative to the ground or the distance of the user's hand relative to the ground), movement of the user's body relative to another part of the user's body (e.g., movement of the user's hand relative to the user's shoulder, movement of the user's other hand relative to one of the user's hands, and / or movement of the user's fingers relative to another finger or part of the user's hand), and / or absolute movement of a part of the user's body (e.g., a tap gesture that includes movement of the hand in a predetermined pose by a predetermined amount and / or speed, or a shake gesture that includes rotation of the part of the user's body a predetermined speed or amount).
[0062] A quick press of a push button optionally unlocks the touchscreen 112 or optionally initiates the process of unlocking the device using gestures on the touchscreen, as described in U.S. Patent Application Serial No. 11 / 322,549, filed December 23, 2005, "Unlocking a Device by Performing Gestures on an Unlock Image," U.S. Patent No. 7,657,849, which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) optionally turns power on or off to the device 100. The functionality of one or more of the buttons is optionally customizable by the user. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0063] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to touchscreen 112. Touchscreen 112 displays visual output to the user. This visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively "graphics"). In some embodiments, some or all of the visual output optionally corresponds to user interface objects.
[0064] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic and / or tactile contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or cessation of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0065] Touchscreen 112 optionally uses LCD (liquid crystal display), LPD (light emitting polymer display), or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally use any of a number of now known or later developed touch sensing technologies to detect contact and any movement or disruption thereof, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements that determine one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® from Apple Inc. of Cupertino, California.
[0066] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpad described in U.S. Patent Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Application Publication No. 2002 / 0015024 A1, each of which is incorporated by reference herein in its entirety. However, touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.
[0067] The touch-sensitive display in some embodiments of touch screen 112 is described in the following applications: (1) U.S. patent application Ser. No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller," (2) U.S. patent application Ser. No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen," (3) U.S. patent application Ser. No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices," (4) U.S. patent application Ser. No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices," and (5) U.S. patent application Ser. No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices." No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface," (7) U.S. Patent Application No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) U.S. Patent Application No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) U.S. Patent Application No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device," all of which are incorporated herein by reference in their entireties.
[0068] Touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or accessory, such as a stylus, finger, or the like. In some embodiments, the user interface is designed to operate primarily using finger-based contact and gestures, which may not be as precise as stylus-based input due to the larger contact area of a finger on the touchscreen. In some embodiments, the device translates the coarse finger input into precise pointer / cursor positions or commands to perform the action desired by the user.
[0069] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface that is separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0070] Device 100 also includes a power system 162 that provides power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of electrical power within a portable device.
[0071] Device 100 also optionally includes one or more optical sensors 164. FIG. 1A shows an optical sensor coupled to optical sensor controller 158 in I / O subsystem 106. Optical sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Optical sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. Optical sensor 164 optionally works in conjunction with imaging module 143 (also called a camera module) to capture still images or video. In some embodiments, the optical sensor is located on the back side of device 100 opposite touchscreen display 112 on the front of the device, so that the touchscreen display can be used as a viewfinder for capturing still and / or video images. In some embodiments, the optical sensor is located on the front of the device so that an image of a user is optionally captured for a video conference while the user views other video conference participants on the touchscreen display. In some embodiments, the position of the optical sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that a single optical sensor 164 is used for both video conferencing and capturing still and / or video images, along with a touchscreen display.
[0072] Device 100 also optionally includes one or more depth camera sensors 175. FIG. 1A shows a depth camera sensor coupled to depth camera controller 169 in I / O subsystem 106. Depth camera sensor 175 receives data from the environment and creates a three-dimensional model of an object (e.g., a face) in a scene from a viewpoint (e.g., the depth camera sensor). In some embodiments, in conjunction with imaging module 143 (also referred to as a camera module), depth camera sensor 175 is optionally used to determine a depth map of different portions of an image captured by imaging module 143. In some embodiments, a depth camera sensor is located on the front of device 100 to obtain images of the user with depth information for video conferencing and to capture selfie images with depth map data while the user views other video conference participants on a touchscreen display. In some embodiments, depth camera sensor 175 is located on the back of the device, or on both the back and front of device 100. In some embodiments, the position of the depth camera sensor 175 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), so that the depth camera sensor 175 is used for both video conferencing and capturing still and / or video images, in conjunction with a touchscreen display.
[0073] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is juxtaposed with or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0074] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled to peripherals interface 118. Alternatively, proximity sensor 166 is optionally coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. Nos. 11 / 241,839, "Proximity Detector In Handheld Device," 11 / 240,788, "Proximity Detector In Handheld Device," 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (e.g., when the user is making a phone call).
[0075] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generators coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation instructions from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is juxtaposed with or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or horizontally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0076] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Application Publication No. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and U.S. Patent Application Publication No. 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated by reference herein in their entireties. In some embodiments, information is displayed on the touchscreen display in portrait or landscape orientation based on an analysis of data received from the one or more accelerometers. In addition to accelerometer(s) 168, device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information about the location and orientation (e.g., vertical or horizontal) of device 100.
[0077] In some embodiments, software components stored in memory 102 include operating system 126, communication module (or instruction set) 128, touch / motion module (or instruction set) 130, graphics module (or instruction set) 132, text input module (or instruction set) 134, Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction set) 136. Additionally, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) stores device / global internal state 157, as shown in FIGS. 1A and 3. Device / global internal state 157 includes one or more of: active application state indicating which applications, if any, are currently active; display state indicating which applications, views, or other information occupy various regions of touchscreen display 112; sensor state including information obtained from the device's various sensors and input control devices 116; and location information regarding the device's location and / or orientation.
[0078] Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS, or an embedded operating system such as VxWorks) includes various software components and / or drivers that control and manage general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitate communication between various hardware and software components.
[0079] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) is adapted to couple to other devices directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as, similar to, and / or compatible with the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0080] Contact / motion module 130, optionally in conjunction with display controller 156, detects contact with touchscreen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact occurs (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has ceased (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact, as represented by the series of contact data, optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0081] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by a user (e.g., to determine whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator, but can be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of pre-defined thresholds without modifying the trackpad or touchscreen display hardware. Additionally, in some implementations, a user of the device is provided with a software setting to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once via a system-level click “intensity” parameter).
[0082] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensities of detected contacts). Thus, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event, followed by detecting a finger up (lift off) event at the same position (or substantially the same position) as the finger down event (e.g., the position of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by detecting a finger up (lift off) event.
[0083] Graphics module 132 includes various known software components that render and display graphics on touchscreen 112 or other display, including components that modify the visual impact (e.g., brightness, transparency, saturation, contrast, or other visual properties) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, characters, web pages, icons (such as user interface objects including soft keys), digital images, videos, animations, etc.
[0084] In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, including coordinate data and other graphic property data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.
[0085] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to a user's interaction with the device 100.
[0086] Text input module 134 is optionally a component of graphics module 132 and provides a soft keyboard for entering text in various applications (e.g., contacts module 137, email client module 140, IM module 141, browser module 147, and any other application requiring text input).
[0087] The GPS module 135 determines the location of the device and provides this information for use within various applications (e.g., to the phone module 138 for use in location-based dialing, to the camera module 143 as picture / video metadata, and to applications that provide location-based services such as a weather widget, a local yellow pages widget, and a maps / navigation widget).
[0088] Application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: a contacts module 137 (sometimes called an address book or contact list); Telephone module 138, ·Videoconferencing module 139, an email client module 140; Instant messaging (IM) module 141, · Training Support Module 142, a camera module 143 for still and / or video images, Image management module 144, Video player module, Music player module, Browser module 147, Calendar module 148, a widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, and a user-created widget 149-6; a widget creator module 150 for creating user-created widgets 149-6; · Search module 151, A video and music player module 152 that combines a video player module and a music player module; · Memo module 153, a map module 154, and / or ·Online video module 155.
[0089] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.
[0090] Contacts module 137, along with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, is optionally used to manage an address book or contact list (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370), including adding name(s) to the address book, removing name(s) from the address book, associating phone number(s), email address(es), street address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers or email addresses to initiate and / or facilitate communication via telephone module 138, video conferencing module 139, email client module 140, or IM module 141, etc.
[0091] Telephone module 138, in conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, is optionally used to enter character sequences corresponding to telephone numbers, access one or more telephone numbers in contacts module 137, modify entered telephone numbers, dial individual telephone numbers, place calls, and disconnect and hang up when the call is complete. As previously mentioned, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0092] Video conferencing module 139 includes executable instructions to cooperate with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, optical sensor 164, optical sensor controller 158, contact / motion module 130, graphics module 132, text input module 134, contact module 137, and telephone module 138 to initiate, conduct, and end a video conference between a user and one or more other participants according to the user's instructions.
[0093] Email client module 140, in conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contains executable instructions for composing, sending, receiving, and managing emails in response to user instructions. In conjunction with image management module 144, email client module 140 greatly facilitates the creation and sending of emails with still or video images captured by camera module 143.
[0094] Instant messaging module 141, in conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, includes executable instructions for entering character sequences corresponding to instant messages, modifying previously entered characters, sending individual instant messages (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephony-based instant messaging, or XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephony-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0095] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable instructions to create workouts (e.g., with time, distance, and / or calorie burn goals), communicate with training sensors (sports devices), receive training sensor data, calibrate sensors used to monitor workouts, select and play music for workouts, and display, store, and transmit workout data.
[0096] Camera module 143, in conjunction with touchscreen 112, display controller 156, optical sensor(s) 164, optical sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, includes executable instructions to capture and store still images or video (including video streams) in memory 102, modify characteristics of the still images or video, or delete the still images or video from memory 102.
[0097] Image management module 144, in conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, includes executable instructions for arranging, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slideshow or album), and storing still and / or video images.
[0098] Browser module 147, in conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contains executable instructions for browsing the Internet according to user instructions, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0099] Calendar module 148 includes executable instructions to cooperate with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147 to create, display, modify, and store calendars and data associated with the calendars (e.g., calendar entries, to-do lists, etc.) according to user instructions.
[0100] Widget module 149, in conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, optionally provides mini-applications (e.g., weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) downloaded and used by a user, or mini-applications created by a user (e.g., user-created widget 149-6). In some embodiments, a widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript file. In some embodiments, a widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widgets).
[0101] The widget creator module 150, in conjunction with the RF circuitry 108, the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, the text input module 134, and the browser module 147, is optionally used by a user to create a widget (e.g., turn a user-specified portion of a web page into a widget).
[0102] The search module 151 includes executable instructions to cooperate with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134 to search for text, music, sound, images, video, and / or other files in the memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with user instructions.
[0103] Video and music player module 152 includes executable instructions that, in conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, enable a user to download and play pre-recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions for displaying, presenting, or otherwise playing videos (e.g., on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0104] The notes module 153 includes executable instructions for working with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134 to create and manage notes, to-do lists, and the like as directed by a user.
[0105] Map module 154, in conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, is used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data regarding businesses and other points of interest at or near a particular location, and other location-based data), optionally in accordance with user instructions.
[0106] Online video module 155, in conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, contains instructions that enable a user to access, browse for, receive (e.g., by streaming and / or downloading), and play (e.g., on the touchscreen or on an external display connected via external port 124) particular online videos, send emails with links to particular online videos, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated herein by reference in their entireties.
[0107] The above-identified modules and applications each correspond to sets of executable instructions that perform one or more of the functions and methods described herein (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., sets of instructions) need not be implemented as respective software programs (e.g., computer programs (e.g., including instructions)), procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise rearranged. For example, a video player module is optionally combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.
[0108] In some embodiments, device 100 is a device in which operation of a predetermined set of functions on the device is performed solely via a touchscreen and / or touchpad. Using the touchscreen and / or touchpad as the primary input control device for operation of device 100 optionally reduces the number of physical input control devices (push buttons, dials, etc.) on device 100.
[0109] The set of predefined functions performed only through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device rather than a touchpad.
[0110] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) includes an event sorter 170 (e.g., within operating system 126) and a separate application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0111] Event sorter 170 receives the event information and determines which application 136-1 to deliver the event information to and application view 191 for application 136-1. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine which application view(s) to deliver the event information to.
[0112] In some embodiments, application internal state 192 includes additional information such as one or more of resume information to be used when application 136-1 resumes execution, user interface state information indicating or ready to display information being displayed by application 136-1, state cues that allow the user to return to a previous state or view of application 136-1, and redo / undo cues for previous actions taken by the user.
[0113] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user touch as part of a multi-touch gesture on touch-sensitive display 112). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (via audio circuitry 110). Information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
[0114] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receipt of an input above a predetermined noise threshold and / or for more than a predetermined duration).
[0115] In some embodiments, the event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0116] Hit view determination module 172 provides software procedures that determine where a sub-event occurred within one or more views when touch-sensitive display 112 displays more than one view. A view consists of the controls and other elements that a user can see on the display.
[0117] Another aspect of a user interface associated with an application is the set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application views (of individual applications) in which touches are detected optionally correspond to programmatic levels within the application's programmatic or view hierarchy. For example, the lowest-level view in which a touch is detected is optionally referred to as the hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.
[0118] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which an initiating sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source identified as the hit view.
[0119] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-events are actively participating views, and therefore determines that all actively participating views should receive a particular sequence of sub-events. In other embodiments, even if a touch sub-event is completely confined to the area associated with one particular view, views higher in the hierarchy still remain actively participating views.
[0120] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information in an event queue, which is retrieved by individual event receivers 182.
[0121] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or is part of another module stored in memory 102, such as contact / motion module 130.
[0122] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a separate view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, an individual application view 191 includes multiple event recognizers 180. In other embodiments, one or more of the event recognizers 180 are part of a separate module, such as a user interface kit or a higher-level object from which application 136-1 inherits methods and other properties. In some embodiments, individual event handlers 190 include one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more respective event handlers 190. Also, in some embodiments, one or more of the data updater 176, the object updater 177, and the GUI updater 178 are included in individual application views 191.
[0123] A separate event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies events from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).
[0124] The event receiver 182 receives event information from the event sorter 170. The event information includes information about a sub-event, e.g., a touch or a movement of a touch. Depending on the sub-event, the event information also includes additional information, such as the location of the sub-event. When the sub-event involves a movement of a touch, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the current orientation of the device (also called the device's posture).
[0125] The event comparator 184 compares the event information to predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a predefined sequence of sub-events), such as Event 1 (187-1) and Event 2 (187-2). In some embodiments, sub-events within Events (187-1 and / or 187-2) include, for example, touch start, touch end, touch movement, touch cancellation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. The double tap includes, for example, a first touch on a displayed object relative to a predetermined phase (touch start), a first lift-off (touch end) relative to the predetermined phase, a second touch on a displayed object relative to the predetermined phase (touch start), and a second lift-off (touch end) relative to the predetermined phase. In another example, a definition of event 2 (187-2) is a drag on a displayed object. The drag includes, for example, a touch (or contact) on the displayed object to a predetermined stage, a movement of the touch across the touch-sensitive display 112, and a lift-off of the touch (touch end). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0126] In some embodiments, event definition 186 includes definitions of events for individual user interface objects. In some embodiments, event comparator 184 performs a hit test to determine which user interface objects are associated with the sub-event. For example, if a touch is detected on touch-sensitive display 112 in an application view in which three user interface objects are displayed on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a separate event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 to activate. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.
[0127] In some embodiments, the definition of an individual event 187 also includes a delay action that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognizer.
[0128] If the individual event recognizer 180 determines that the sequence of sub-events does not match any of the events in the event definition 186, the individual event recognizer 180 enters an event disabled, event failed, or event finished state, after which it ignores the next sub-event of the touch-based gesture. In this situation, any other event recognizers that remain active for the hit view continue to track and process sub-events of the ongoing touch gesture.
[0129] In some embodiments, individual event recognizers 180 include metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should perform sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact with each other or how event recognizers are allowed to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.
[0130] In some embodiments, an individual event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, the individual event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and postponing sending) sub-events to the individual hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs a predetermined process.
[0131] In some embodiments, the event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with a set of sub-events or to an actively participating view. The event handler associated with the set of sub-events or the actively participating view receives the event information and performs a predetermined process.
[0132] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.
[0133] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of an individual application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0134] It should be understood that the foregoing description of event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 using input devices, although not all of them are initiated on a touchscreen. For example, mouse movements and mouse button presses, contact movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movements, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the recognized event.
[0135] 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by performing a gesture on the graphics, for example, using one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics is performed when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward and / or downward), and / or rolling (right to left, left to right, upward and / or downward) of a finger in contact with device 100. In some implementations or situations, accidental contact with a graphic does not select the graphic, for example, if the gesture corresponding to selection is a tap, a swipe gesture sweeping over an application icon optionally does not select the corresponding application.
[0136] Device 100 also optionally includes one or more physical buttons, such as a "home" button or menu button 204. As previously mentioned, menu button 204 is optionally used to navigate to any application 136 within a set of applications running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key within a GUI displayed on touchscreen 112.
[0137] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbutton 206 for powering the device on / off and locking the device, volume control button(s) 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to power the device on / off by pressing and holding the button down for a predetermined period of time, to lock the device by pressing and releasing the button before the predetermined time has elapsed, and / or to unlock the device or initiate the unlocking process. In alternative embodiments, device 100 also accepts verbal input via microphone 113 to activate or deactivate certain functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.
[0138] FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia player device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes referred to as a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interface 330, including display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a tactile output generator 357 that generates tactile output on device 300 (e.g., similar to tactile output generator(s) 167 described above with reference to FIG. 1A ), and sensors 359 (e.g., light, acceleration, proximity, touch-sensing, and / or contact intensity sensors similar to contact intensity sensor(s) 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and / or spreadsheet module 390, whereas memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0139] Each of the above-identified elements of FIG. 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the functions mentioned above. The above-identified modules or computer programs (e.g., including an instruction set or instructions) need not be implemented as separate software programs (e.g., computer programs (e.g., including instructions)), procedures, or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.
[0140] Attention is now optionally directed to user interface embodiments, for example, as implemented on portable multifunction device 100.
[0141] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth indicator 405, ● Battery status indicator 406, Tray 408 with icons of frequently used applications, such as: An icon 416 for the phone module 138, labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; icon 418 of the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser"; and ○ An icon 422 for the video and music player module 152, also called the iPod (trademark of Apple Inc.) module 152, labeled "iPod", and ● Icons of other applications, such as: ○ Icon 424 of IM module 141, labeled "Messages"; icon 426 of the calendar module 148, labeled "Calendar"; ○ Icon 428 of the image management module 144, labeled "Photos" ○ An icon 430 of the camera module 143, labeled "camera"; ○ Icon 432 of the online video module 155, labeled "Online Video"; Icon 434 of Stock Price Widget 149-2, labeled "Stock Price" ○ Icon 436 of the map module 154, labeled "Map" Icon 438 of weather widget 149-1, labeled "Weather" ○ Icon 440 of alarm clock widget 149-4, labeled "Clock" ○ Icon 442 of Training Support Module 142, labeled "Training Support"; ○ An icon 444 of the Notes module 153 labeled "Notes," and A settings application or module icon 446 labeled "Settings" that provides access to settings for the device 100 and its various applications 136.
[0142] 4A are merely exemplary. For example, icon 422 of video and music player module 152 is labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label for an individual application icon includes the name of the application that corresponds to the individual application icon. In some embodiments, the label for a particular application icon is different from the name of the application that corresponds to that particular application icon.
[0143] 4B shows an example user interface on a device (e.g., device 300 of FIG. 3 ) that has touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3 ) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) that detect the intensity of a contact on touch-sensitive surface 451, and / or one or more tactile output generators 357 that generate a tactile output for a user of device 300.
[0144] Although some of the following examples are given with reference to input on touchscreen display 112 (which combines a touch-sensitive surface and a display), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display, as shown in FIG. 4B . In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4B ) has a primary axis (e.g., 452 in FIG. 4B ) that corresponds to a primary axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this way, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device when the touch-sensitive surface is separate from the display. It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0145] Additionally, while the following examples are given primarily with reference to finger input (e.g., finger contact, finger tap gesture, finger swipe gesture), it should be understood that in some embodiments, one or more of the finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced by a mouse click (e.g., instead of a contact) followed by movement of a cursor along the path of the swipe (e.g., instead of movement of the contact). As another example, a tap gesture is optionally replaced by a mouse click (e.g., instead of detecting a contact and then ceasing contact detection) while the cursor is positioned over the location of the tap gesture. Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger contacts are optionally used simultaneously.
[0146] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 can include some or all of the functionality described with respect to devices 100 and 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter touchscreen 504. Alternatively, or in addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors that detect the intensity of contact (e.g., touches) being applied. The one or more intensity sensors of touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. The user interface of device 500 can respond to touches based on their intensity, meaning that touches of different intensities can invoke different user interface actions on device 500.
[0147] For exemplary techniques for detecting and processing touch intensity, see, for example, related applications International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," published as International Publication No. WO / 2013 / 169849, and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," published as International Publication No. WO / 2014 / 105276, each of which is incorporated herein by reference in its entirety.
[0148] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, may be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, may allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms allow device 500 to be worn by a user.
[0149] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 can include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 that operably couples an I / O section 514 to one or more computer processors 516 and a memory 518. I / O section 514 can be connected to a display 504, which can have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O section 514 can be connected to a communication unit 530 that receives application and operating system data using Wi-Fi, Bluetooth, near field communication (NFC), cellular, and / or other wireless communication technologies. Device 500 can include input mechanisms 506 and / or 508. Input mechanism 506 is optionally, for example, a rotatable input device or a depressible and rotatable input device. In some embodiments, input mechanism 508 is optionally a button.
[0150] In some embodiments, input mechanism 508 is optionally a microphone. Personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to I / O section 514.
[0151] The memory 518 of the personal electronic device 500 may include one or more non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more computer processors 516, may cause the computer processors to perform the techniques described below, including processes 700, 900, and 1100 (FIGS. 7, 9, and 11). A computer-readable storage medium may be any medium that can tangibly contain or store computer-executable instructions used by or in connection with an instruction execution system, apparatus, or device. In some embodiments, the storage medium is a transient computer-readable storage medium. In some embodiments, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic storage devices, optical storage devices, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CDs, DVDs, or Blu-ray technology, and persistent solid-state memory such as flash, solid-state drives, and the like. Personal electronic device 500 is not limited to the components and configuration of FIG. 5B and may include other or additional components in multiple configurations.
[0152] As used herein, the term "affordance" refers to a user-interactive graphical user interface object, optionally displayed on a display screen of device 100, 300, and / or 500 (FIGS. 1A, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each, optionally, constitute an affordance.
[0153] As used herein, the term “focus selector” refers to an input element that indicates the current portion of the user interface with which the user is interacting. In some implementations involving a cursor or other location marker, the cursor acts as the “focus selector,” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B) while the cursor is positioned over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A) that allows direct interaction with user interface elements on the touchscreen display, a detected contact on the touchscreen acts as the “focus selector,” such that when input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface without a corresponding cursor movement or contact movement on the touchscreen display (e.g., by using the tab key or arrow keys to move focus from one button to another), and in these implementations, the focus selector moves to follow the movement of focus between different regions of the user interface. Regardless of the specific form that the focus selector takes, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface through which the user intends to interact).For example, the location of a focus selector (e.g., a cursor, touch, or selection box) over an individual button while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen) indicates that the user intends to activate that individual button (and not other user interface elements shown on the device's display).
[0154] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples, i.e., a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean intensity of the contact, the average intensity of the contact, the top 10 percentile intensity of the contact, half the maximum intensity of the contact, 90 percent of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action is performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity above the first intensity threshold but not above the second intensity threshold results in a second action, and a contact having a characteristic intensity above the second threshold results in a third action. In some embodiments, the comparison between the characteristic intensity and the one or more thresholds is not used to determine whether to perform the first action or the second action, but rather to determine whether to perform one or more actions (e.g., whether to perform an individual action or to forgo performing an individual action).
[0155] In some embodiments, a computer system is in a locked state or an unlocked state. In the locked state, the computer system is powered on and operational but is prevented from performing a predetermined set of operations in response to user input. The predetermined set of operations optionally includes navigation between user interfaces, activation or deactivation of a predetermined set of functions, and activation or deactivation of specific applications. The locked state may be used to prevent unintended or unauthorized use of some functions of the computer system or activation or deactivation of some functions on the computer system. In some embodiments, in the unlocked state, the computer system is powered on and operational and is not prevented from performing at least some of the predetermined set of operations that cannot be performed while in the locked state. When a computer system is in the locked state, the computer system is said to be locked. When a computer system is in the unlocked state, the computer is said to be unlocked. In some embodiments, a computer system in a locked state optionally responds to a limited set of user inputs, including inputs corresponding to an attempt to transition the computer system to the unlocked state or inputs corresponding to powering off the computer system.
[0156] Attention is now directed to embodiments of user interfaces (“UIs”) and related processes implemented on an electronic device such as portable multifunction device 100, device 300, or device 500.
[0157] 6A-6I show example techniques and user interfaces for capturing video with and without a moveable mount, according to some embodiments. The user interfaces in these figures are used to illustrate processes described below, including the process of FIG.
[0158] FIG. 6A illustrates a computer system 600 with two or more camera sensors. In FIG. 6A , computer system 600 is a smartphone. In some embodiments, computer system 600 is a tablet computer, a laptop computer, a desktop computer, a smartwatch, a camera device, and / or an electronic control system. In some embodiments, computer system 600 is computer system 800 and / or computer system 1000, described below. In the embodiment illustrated in FIG. 6A , computer system 600 has a first camera sensor 602 facing rearward relative to computer system 600 and a second camera sensor 604 facing forward relative to computer system 600. FIG. 6A illustrates a stand 606 (e.g., a stationary or movable stand) and a movable mount 608. In some embodiments, stand 606 is stand 802. In some embodiments, movable mount 608 is movable mount 804 or movable mount 1002. As illustrated in FIG. 6A , computer system 600 is initially placed on stand 606. The computer system 600 has a display 610 that faces the user while the computer system 600 is on the stand 606 .
[0159] The computer system 600 may be connected to a movable mount 608. The movable mount 608 includes one or more mechanisms that allow the movable mount 608 to move, thereby moving the computer system 600 when the computer system 600 is connected to the movable mount 608. For example, the movable mount 608 may rotate, pan, tilt, and / or roll, thereby causing the computer system 600 to rotate, pan, tilt, and / or roll, respectively. In the example shown in FIG. 6B , the movable mount 608 includes two movable joints, joint 608a and joint 608b. Joint 608a allows rotation about a first axis (e.g., an azimuth axis), allowing the movable mount 608 to pan the computer system 600. Joint 608b allows rotation about one or more other axes (e.g., an elevation axis and / or a roll axis), allowing the movable mount 608 to tilt and / or roll the computer system 600. For example, rotation about a roll axis allows the movable mount 608 to rotate the computer system 600 between portrait and landscape orientations.
[0160] In FIG. 6B , computer system 600 detects input 650 (e.g., a tap and / or other input) selecting camera application icon 612. As shown in FIG. 6C , in response to detecting input 650 selecting camera application icon 612, computer system 600 displays camera application user interface 614. Camera application user interface 614 indicates various available camera modes (e.g., video, photo, portrait, lapse, and / or slow motion). In FIG. 6C , the camera mode is set to video (e.g., as the video option is centered and shown in bold relative to the other options) such that computer system 600 captures and records video. Camera application user interface 614 includes a record control 616. In FIG. 6C , computer system 600 detects input 652 (e.g., a tap and / or other input) on record control 616.
[0161] As shown in Figure 6D, in response to detecting input 652 on record control 616, computer system 600 begins the process of capturing video using second camera sensor 604 (e.g., a forward-facing camera sensor). Second camera sensor 604 has a field of view 618 (e.g., shown by a dashed line at the top of Figure 6D). During the process of capturing video using second camera sensor 604, a camera application records video within field of view 618. In Figure 6D, computer system 600 displays video of field of view 618 on display 610 along with a record indicator 620 indicating that video is being captured.
[0162] In FIG. 6E , the user removes computer system 600 from stand 606 and places computer system 600 on movable mount 608. Because computer system 600 is connected to movable mount 608 (e.g., following a determination that computer system 600 is connected to movable mount 608), computer system 600 begins the process of capturing video using first camera sensor 602 (e.g., a rear-facing camera sensor). First camera sensor 602 has field of view 622. In this example, the user placed computer system 600 on movable mount 608 so that display 610 faces away from the user and first camera sensor 602 faces toward the user. In some embodiments, when the user orients display 610 toward the user and first camera sensor 602 away from the user, movable mount 608 reorients computer system 600 so that display 610 faces away from the user and first camera sensor 602 faces toward the user.
[0163] In this example, the first camera sensor 602 has a narrower field of view than the second camera sensor 604. This difference is illustrated by the field of view 618 of the second camera sensor 604 shown in Figures 6C and 6D, which is wider than the field of view 622 of the first camera sensor 602 shown in Figure 6E.
[0164] In this example, the first camera sensor 602 has higher image quality than the second camera sensor 604. In some embodiments, the first camera sensor 602 has reduced image distortion relative to the second camera sensor 604 (e.g., due to having a smaller field of view relative to the second camera sensor 604) and / or better low-light sensitivity relative to the second camera sensor 604 (e.g., due to having larger pixels relative to the second camera sensor 604). When the computer system 600 is using the second camera sensor 604, the difference in image quality is indicated by the hatching shown in FIGS. 6C and 6D (e.g., the hatching is for illustrative purposes only and is not actually displayed on the computer system 600). However, due to the higher image quality of the second camera sensor 604 when the computer system 600 is using the first camera sensor 602, the hatching is not shown in FIG. 6E.
[0165] 6F, an individual object tracking mode of operation is used while (or, in some embodiments, because) computer system 600 is connected to moveable mount 608. In the individual object tracking mode of operation, computer system 600 adjusts field of view 622 of first camera sensor 602, transmits tracking data to moveable mount 608, and / or moves moveable mount 608 to track the movement of one or more objects (e.g., a user and / or items of interest).
[0166] 6F , the user moves toward the movable mount 608. As a result, the computer system 600 moves the movable mount 608, thereby changing the field of view 622 of the first camera sensor 602 so that the user remains within the field of view 622. In some embodiments, when the individual object tracking operational mode is enabled, the computer system 600 mechanically tracks one or more objects, such as by mechanically zooming the first camera sensor 602 and / or mechanically panning the first camera sensor 602 by rotating the movable mount 608, so that the one or more objects remain within the field of view 622.
[0167] In some embodiments, the individual object tracking operational mode is automatically enabled following (or in response to) a determination that computer system 600 is connected to moveable mount 608. In some embodiments, the individual object tracking operational mode is automatically disabled following (or in response to) a determination that computer system 600 is disconnected from moveable mount 608.
[0168] In Figure 6G, computer system 600 is removed from movable mount 608 and placed on stand 606. As a result, the individual object tracking operational mode is automatically disabled and computer system 600 reverts to using second camera sensor 604. Figure 6G shows that computer system 600 displays the wider field of view 618 of second camera sensor 604 at a lower image quality than that previously displayed in Figure 6F.
[0169] 6H, the user moves to the side of the stand 606. However, because the separate object tracking mode of operation is not enabled, the field of view 618 of the second camera sensor 604 remains unchanged and the user is no longer at the center of the field of view 618.
[0170] In some embodiments, when the individual object tracking operating mode is not enabled, the computer system 600 digitally tracks one or more objects without mechanical adjustment, such as by digitally zooming, panning, tilting, and / or rotating the second camera sensor 604. For example, FIG. 6I shows the computer system 600 digitally tracking the user so that the user is centered in the field of view 624 of the second camera sensor 604. In this scenario, the field of view 618 represents the entire range from which the second camera sensor 604 can capture images. However, the computer system 600 digitally zooms to the field of view 624 to limit the portion of the field of view displayed on the display 610 so that the user is centered in the displayed video.
[0171] 7 is a flow diagram illustrating a method for initiating a process for capturing video using a computer system, according to some embodiments. Method 700 is performed on a computer system (e.g., 100, 300, 500, 600, 800, 1000, smartphone, tablet computer, laptop computer, desktop computer, smartwatch, camera device, and / or electronic control system) in communication with two or more camera sensors and one or more input devices (e.g., a touch-sensitive surface, a touchscreen display, a button, a keyboard, a mouse, a joystick, a camera sensor, and / or a microphone). Some operations of method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0172] As described below, method 700 provides an intuitive way to initiate the process of capturing video. This method reduces the cognitive load on the user to initiate the process of capturing video, thereby creating a more efficient human-machine interface. For battery-operated computing devices, allowing users to initiate the process of capturing video more quickly and efficiently conserves power and extends the time between battery charges.
[0173] The computer system detects (702) a request (e.g., a set of one or more inputs) (e.g., 650 and / or 652) to capture video using a field of view (e.g., 618) of one or more camera sensors (e.g., 602 and / or 604) that changes (e.g., mechanically and / or electronically adjusted) (e.g., a field of view of a first camera sensor of two or more camera sensors and / or a field of view of a second camera sensor of two or more camera sensors) based on movement of one or more subjects within the field of view of the one or more camera sensors (e.g., a person moving from the position of FIG. 6E to the position of FIG. 6F) via one or more input devices. In some embodiments, the field of view is adjusted (e.g., translated and / or zoomed in or out) to follow or track a user or object moving from one location to another.
[0174] In response to detecting a request to capture video (704), following (e.g., in response to) determining that the computer system is connected to (e.g., physically connected to, physically attached to, and / or communicating via a wired or wireless connection with) a moveable mount (e.g., 608) (e.g., a mount configured to physically hold or support the computer system via gravity, magnetic mechanisms, and / or mechanical mechanisms) (e.g., computer system 600 is connected to moveable mount 608 in FIG. 6E), the computer system begins (706) a process of capturing video using a first camera sensor (e.g., 602) of the two or more camera sensors. In some embodiments, the mount has motors and / or controls that enable rotation, pan (e.g., rotation about a vertical axis), tilt (e.g., rotation about a horizontal axis), and / or roll (e.g., rotation about a second horizontal axis perpendicular to the horizontal and vertical axes) of one or more portions of the mount. In some embodiments, the computer system has a rechargeable battery, and when the computer system is connected to the moveable mount, the moveable mount charges the battery (e.g., via wireless charging). In some embodiments, initiating the process of capturing video includes displaying a selectable graphical element (e.g., a button, an icon, and / or an affordance) that, when selected, causes video to be captured (e.g., via one or more of the one or more camera sensors). In some embodiments, initiating the process of capturing video includes detecting a sequence of inputs including inputs corresponding to a request to launch an application (e.g., a camera application) for capturing video. In some embodiments, initiating the process of capturing video includes running the process of capturing video and / or capturing video.
[0175] In response to detecting a request to capture video (704) and determining (e.g., in response to) that the computer system is not connected to (e.g., not physically connected to, not physically attached to, and / or not in communication with) a moveable mount (e.g., computer system 600 is on stand 606 in FIG. 6B ), the computer system begins a process of capturing video using a second camera sensor (e.g., 604) of the two or more camera sensors that is different from the first camera sensor (708). Using the first camera sensor when the computer system is connected to the moveable mount and the second camera sensor when the computer system is not connected to the moveable mount allows the computer system to use a better camera to capture video in a given situation without requiring additional input from a user, thereby performing improved actions when a set of conditions are met without requiring further user input and reducing the number of inputs required to perform the actions.
[0176] In some embodiments, the first camera sensor has a narrower field of view (e.g., 622 compared to 618) than the second camera sensor (e.g., the second camera is a wide-angle camera). Initiating the process of capturing video with a camera sensor having a narrower field of view when the computer system is connected to the movable mount allows the computer system to automatically use a camera with better optical characteristics to capture video, thereby performing an improved action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0177] In some embodiments, the first camera sensor has a higher image quality (e.g., higher resolution) than the second camera sensor (e.g., the image shown in FIG. 6E compared to the hatched image shown in FIG. 6D). Initiating the process of capturing video using a camera sensor with the higher image quality when the computer system is connected to the movable mount allows the computer system to automatically use a camera with better optical characteristics to capture the video, thereby performing an improved action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0178] In some embodiments, while the individual object tracking mode is disabled, the computer system detects that the computer system is attached to the moveable mount. In some embodiments, in response to detecting that the computer system is connected to the moveable mount, the computer system enables an individual object tracking operational mode (e.g., enables tracking of the person's movements as shown in FIGS. 8G-8P) (e.g., tracking is automatically enabled when the computer system is connected to the moveable mount). In some embodiments, enabling the individual object tracking operational mode includes enabling an individual object tracking algorithm, adjusting the field of view of a camera sensor, transmitting tracking data (e.g., from the computer system) to the moveable mount, and / or moving the moveable mount (e.g., according to the tracking data). In some embodiments, in the individual object tracking operational mode, the computer system adjusts the field of view of a first camera sensor, transmits tracking data to the moveable mount, and / or moves the moveable mount to track the movement of one or more objects (e.g., a user and / or an item of interest). In some embodiments, when the individual object tracking mode of operation is enabled, the computer system mechanically tracks one or more objects, such as by mechanically zooming the first camera sensor and / or mechanically panning the first camera sensor by rotating a moveable mount, so that the one or more objects remain within the field of view. In some embodiments, when the individual object tracking mode of operation is enabled, the computer system tracks one or more objects by a combination of mechanical and digital adjustments to the field of view (e.g., by mechanically panning the first camera sensor by rotating a moveable mount and digitally zooming the first camera sensor).Automatically enabling an individual subject tracking operational mode when the computer system is connected to the moveable mount reduces the number of inputs required to enable the individual subject tracking operational mode and allows the user to enable the individual subject tracking operational mode without displaying additional controls, which performs an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform an action and providing additional control options without cluttering the user interface with additional displayed controls.
[0179] In some embodiments, pursuant to (or in some embodiments, in response to) a determination that the computer system has been detached from the moveable mount, the computer system disables the individual object tracking operational mode (e.g., tracking is automatically disabled when the computer system is disconnected from the moveable mount) (e.g., as described with reference to FIG. 6G ). In some embodiments, while the individual object tracking operational mode is enabled, the computer system receives (e.g., detects) an indication of the computer system's detachment from the moveable mount, and in response to receiving the indication of the computer system's detachment from the moveable mount, the computer system disables the individual object tracking operational mode. Automatically disabling the individual object tracking operational mode pursuant to a determination that the computer system has been detached from the moveable mount reduces the number of inputs required to disable the individual object tracking operational mode and allows a user to disable the individual object tracking operational mode without displaying additional controls, which executes an action when a set of conditions is met without requiring further user input, reduces the number of inputs required to execute an action, and provides additional control options without cluttering the user interface with additional displayed controls.
[0180] In some embodiments, the computer system detects a change in the spatial arrangement of one or more subjects detected by one or more camera sensors (e.g., a change in the position of the man from the position in FIG. 6E to the position in FIG. 6F) (e.g., one or more subjects appear, one or more subjects disappear, and / or one or more subjects move within the physical environment). In some embodiments, in response to detecting the change in the spatial arrangement of the one or more subjects, the computer system changes the field of view of one or more camera sensors to track one or more of the subjects based on the change in the spatial arrangement of the one or more subjects (e.g., a change in field of view 622 from FIG. 6E to FIG. 6F). Changing the field of view of the camera sensors to track one or more subjects in response to detecting the change in the spatial arrangement of the one or more subjects reduces the number of inputs required to track one or more subjects based on the change in the spatial arrangement of the subjects, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0181] In some embodiments, modifying the field of view of one or more camera sensors to track one or more of the objects based on changes in the spatial arrangement of the one or more objects includes mechanically modifying the field of view of one or more camera sensors (e.g., mechanically moving computer system 600, and thereby first camera sensor 602 and corresponding field of view 622, from the position shown in FIG. 6E to the position shown in FIG. 6F) in accordance with a determination that a first camera sensor is being used to capture video (and / or, in some embodiments, in accordance with a determination that the computer system is connected to a moveable mount) (e.g., mechanically zooming the first camera sensor and / or mechanically panning the first camera sensor by rotating the moveable mount to maintain the one or more objects within the field of view of the one or more camera sensors). In some embodiments, modifying the field of view of one or more camera sensors to track one or more of the objects based on changes in the spatial arrangement of the one or more objects includes both mechanically modifying and digitally modifying the field of view of one or more camera sensors. In some embodiments, mechanically tracking the one or more objects includes adjusting one or more physical components of the first camera sensor, the computer system, and / or the moveable mount to change the field of view of the first camera sensor, such as zooming, panning, tilting, and / or rotating the field of view of the first camera sensor. In some embodiments, the one or more objects include a person and / or an object of interest. Mechanically tracking the one or more objects pursuant to a determination that the first camera sensor is being used to capture video enables the computer system to use improved settings for tracking the objects when using the first camera sensor, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0182] In some embodiments, changing the field of view of one or more camera sensors to track one or more of the objects based on changes in the spatial location of the one or more objects includes digitally changing the field of view of one or more camera sensors (e.g., changing from field of view 618 in FIG. 6I to field of view 624) (e.g., digitally zooming the second camera sensor and / or digitally panning the second camera sensor without mechanical adjustment to maintain the one or more objects within the field of view of the one or more camera sensors) in accordance with a determination that a second camera sensor is being used to capture video (and / or, in some embodiments, in accordance with a determination that the computer system is not connected to a moveable mount). In some embodiments, digitally tracking the one or more objects includes digitally adjusting the first camera sensor, such as zooming, panning, tilting, and / or rotating the field of view of the second camera sensor. In some embodiments, the one or more objects include a person and / or an object of interest. Digitally tracking one or more subjects pursuant to a determination that a second camera sensor is being used to capture video enables the computer system to use improved settings for tracking subjects when using the second camera sensor, thereby performing an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0183] It should be noted that the process details described above with respect to method 700 (e.g., FIG. 7) are also applicable in a similar manner to the methods described below. For example, method 900 and method 1100 optionally include one or more of the characteristics of the various methods described above with reference to method 700. For example, a method for capturing video using a first camera sensor or a second camera sensor may be combined with a method for capturing video according to a distinct subject-tracking operational mode based at least in part on whether the computer system is connected to a movable mount. For the sake of brevity, these details will not be repeated below.
[0184] 8A-8P show example techniques and user interfaces for capturing video with and without a moveable mount, according to some embodiments. The user interfaces in these figures are used to illustrate processes described below, including the process of FIG.
[0185] FIG. 8A shows computer system 800, stand 802, and movable mount 804. In FIG. 8A, computer system 800 is a smartphone. In some embodiments, computer system 800 is a tablet computer, a laptop computer, a desktop computer, a smartwatch, a camera device, and / or an electronic control system. As shown in FIG. 8A, computer system 800 is initially placed on stand 802. Computer system 800 has display 806 that faces the user while computer system 800 is on stand 802. In some embodiments, computer system 800 is computer system 600 and / or 1000. Stand 802 is stand 606, and movable mount 804 is movable mount 608 or movable mount 1002.
[0186] In FIG. 8B , computer system 800 detects input 850 (e.g., a tap and / or other input) selecting camera application icon 808. As shown in FIG. 8C , in response to detecting input 850 selecting camera application icon 808, computer system 800 displays camera application user interface 810. Camera application user interface 810 indicates various available camera modes (e.g., video, photo, portrait, lapse, and / or slow motion). In FIG. 8C , the camera mode is set to video (e.g., as shown with the video option centered and in bold relative to the other options) such that computer system 800 captures and records video. Camera application user interface 810 includes a record control 812. In FIG. 8C , computer system 800 detects input 852 (e.g., a tap and / or other input) at record control 812.
[0187] As shown in Figure 8D, in response to detecting input 852 on record control 812, computer system 800 begins the process of capturing video using one or more camera sensors. Field of view 814 (e.g., shown by a dashed line at the top of Figure 8D) represents the field of view of one or more camera sensors and / or a portion of the field of view of one or more camera sensors that is displayed on display 806. During the process of capturing video using one or more camera sensors, a camera application records video within field of view 814. In Figure 8D, computer system 800 displays video of field of view 814 and / or portion of field of view 814 on display 806 along with a record indicator 816 that indicates that video is being captured.
[0188] In some embodiments, the process of capturing video uses different logic when computer system 800 is on stand 802 than when computer system 800 is on moveable mount 804. For example, in response to detecting input 852 on record control 812 and following a determination that computer system 800 is connected to moveable mount 804, computer system 800 initiates the process of capturing video according to a particular object tracking mode of operation. In this case, initiating the process of capturing video according to a particular object tracking mode of operation includes using logic to track an object, such as by physically moving and / or zooming computer system 800 and / or one or more camera sensors. In response to detecting input 852 on record control 812 and following a determination that computer system 800 is not connected to moveable mount 804, computer system 800 initiates the process of capturing video without enabling a particular object tracking mode of operation. In this case, initiating the process of capturing video without enabling a separate subject tracking operational mode involves different logic for tracking the subject, such as by digitally moving and / or zooming one or more camera sensors (e.g., without physically moving and / or zooming the computer system 800 and / or one or more camera sensors).
[0189] 8E, computer system 800 is on stand 802 and individual object tracking mode of operation is not enabled. In the illustrated example, first person 840a gazes at an object of interest (e.g., a whiteboard). Because individual object tracking mode of operation is not enabled, field of view 814 remains unchanged and only a portion of the whiteboard is visible within field of view 814.
[0190] 8F, the computer system 800 is on a stand 802 and the individual object tracking mode of operation is not enabled. In the illustrated example, a second person 840b approaches the first person 840a. The first person 840a looks toward the second person 840b, but because the individual object tracking mode of operation is not enabled, the field of view 814 remains unchanged and the second person 840b cannot be seen in the field of view 814.
[0191] 8G, first person 840a removes computer system 800 from stand 802 and places computer system 800 on moveable mount 804. In some embodiments, computer system 800 automatically enables the individual object tracking mode of operation following (or in response to) a determination that computer system 800 is connected to moveable mount 804, after computer system 800 was previously operated without the individual object tracking mode of operation being enabled while not connected to moveable mount 804.
[0192] In some embodiments, computer system 800 causes output of an indication that an individual object tracking operational mode has been enabled. In some embodiments, computer system 800 causes activation of an LED indicator (e.g., on moveable mount 804 and / or on computer system 800) pursuant to a determination that an individual object tracking operational mode has been enabled. For example, computer system 800 causes an LED indicator to emit a blinking light pursuant to a determination that an individual object tracking operational mode has been enabled and is being actively used to track an object, such as first person 840a, and computer system 800 causes an LED indicator to emit a continuous light pursuant to a determination that an individual object tracking operational mode has been enabled but is not being actively used to track an object.
[0193] 8H , computer system 800 is connected to moveable mount 804 and an individual object tracking mode of operation is enabled. In the individual object tracking mode of operation, computer system 800 adjusts one or more camera sensor fields of view 814 and / or displayed portions of field of view 814, transmits tracking data to moveable mount 804, and / or moves moveable mount 804 to track one or more objects (e.g., a user and / or items of interest). In some embodiments, the individual object tracking mode of operation tracks one specific object (e.g., as opposed to a centroid approach that attempts to keep two or more objects in the field of view when two or more objects of interest are present).
[0194] In some embodiments, the particular subject tracked in the individual subject tracking mode of operation is the first person detected in the field of view 814 when the individual subject tracking mode of operation is enabled. In some embodiments, the subject tracked in the individual subject tracking mode of operation is selected to be tracked based on face detection, such as by identifying facial features. In some embodiments, the subject tracked in the individual subject tracking mode of operation is selected to be tracked based on body detection, such as by identifying the torso and / or limbs. In some embodiments, the subject tracked in the individual subject tracking mode of operation is selected to be tracked based on one or more facial features associated with a particular person, such as facial features associated with the primary user of the device, people saved as contacts, and / or people previously identified by the computer system 800.
[0195] In some cases, the computer system 800 detects more than one object within the field of view 814 when the individual object tracking mode of operation is enabled. In some embodiments, when the individual object tracking mode of operation is enabled, the particular object tracked in the individual object tracking mode of operation is tracked because the particular object is the person closest to the center of the field of view 814. In some embodiments, when the individual object tracking mode of operation is enabled, the particular object tracked in the individual object tracking mode of operation is tracked because the particular object is the person closest to the center of the field of view 814 looking at one or more camera sensors.
[0196] In the example shown in FIG. 8H , the individual object tracking operational mode tracks the first person 840a because they were the first person detected in the field of view 814 when the computer system 800 was connected to the movable mount 804, and because the individual object tracking operational mode was enabled. In some embodiments, if the individual object looks away from the camera and looks toward the person or location for a predetermined period of time (e.g., 1 second, 2 seconds, or 5 seconds), the computer system 800 identifies the person or location as an object of interest. In FIG. 8H , the first person 840a looks away from one or more camera sensors and gazes toward the object of interest (e.g., a whiteboard). Because the individual object tracking operational mode is enabled, the computer system 800 adjusts the field of view 814, such as by causing the movable mount 804 to rotate, pan, tilt, and / or roll the computer system 800, based on the first person's 840a's line of sight toward the object of interest (e.g., a whiteboard). In FIG. 8H, for example, moveable mount 804 rotates and / or pans computer system 800 so that the entire whiteboard is visible within field of view 814.
[0197] In FIG. 8I , computer system 800 is connected to movable mount 804, and an individual object tracking mode of operation is enabled. In the illustrated example, a second person 840b approaches first person 840a, and first person 840a gazes toward second person 840b. With individual object tracking mode of operation enabled, computer system 800 adjusts field of view 814, such as by having movable mount 804 rotate, pan, tilt, and / or roll computer system 800, based on the line of sight of first person 840a toward second person 840b. In FIG. 8H , for example, movable mount 804 rotates and / or pans computer system 800 so that second person 840b is visible within field of view 814.
[0198] In some embodiments, after the computer system identifies an item of interest and / or additional object to track, such as second person 840b, the computer system 800 tracks (or causes to be tracked) the item of interest and / or additional object, such as second person 840b, in addition to tracking the first person 840a. In some embodiments, the second person 840b is identified as an additional person to track because the first person 840a gazes toward the second person 840b. In some embodiments, the second person 840b is identified as an additional person to track because the second person 840b faces and / or looks toward one or more camera sensors. When more than one object is being tracked, the computer system 800 adjusts the displayed portion of the field of view 814 to include all of the objects, as much as possible. For example, in FIG. 8I, the computer system 800 adjusts the field of view 814 to include the first person 840a, the second person 840b, and the whiteboard.
[0199] In some embodiments, computer system 800 causes an individual object tracking mode of operation to track a specific object (e.g., rather than zooming out so that multiple objects are visible in field of view 814). As shown in FIG. 8J , when first person 840a moves away from whiteboard and second person 840b, computer system 800 causes field of view 814 to adjust to track first person 840a (e.g., rather than zooming out so that first person 840a, whiteboard, and second person 840b are all visible in field of view 814). In the illustrated example, computer system 800 causes movable mount 804 to rotate and / or pan computer system 800 so that first person 840a remains centered in field of view 814.
[0200] In some situations, it is not physically possible for computer system 800 to adjust field of view 814 to include the individual subject and one or more identified objects of interest. For example, in the situation shown in FIG. 8K, even if field of view 814 is zoomed out, it is not possible for field of view 814 to include first person 840a, second person 840b, and the whiteboard based on the positions of one or more camera sensors. In this case, computer system 800 continues to track first person 840a according to the individual subject tracking mode of operation and ceases adjusting the displayed portion of field of view 814 to include second person 840b and / or the whiteboard.
[0201] 8K, the computer system 800 tracks a first person 840a according to a discrete object tracking mode of operation, and the first person 840a moves out of the field of view 814. For example, the first person 840a moves, and the computer system 800 is unable to adjust the field of view 814 to keep the first person 840a within the field of view 814 (e.g., due to the speed of the first person 840a's movement relative to the speed of the computer system 800 adjusting the field of view 814). In some embodiments, the discrete object tracking mode of operation causes the computer system 800 to continue adjusting the field of view 814 based on the last known trajectory of the object. For example, if the computer system 800 was adjusting the field of view 814 to follow the movement of the first person 840a in a particular direction, the computer system 800 continues to adjust the field of view 814 in the same direction after the first person 840a moves out of the field of view 814 in an attempt to reposition the first person 840a within the field of view 814.
[0202] In some embodiments, the individual object tracking mode includes modifying the displayed portion of the field of view 814 based on one or more characteristics of movement by the object being tracked, such as the amount of movement and / or the speed of movement of the first person 840a. In some embodiments, the computer system 800 modifies the displayed portion of the field of view 814 if the movement meets a predetermined threshold (e.g., a predetermined distance and / or a predetermined speed). For example, the computer system 800 modifies the displayed portion of the field of view 814 based on the movement of the first person 840a from the position in FIG. 8I to the position in FIG. 8J. In some embodiments, if the movement does not meet the predetermined threshold, the displayed portion of the field of view remains unchanged. For example, the computer system 800 does not modify the displayed portion of the field of view 814 based on the first person 840a speaking and / or making hand gestures, but otherwise remains in the general position shown in FIG. 8G.
[0203] 8L shows that the computer system 800 continues to adjust the field of view 814 along the trajectory that the first person 840a was traveling when the first person 840a moved out of the field of view 814. As the first person 840a continues to move in the same direction and the computer system 800 adjusts the field of view 814 in the same direction, the computer system 800 repositions the first person 840a within the field of view 814, as shown in FIG.
[0204] In some embodiments, the movable mount 804 has one or more travel limits, and when a travel limit is reached, the computer system 800 cannot adjust the field of view 814 beyond the travel limit. For example, the movable mount 804 cannot rotate a total of more than 360 degrees (e.g., around a vertical axis). From a starting position of 0 degrees, the movable mount 804 can rotate 180 degrees clockwise and 180 degrees counterclockwise. When the movable mount reaches 180 degrees in either direction, the travel limit is reached and the movable mount 804 cannot move any further in that direction. As another example, the movable mount 804 cannot move beyond a predetermined elevation angle. As shown in FIG. 8M, a first person 840a has moved beyond the travel limit of the movable mount 804, the first person 840a is outside the field of view 814, and the movable mount 804 cannot physically move one or more camera sensors so that the first person 840a is within the field of view 814 of the one or more camera sensors.
[0205] In certain situations, computer system 800 is unable to reposition an object within field of view 814. One example is when an object moves beyond a movement limit, as described with respect to FIG. 8M. Another example is when an object moves outside field of view 814 (e.g., moves at a speed faster than computer system 800 is able (or configured) to move to track the object) and computer system 800 is unable to detect the trajectory along which the object has moved, as described with respect to FIG. 8K. In some embodiments, tracking of an object "times out" (e.g., computer system 800 stops tracking or attempting to track an individual object) if the object is not located within a predetermined period of time.
[0206] In some embodiments, when tracking of an object times out (e.g., the object has been out of the field of view for a predetermined period of time), the computer system 800 causes the field of view 814 to remain in the position it was in when the object was lost. In Figure 8M, the first person 840a moves out of the field of view 814. After the first person 840a moves out of the field of view 814 for a predetermined period of time, tracking of the first person 840a times out and the field of view 814 remains unchanged (e.g., remains in its current position and size).
[0207] In some embodiments, when the tracking of an object times out (e.g., the object has been out of the field of view for a predetermined period of time), the computer system 800 changes the individual object tracking operational mode from tracking a first object to tracking a second object. In Figure 8M, the first person 840a moves and is outside the field of view 814 for a predetermined period of time. As a result, in Figure 8N, in accordance with the individual object tracking operational mode, the computer system 800 tracks a second object (e.g., second person 840b).
[0208] In some embodiments, the second subject is determined to be the person closest to the center of the frame when the first subject has been outside of the field of view 814 for a predetermined period of time. In some embodiments, the second subject was previously identified within the field of view 814. For example, in FIG. 8N, the computer system 800 tracks the second person 840b because the second person 840b was previously identified within the field of view 814, as shown in FIG. 81. In some embodiments, the computer system 800 adjusts the field of view 814 to the last known location of the second subject. For example, as shown in FIG. 8N, the computer system 800 adjusts the field of view 814 to the location where the second person 840b was previously identified.
[0209] In certain situations, after the computer system 800 tracks the second person 840b according to a particular object tracking operating mode, the second person 840b moves out of the field of view 814. For example, as described with respect to FIG. 8M , when the second person 840b moves beyond a movement limit, the second person 840b moves out of the field of view 814. As another example, as described with respect to FIG. 8K , the second person 840b moves out of the field of view 814 when the second person 840b moves at a speed faster than the computer system 800 is able (or configured) to move to track the object, and the computer system 800 is unable to detect the trajectory along which the second person 840b has moved. In some embodiments, when tracking of the second person 840b times out (e.g., the second person is out of field of view for a predetermined period of time), the computer system 800 stops tracking the second person 840b and resumes tracking the first person 840a by scanning the last known location of the first person 840a and / or the possible trajectory of the first person 840a.
[0210] In some embodiments, the computer system 800 includes two or more camera sensors. If the computer system 800 initially uses the first camera sensor 818 and the subject moves out of the field of view 814, the computer system 800 changes to begin using the second camera sensor 820 to track the subject. For example, in FIG. 8O, the first person 840a moves out of the field of view 814 and the movable mount 814 reaches its travel limit. As a result, the computer system 800 can no longer track the first person 840a using the first camera sensor 818. As shown in FIG. 8P, the computer system 800 changes from using the first camera sensor 818 to using the second camera sensor 820. The first person 840a is within the field of view 822 of the second camera sensor 820, and as a result, the computer system 800 can track the user using the second camera sensor 820.
[0211] 9 is a flow diagram illustrating a method for initiating a process of capturing video with one or more camera sensors using a computer system, according to some embodiments. Method 900 is performed on a computer system (e.g., 100, 300, 500, 600, 800, 1000, smartphone, tablet computer, laptop computer, desktop computer, smartwatch, camera device, and / or electronic control system) in communication with one or more camera sensors (e.g., 818 and / or 820). Some operations of method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0212] As described below, method 900 provides an intuitive way to initiate the process of capturing video using one or more camera sensors. This method reduces the cognitive burden on a user to initiate the process of capturing video using one or more camera sensors, thereby creating a more efficient human-machine interface. For battery-operated computing devices, allowing a user to more quickly and efficiently initiate the process of capturing video using one or more camera sensors conserves power and extends the time between battery charges.
[0213] In some embodiments, the computer system detects a request to capture video using one or more camera sensors of the computer system (902). In some embodiments, in response to detecting the request to capture video (904) (e.g., 850 and / or 852), following a determination that the computer system is connected to (e.g., physically connected to, physically attached to, and / or communicating via a wired or wireless connection with) a moveable mount (e.g., 804) (e.g., following (or, in some embodiments, in response to) a determination that the computer system is connected to the moveable mount), the computer system initiates a process of capturing video using one or more camera sensors of the computer system (906) according to a distinct object-tracking mode of operation (e.g., a visible portion of the field of view is changed (e.g., mechanically and / or electronically adjusted) based on a detected change in the field of view, such as movement of one or more objects within the field of view (e.g., the field of view is adjusted to follow an object moving from one location to another)). In some embodiments, the distinct object-tracking mode of operation moves the moveable mount based on the detected change in the field of view. In some embodiments, the computer system enables a separate object tracking operational mode in accordance with (or in some embodiments, in response to) determining that the computer system is connected to a moveable mount.
[0214] In some embodiments, in response to detecting a request to capture video (904), following a determination that the computer system is not connected to (e.g., not physically connected to, not physically attached to, and / or not communicating via a wired or wireless connection with) a moveable mount (e.g., a mount configured to physically hold or support the computer system via gravity, magnetic mechanisms, and / or mechanical mechanisms), the computer system initiates (908) a process of capturing video using one or more camera sensors without enabling (e.g., without turning on and / or operating according to) a separate subject tracking operational mode (e.g., without changing the visible portion of the field of view of the one or more camera sensors based on detected changes in the field of view, such as movement of one or more users within the field of view). Automatically initiating the process of capturing video according to a separate subject tracking operational mode when the computer system is connected to a moveable mount reduces the number of inputs required to initiate the process of capturing video in a separate subject tracking mode and allows a user to capture video in a separate subject tracking mode without displaying additional controls, which executes an action when a set of conditions is met without requiring further user input, reduces the number of inputs required to execute an action, and provides additional control options without cluttering the user interface with additional displayed controls.
[0215] In some embodiments, the mount has motors and / or controls that enable rotation, pan (e.g., rotation about a vertical axis), tilt (e.g., rotation about a horizontal axis), and / or roll (e.g., rotation about a second horizontal axis perpendicular to the horizontal and vertical axes) of one or more portions of the mount. In some embodiments, the individual object tracking mode of operation includes moving the movable mount (e.g., rotating about one or more axes) to change the field of view of one or more camera sensors of the computer system to track one or more objects (e.g., to keep one or more users in a visible portion of the field of view). In some embodiments, when the individual object tracking mode is enabled, the computer system sends instructions (e.g., via wireless communication) for the mount to move to track one or more objects in the field of view of one or more camera sensors and / or move the computer system and change the field of view of one or more camera sensors of the computer system to keep one or more users in a visible portion of the field of view. In some embodiments, the movable mount is configured to move according to instructions from the computer system. In some embodiments, operating the video capture user interface without enabling the individual subject tracking operational mode includes operating the video capture user interface according to a second subject tracking mode that is different from the individual subject tracking mode (e.g., the second subject tracking mode is enabled and the individual subject tracking mode is not enabled). In some embodiments, operating the video capture user interface without enabling the individual subject tracking operational mode includes digitally altering (e.g., translating and / or zooming) the displayed portion of the field of one or more camera sensors without moving the mount.
[0216] In some embodiments, after capturing video using one or more camera sensors, the computer system receives an indication that the computer system is connected to a movable mount without the computer system being connected to the movable mount and without the individual object tracking operational mode being enabled. In some embodiments, in response to receiving the indication that the computer system is connected to the movable mount, the computer system enables the individual object tracking operational mode (e.g., as described with reference to FIG. 8G ) (e.g., tracking is automatically enabled when the computer system is connected to the movable mount after the computer system was previously operated, while the computer system is disconnected from the movable mount without using the individual object tracking mode). Automatically enabling the individual object tracking operational mode without the individual object tracking operational mode being enabled when the computer system is connected to the movable mount after the computer system previously captured video while not connected to the movable mount reduces the number of inputs required to transition from capturing video without the individual object tracking mode being enabled to capturing video with the individual object tracking mode enabled, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0217] In some embodiments, capturing video using one or more camera sensors according to an individual object tracking mode of operation includes capturing video using a first algorithm (e.g., as described with reference to FIGS. 8G-8P) (e.g., an algorithm including logic for tracking one object, such as by physically moving and / or zooming). In some embodiments, capturing video using one or more camera sensors without enabling an individual object tracking mode of operation includes capturing video using a second algorithm (e.g., as described with reference to FIGS. 8C-8F) (e.g., an algorithm that does not include logic for tracking an object, an algorithm that includes logic for tracking multiple objects, and / or an algorithm that includes logic for tracking one or more objects by digitally moving and / or zooming) that is different from the first algorithm (and an ISE that does not use the first algorithm). In some embodiments, the first algorithm and the second algorithm include different logic for tracking one or more objects at different speeds. In some embodiments, the first algorithm and the second algorithm include different logic for centering one or more objects within the field of view of the one or more camera sensors. In some embodiments, a first algorithm tracks one primary subject and a second algorithm tracks one or more subjects identified within the field of view of one or more camera sensors. In some embodiments, the first algorithm primarily tracks a first subject and tracks a second subject as an item of interest, while the second algorithm tracks the first subject and the second subject in the same manner.By using a first algorithm when capturing video according to the individual subject tracking operational mode and a second algorithm when capturing video without enabling the individual subject tracking operational mode, the computer system is able to use improved settings for capturing video and tracking subjects when available, thereby performing an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0218] In some embodiments, a first object (e.g., 840a) (e.g., a first person) and a second object (e.g., a second person) (e.g., 840b) are within the field of view of one or more camera sensors. In some embodiments, while capturing video with one or more camera sensors according to an individual object tracking mode of operation, in response to detecting movement of the first object (e.g., movement of first person 840a from the position of FIG. 8I to the position of FIG. 8J) (e.g., the first object moves away from the second object, such that the computer system cannot (or, in some embodiments, does not) modify the field of view of one or more camera sensors to include both the first object and the second object), the computer system tracks the movement of the first object (e.g., adjusts the field of view of one or more camera sensors to keep the first object within the field of view and / or within a portion (e.g., center) of the field of view). In some embodiments, the first object and the second object are within the field of view of one or more camera sensors, and the individual object tracking operational mode causes the field of view of the one or more camera sensors to change based on (e.g., correspondingly and / or in accordance with) the movement of the first subject without changing the field of view of the one or more camera sensors based on the movement of the second subject. In some embodiments, when the individual object tracking operational mode is disabled (e.g., the computer system is not operating according to the individual object tracking operational mode), the field of view of the one or more camera sensors does not change based on the movement of the first subject. Tracking the movement of the first object when detecting that the first person has moved enables the computer system to track the movement of the first object without requiring additional input from a user, and enables the computer system to track a particular object when there are two objects within the field of view, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform an action.
[0219] In some embodiments, while capturing video with one or more camera sensors according to an individual object tracking mode of operation, in accordance with a determination that the gaze of a first object (e.g., a first person) is directed toward (e.g., moved toward) an item of interest (e.g., a second person and / or an object such as a whiteboard) (e.g., the gaze of first person 840a toward the whiteboard shown in FIG. 8H and / or the gaze of first person 840a toward second person 840b shown in FIG. 8I), the computer system modifies the field of view (e.g., 814) of one or more camera sensors to include the item of interest (e.g., the whiteboard and / or second person 840b shown in FIG. 8I) (and / or, in some embodiments, such that the item of interest is in a predetermined portion (e.g., a central portion) of the field of view). In some embodiments, while the individual object tracking mode of operation is enabled, the computer system modifies the field of view of one or more camera sensors based on the gaze of the first person toward the item of interest so that the field of view includes the item of interest. In some embodiments, as a result of the computer system changing the field of view to include the item of interest, the subject is further from the center of the field of view and / or partially out of view of the field of view of one or more camera sensors than when the subject's gaze is not directed at the item of interest (e.g., at the edge of the field of view of one or more camera sensors). Automatically changing the field of view of the camera sensor(s) to include the item of interest pursuant to a determination that the first subject has gazed toward the item of interest reduces the number of inputs required to adjust the field of view, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0220] In some embodiments, in response to detecting movement of a first subject (e.g., a first person) (e.g., movement of first person 840a from the position of FIG. 8I to the position of FIG. 8J) while capturing video with one or more camera sensors according to an individual subject tracking mode of operation, the computer system changes the field of view of the one or more camera sensors to track the first subject without changing the zoom level of the field of view of the one or more camera sensors (e.g., without zooming in or out to increase or decrease the angular range). In some embodiments, while the individual subject tracking mode of operation is enabled, the computer system changes the field of view of the one or more camera sensors based on the movement of the first subject (e.g., the field of view of the one or more camera sensors shifts, translates, and / or pans to track the first subject) without changing the zoom level of the field of view of the one or more camera sensors based on the movement of a second subject (e.g., the field of view of the one or more camera sensors shifts, translates, and / or pans to track the first subject instead of zooming in or out). By changing the field of view of the camera sensor(s) to track the first subject in response to detecting that the first subject has moved without zooming out, the computer system is able to maintain the image quality and / or size of the first subject within the field of view while continuing to track the first subject, thereby performing an improved action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0221] In some embodiments, while capturing video with one or more camera sensors according to an individual object tracking mode of operation, pursuant to a determination that a first object (e.g., a first person) has moved outside the field of view of one or more camera sensors (e.g., first person 840a of FIG. 8K moves outside the field of view 814), the computer system modifies the field of view of the one or more camera sensors based on the trajectory (e.g., path, direction, and / or velocity) of the first object (e.g., the direction of movement of first person 840a from the first person's position in FIG. 8J to the first person's position in FIG. 8K) (e.g., the first object's last known path of movement and / or the first object's estimated future path of movement). In some embodiments, while the individual object tracking mode of operation is enabled, the computer system modifies the field of view of one or more camera sensors based on the first object's last known trajectory when the first object has moved outside the field of view of the one or more camera sensors (e.g., the computer system modifies the field of view of the camera sensors to follow the path of movement the first object was taking). Altering the field of view of the camera sensor(s) based on the trajectory of the first object pursuant to a determination that the first object has moved out of the field of view enables the computer system to attempt to reposition the object within the field of view, thereby performing an improved action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0222] In some embodiments, while capturing video with one or more camera sensors according to an individual object tracking mode of operation, in accordance with a determination that a first object was outside the field of view of one or more camera sensors for a predetermined period of time (e.g., first person 840a is outside field of view 814 of FIG. 8M for a predetermined period of time), the computer system maintains (e.g., stops changing) the field of view of one or more camera sensors (e.g., field of view 814 of FIG. 8M). In some embodiments, while the individual tracking mode of operation is enabled, the computer system maintains (e.g., stops changing) the field of view of one or more camera sensors in accordance with a determination that a first object was outside the field of view of one or more camera sensors for a predetermined period of time (e.g., if the first object is not found within a predetermined period of time, the individual object tracking mode of operation times out). In some embodiments, while the individual object tracking mode of operation is enabled, the computer system changes the field of view to a home position and maintains the home position when the first object is lost. In some embodiments, while the individual object tracking mode of operation is enabled, the computer system maintains the field of view when the first object was lost. Maintaining the field of view of the camera sensor(s) after the first object has been out of view for a predetermined period of time allows the computer system to conserve resources, thereby performing an improved action when a set of conditions is met without requiring further user input, rather than continuing to attempt to locate the first object when it becomes unlikely that the computer system will be able to locate the first object, reducing the number of inputs required to perform the action.
[0223] In some embodiments, the computer system includes two or more camera sensors (e.g., 818 and 820) (e.g., a camera sensor on the front of the computer system and a camera sensor on the back of the computer system). In some embodiments, the computer system captures video using a first camera sensor of the two or more camera sensors (e.g., using a camera sensor on the front of the computer system) according to an individual object tracking mode of operation that includes tracking movement of a first object (e.g., a first person) based on video captured by the first camera sensor (e.g., 818 or 820). In some embodiments, following a determination that the first subject is outside the field of view of a first camera sensor of the two or more camera sensors (e.g., outside the field of view of a camera sensor on the front of the computer system) and the first subject is within the field of view of a second camera sensor (e.g., 820 or 818) of the two or more camera sensors (e.g., within the field of view of a camera sensor on the back of the computer system), the computer system captures video using the second camera sensor of the two or more camera sensors (e.g., using the camera sensor on the back of the computer system) according to a separate subject tracking operational mode (e.g., to continue tracking the first person based on video captured by the second camera sensor). Capturing video with the second camera after the first subject has been outside the field of view of the first camera for a predetermined period of time allows the computer system to switch camera sensors rather than continuing to attempt to locate the first subject with the first camera when it becomes unlikely that the computer system will be able to do so, thereby performing an improved operation when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the operation.
[0224] In some embodiments, the computer system captures video using one or more camera sensors according to an individual object tracking operational mode that includes tracking the movement of a first object (e.g., first person) according to a determination that the first object is a first person (e.g., the first person) detected within the field of view of the one or more camera sensors when the individual object tracking operational mode is enabled (e.g., in FIG. 8G , first person 840a is detected within the field of view 814 when the individual object tracking operational mode is enabled). By tracking the movement of the first object based on the first subject being the first person detected within the field of view, the computer system can automatically identify the object to track, thereby performing an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0225] In some embodiments, the computer system captures video using one or more camera sensors according to a separate object tracking mode of operation that includes tracking the movement of a first subject (e.g., a first person), where the first subject is tracked (or, in some embodiments, selected for tracking) (at least in part) based on detection of the first subject's face (e.g., detection of one or more facial features such as eyes, nose, mouth, and / or facial shape) when the separate object tracking mode of operation is enabled (e.g., tracking the first subject's movement is performed pursuant to a determination that the first subject's face has been detected). In some embodiments, if the first subject's face is not detected, the first subject is not tracked. Tracking the first subject's movement based on face detection enables the computer system to automatically identify relevant subjects to track, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0226] In some embodiments, the computer system captures video using one or more camera sensors according to a separate object tracking operational mode that includes tracking the movement of a first subject (e.g., a first person), and the first subject is tracked (or, in some embodiments, selected for tracking) (at least in part) based on detection of the first subject's body (e.g., detection of the torso and / or one or more limbs) when the separate object tracking operational mode is enabled (e.g., tracking the movement of the first subject is performed pursuant to a determination that the first subject's body has been detected). In some embodiments, if the first subject's body is not detected, the first subject is not tracked. Tracking the movement of the first subject based on body detection enables the computer system to automatically identify relevant subjects to track, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0227] In some embodiments, the computer system captures video using one or more camera sensors according to a separate object tracking mode of operation, which includes tracking the movement of a first subject (e.g., a first person). In some embodiments, the first subject is tracked (or, in some embodiments, selected for tracking) (at least in part) based on detection of one or more facial features (e.g., eyes, nose, mouth, and / or facial shape) of a known subject (e.g., a primary user of the computer system, a contact, and / or a person previously identified by the computer system) when the separate object tracking mode of operation is enabled (e.g., tracking the movement of the first subject is performed pursuant to a determination that one or more facial features of the known subject have been detected). In some embodiments, if one or more facial features of the known subject are not detected, the first subject is not tracked. Tracking the movement of the first subject based on detection of one or more facial features of the known subject enables the computer system to automatically identify relevant subjects to track, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0228] In some embodiments, a computer system captures video using one or more camera sensors according to an individual object tracking mode of operation that includes tracking the movement of a first object (e.g., a first person). In some embodiments, the first object is tracked (or, in some embodiments, selected for tracking) (at least in part) based on the first object being the person closest to the center of the field of view of the one or more camera sensors when the individual object tracking mode of operation is enabled. Tracking the movement of the first object based on the first object being the person closest to the center of the field of view enables the computer system to automatically identify relevant objects to track, thereby performing an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0229] In some embodiments, a computer system captures video using one or more camera sensors according to an individual object tracking mode of operation, which includes tracking the movement of a first object (e.g., a first person). In some embodiments, the first object is tracked (or, in some embodiments, selected for tracking) (at least in part) based on the first subject being the person closest to the center of the field of view of the one or more camera sensors and looking at (e.g., facing and / or making eye contact with) the one or more camera sensors when the individual object tracking mode of operation is enabled. Tracking the movement of the first subject based on the first subject being the person closest to the center of the field of view and looking at one or more camera sensors enables the computer system to automatically identify relevant objects to track, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0230] In some embodiments, a first object (e.g., a first person) and a second object (e.g., a second person) are within the field of view of one or more camera sensors. In some embodiments, the computer system captures video using the one or more camera sensors according to a respective object-tracking mode of operation, which includes tracking the first object (e.g., tracking the movement of the first object). In some embodiments, after tracking a first subject, following a determination that the first subject is outside (e.g., has moved) the field of view of one or more camera sensors for a predetermined period of time (e.g., 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 15 seconds, 60 seconds, or 120 seconds), the computer system changes the field of view of one or more camera sensors based on the position of a second subject (e.g., field of view 814 in FIG. 8N based on the position of second person 840b) (e.g., adjusts the field of view to center on the second subject and / or switches from tracking the first subject to tracking the second subject based on the first subject being outside the field of view of one or more camera sensors for the predetermined period of time). By changing the field of view of the camera sensor(s) based on the position of the second subject, the computer system can automatically transition to tracking the second subject after the first subject has been out of the field of view for a predetermined period of time, thereby performing an improved action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0231] In some embodiments, the field of view of one or more camera sensors is altered based on a position associated with the second subject, in accordance with (at least in part) a determination that the second subject is the person closest to the center of the field of view of the one or more camera sensors at the time the first subject is determined to be outside the field of view of the one or more camera sensors for a predetermined period of time (e.g., if the first subject 840a leaves the field of view 814 shown in FIG. 8I, the second subject is determined to be the second person 840b because the second person 840b is the subject closest to the center of the field of view 814 at the time the first person 840a is determined to be outside the field of view 814 for a predetermined period of time, and as a result, the computer system 800 tracks the second person 840b, as shown in FIG. 8N). By tracking the movement of the second subject based on the second subject being the person closest to the center of the field of view, the computer system is able to automatically identify the second subject to track when the first subject has been out of the field of view for a predetermined period of time, thereby performing an action when a set of conditions are met without requiring further user input, reducing the number of inputs required to perform the action.
[0232] In some embodiments, the field of view of one or more camera sensors is altered based on a position associated with the second subject in accordance with (e.g., based at least in part on) a determination that the second subject is a person previously identified within the field of view of one or more camera sensors (e.g., second subject 840b of FIG. 8N was previously identified within field of view 814 of FIG. 8I) (e.g., the first person looked at the second subject). In some embodiments, the second subject was previously identified because the second subject looked at (e.g., faced toward and / or made eye contact with) one or more camera sensors. Tracking the movement of the second subject based on the second subject being a person previously identified within the field of view enables a computer system to automatically identify a second subject to track when the first subject has been out of the field of view for a predetermined period of time, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0233] In some embodiments, the position associated with the second subject is the last known location of the second subject (e.g., the position of second person 840b in FIG. 8I was previously known, and therefore it is the position associated with second person 840b in FIG. 8N). Changing the field of view of the camera sensor(s) to the last known location of the second subject allows the computer system to automatically attempt to locate the second subject in the field of view after the first subject has been out of the field of view for a predetermined period of time, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the action.
[0234] In some embodiments, after changing the field of view of one or more camera sensors based on the position of the second subject, in accordance with a determination that the second subject is outside (e.g., has moved) the field of view of one or more camera sensors for a predetermined period of time (e.g., 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 60 seconds, or 120 seconds), the computer system changes the field of view of one or more camera sensors based on the position of the first subject (e.g., adjusts the field of view to center on the first subject and / or switches from tracking the second subject to tracking the first subject based on the second subject being outside the field of view of the one or more camera sensors for the predetermined period of time). Changing the field of view of the camera sensor(s) based on the position of the first subject enables the computer system to automatically transition to tracking the first subject after the second subject has been out of the field of view for the predetermined period of time, thereby performing improved operations when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the operations.
[0235] In some embodiments, the computer system captures video using one or more camera sensors according to a discrete object-tracking operational mode, which includes tracking a first object. In some embodiments, following a determination that the moveable mount has reached a travel limit (e.g., a rotational position of moveable mount 804 in FIG. 8M ) (e.g., a minimum or maximum position limit, and / or the moveable mount is physically unable to move any further), the computer system stops tracking the first object (e.g., optionally stops modifying the field of view of one or more camera sensors to track the first object, by maintaining the field of view of one or more camera sensors, by modifying the field of view of one or more camera sensors to track a different object, or by modifying the field of view of one or more camera sensors to a different position selected based on other criteria, such as a default or neutral position). In some embodiments, the computer system stops tracking the first object (e.g., optionally stops modifying the field of view of one or more camera sensors to track the first object, by maintaining the field of view of one or more camera sensors, by modifying the field of view of one or more camera sensors to track a different object, or by modifying the field of view of one or more camera sensors to a different position selected based on other criteria, such as a default or neutral position). While the mode is enabled, the computer system maintains (e.g., stops changing) the field of view of one or more camera sensors when the movable mount meets a travel limit threshold. In some embodiments, when the movable mount reaches its travel limit and can no longer mechanically change the field of view of one or more camera sensors, the computer system continues to track the first object by digitally changing the field of view of one or more camera sensors. Ceasing to track the first object when the movable mount reaches its travel limit allows the computer system to automatically cease tracking when tracking is no longer possible, thereby performing an action when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform an action.
[0236] In some embodiments, while capturing video using one or more camera sensors of the computer system according to an individual object tracking mode of operation, in response to a determination that one or more characteristics (e.g., distance, amount, and / or speed) of the individual object's movement meets a first criterion (e.g., a predetermined distance threshold, amount threshold, and / or speed threshold), the computer system changes the displayed field of view of the one or more camera sensors. In some embodiments, while capturing video using one or more camera sensors of the computer system according to an individual object tracking mode of operation, in response to a determination that one or more characteristics of the individual object's movement does not meet a first criterion, the computer system maintains (e.g., does not change) the displayed field of view of the one or more camera sensors. In some embodiments, the change in the displayed field of view is proportional to the movement of the individual object (e.g., the displayed field of view changes quickly if the individual object moves quickly). In some embodiments, the displayed field of view is maintained (e.g., not changed) or changed slowly based on small movements of the individual subject (e.g., making hand gestures and / or moving limbs). In some embodiments, the displayed field of view of one or more camera sensors is rapidly altered based on large and / or substantial movement of individual subjects (e.g., movement from one location to another and / or movement throughout space). In some embodiments, the displayed field of view is maintained (e.g., not altered) or altered slightly based on small movements of individual subjects (e.g., making hand gestures and / or moving limbs). In some embodiments, the displayed field of view of one or more camera sensors is substantially altered based on large and / or substantial movement of individual subjects (e.g., movement from one location to another and / or movement throughout space).By altering the displayed field of view based on one or more characteristics of movement by an individual subject, the computer system is able to efficiently track individual subjects without requiring additional input from a user, thereby performing improved actions when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform an action.
[0237] In some embodiments, while capturing video using one or more camera sensors of the computer system according to an individual object tracking mode of operation, and after modifying the displayed field of view of the one or more camera sensors according to a determination that one or more characteristics (e.g., distance, amount, and / or speed) of the individual object's movement meets a first criterion (e.g., a predetermined distance threshold, amount threshold, and / or speed threshold), the computer system modifies the displayed field of view of the one or more camera sensors according to a determination that one or more characteristics (e.g., distance, amount, and / or speed) of the individual object's movement meets a second predetermined criterion (e.g., a second predetermined distance threshold, amount threshold, and / or speed threshold). In some embodiments, while capturing video using one or more camera sensors of the computer system according to an individual object tracking mode of operation, and after changing the displayed field of view of the one or more camera sensors according to a determination that one or more characteristics (e.g., distance, amount, and / or speed) of the individual object's movement satisfy a first criterion (e.g., a predetermined distance threshold, amount threshold, and / or speed threshold), the computer system maintains (e.g., does not change) the displayed field of view of the one or more camera sensors according to a determination that the one or more characteristics of the individual object's movement do not satisfy a second predetermined criterion. Changing the displayed field of view according to a determination that the individual object's movement exceeds a predetermined threshold and maintaining the displayed field of view according to a determination that the individual object's movement is below a predetermined threshold allows the computer system to track individual objects more efficiently and without requiring additional input from a user, thereby performing improved actions when a set of conditions is met without requiring further user input and reducing the number of inputs required to perform the actions.
[0238] In some embodiments, in accordance with determining that the individual object tracking operational mode has been enabled, the computer system causes output of an indication that the individual object tracking operational mode has been enabled (e.g., causes activation of an LED indicator on the computer system and / or on the moveable mount and / or causes the computer system to transmit data to the moveable mount indicating that the individual object tracking operational mode has been enabled). Triggering output of an indication in accordance with determining that the individual object tracking operational mode has been enabled provides an indication to the user that the individual object tracking operational mode has been enabled, thereby providing improved visual feedback to the user.
[0239] In some embodiments, causing the output of an indication that the individual object tracking operational mode is enabled includes causing the output of an indication having a first characteristic (e.g., a flashing and / or blinking LED indicator) in accordance with a determination that the individual object tracking operational mode is active (e.g., the individual object tracking operational mode is enabled and is actively being used to track an individual object). Triggering the output of the indication having the first characteristic in accordance with a determination that the individual object tracking operational mode is active provides an indication to a user that the individual object tracking operational mode is active, thereby providing enhanced visual feedback to the user.
[0240] In some embodiments, causing the output of an indication that the individual object tracking operational mode is enabled includes causing the output of an indication having a second characteristic (e.g., a solid-state LED indicator) different from the first characteristic in accordance with a determination that the individual object tracking operational mode is inactive (e.g., the individual object tracking operational mode is enabled and not actively being used to track an individual object). Triggering the output of the indication having the second characteristic in accordance with a determination that the individual object tracking operational mode is inactive provides an indication to a user that the individual object tracking operational mode is inactive, thereby providing improved visual feedback to the user.
[0241] 10A-10H illustrate an exemplary technique for animation performed using a moveable mount, according to some embodiments. The animations and user interfaces in these figures are used to illustrate processes described below, including the process of FIG.
[0242] 10A shows device 1000 and movable mount 1002. In FIG. 10A, device 1000 is a smartphone having a display 1004. In some embodiments, device 1000 is a tablet computer, a laptop computer, a desktop computer, a smartwatch, a camera device, and / or an electronic control system. In some embodiments, computer system 1000 is computer system 600 and / or 800, and movable mount 1002 is movable mount 608 or movable mount 804. As shown in FIG. 10A, device 1000 is initially placed on a table.
[0243] 10B , a user initiates a process associated with capturing video, such as placing device 1000 on moveable mount 1002. In some embodiments, the user places device 1000 on moveable mount 1002 after launching a camera application, such that device 1000 is running the camera application when placed on moveable mount 1002. When a user initially connects device 1000 onto moveable mount 1002, device 1000 is not in a particular orientation.
[0244] 10C , device 1000 is connected to moveable mount 1002, and device 1000 and / or moveable mount 1002 receive an indication that a process associated with capturing video has begun, such as an indication that a camera application is running. In response to receiving the indication, moveable mount 1002 performs an animation. In the example shown in FIG. 10C , moveable mount 1002 moves device 1000 so that device 1000 is oriented toward the user. For example, depending on the original orientation in which device 1000 was placed on moveable mount 1002, moveable mount 1002 is raised, lowered, and / or rotated (e.g., by device 1000 or another computer system in communication with device 1000 and / or moveable mount 1002) so that device 1000 is oriented toward the user. In some embodiments, device 1000 is oriented toward the user in a landscape orientation, as shown in FIG. 10C . In some embodiments, device 1000 is oriented toward the user in a portrait orientation.
[0245] The movable mount 1002 can perform different animations for different events. In FIG. 10C , the event includes an indication of the start of the process of capturing video, such as an indication that the device 1000 is connected to the movable mount 1002 and / or that a camera application is running, and the animation includes moving the device 1000 toward the user. In some embodiments, the event includes an indication of the end of the process of capturing video, such as an indication that the device 1000 has been disconnected from the movable mount 1002, that the device 1000 has entered a low power mode, and / or that the camera application is no longer running. In this case, the resulting animation includes moving the device 1000 so that the device 1000 is oriented downwards.
[0246] 10D, device 1000 enters a low power state. Because device 1000 was previously oriented toward the user, device 1000 is oriented toward the user when device 1000 enters the low power state. For example, as shown in FIG. 10D, display 1004 of device 1000 is dimmed to conserve power.
[0247] 10E, in response to receiving an indication that device 1000 has entered a low power state, movable mount 1002 moves device 1000 so that device 1000 is facing downward. As shown in FIG. 10E, movable mount 1002 moves device 1000 so that device 1000 is facing the table.
[0248] 10F, a user performs an action, such as speaking, that transitions device 1000 from a low power mode to a normal mode. For example, the user speaks, "Hey! Turn on the camera." As a result, device 1000 changes from a low power mode to a normal operating mode, and device 1000 displays camera application user interface 1006. In some embodiments, device 1000 changes from a low power mode to a normal operating mode and displays camera application user interface 1006 in response to one or more inputs by the user.
[0249] 10G, in response to receiving an indication that device 1000 has transitioned from low power mode to normal mode, movable mount 1002 moves device 1000 so that device 1000 is oriented toward the user. In some embodiments, device 1000 is oriented toward the user based on the user's last known location. For example, FIG. 10G shows device 1000 oriented in the position where the user was previously located, such as in FIG. 10C.
[0250] In some embodiments, the movable mount 1002 orients the device 1000 toward the user based on the location of the audio, such as the location of the user's voice when commanding the device 1000 to transition from the low power mode to the normal mode. Figure 10H shows the movable mount 1002 orienting the device 1000 in a different orientation than before based on the user's voice being projected from a different location.
[0251] 11 is a flow diagram illustrating a method for moving a device connected to a moveable mount using a computer system, according to some embodiments. Method 1100 is performed in a computer system (e.g., 100, 300, 500, 600, 800, 1000, smartphone, tablet computer, laptop computer, desktop computer, smartwatch, camera device, and / or electronic control system) in communication with a moveable mount (e.g., 1002) (e.g., a mount configured to physically hold or support a computer system and / or device via gravity, magnetic mechanisms, and / or mechanical mechanisms). Some operations of method 1100 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0252] As described below, method 1100 provides an intuitive way to move a device connected to a moveable mount. This method reduces the cognitive burden on a user of moving a device connected to a moveable mount, thereby resulting in a more effective human-machine interface. In the case of battery-operated computing devices, allowing a user to move a device connected to a moveable mount faster and more efficiently conserves power and increases the time between battery charges.
[0253] In some embodiments, a computer system receives (1102) (e.g., via a sensor of the electronic device and / or via a signal from the electronic device) an indication of an event associated with capturing video (e.g., an indication that device 1000 is connected to moveable mount 1002 of FIG. 10B ), where the video is captured by a device (e.g., 1000) (e.g., a smartphone, one or more camera sensors, a tablet computer, and / or a smartwatch) connected to (e.g., physically connected to, physically attached to, and / or communicating via a wired or wireless connection with) the moveable mount, and the device connected to the moveable mount is moved via the moveable mount to track (e.g., track the movement of first person 840a of FIGS. 8A-8P ) one or more objects (e.g., one or more users and / or one or more objects of interest) while the video is being captured. In some embodiments, device 1000 is also a computer system. In some embodiments, the computer system receives an indication of an event not associated with capturing video (e.g., an event associated with playing back video without capturing video). In some embodiments, the computer system is (or is included in) a device connected to a moveable mount. In some embodiments, the device is moved such that the visible field of view of the video changes to follow a user moving from one location to another. In some embodiments, the device has a rechargeable battery, and when the device is connected to the moveable mount, the moveable mount charges the battery (e.g., via wireless charging).
[0254] In some embodiments, in response to receiving an indication of an event, the computer system causes the moveable mount to perform (1104) a sequence of one or more mechanical movements to move a device connected to the moveable mount (e.g., lifting the device as shown in FIGS. 10B-10C ), the sequence of one or more mechanical movements being associated with the event. In some embodiments, the device is a computer system. In some embodiments, performing the sequence of one or more mechanical movements to move the device includes changing the orientation of the device (e.g., raising, lowering, or pointing toward the user). In some embodiments, in response to receiving an indication of an event, the computer system causes the device to perform an animation, for example, by emitting a sound and / or vibrating (e.g., vibrating in the rhythm of music). In response to receiving an indication of an event, causing the moveable mount to perform a sequence of mechanical movements provides an indication to the user that the event associated with the sequence of mechanical movements has occurred, thereby providing the user with improved visual feedback.
[0255] In some embodiments, causing the movable mount to perform the sequence of one or more mechanical movements includes causing the movable mount to perform a first sequence of one or more mechanical movements (e.g., raising, as shown in FIG. 10C ) in accordance with a determination that the event corresponds to a first event. In some embodiments, causing the movable mount to perform the sequence of one or more mechanical movements includes causing the movable mount to perform a second sequence of one or more mechanical movements (e.g., lowering, as shown in FIG. 10D ) in accordance with a determination that the event corresponds to a second event, wherein the second sequence of one or more mechanical movements is different from the first sequence of one or more mechanical movements (e.g., the first sequence of one or more mechanical movements and the second sequence of one or more mechanical movements include movements in different directions, at different speeds, with different magnitudes, and / or with different patterns). In some embodiments, the sequence of one or more mechanical movements is event-based (e.g., different for different events). Having the movable mount perform a first sequence of mechanical movements in response to receiving an indication of a first event and a second sequence of mechanical movements in response to receiving an indication of a second event provides an indication to the user of which event occurred, thereby providing improved visual feedback to the user.
[0256] In some embodiments, the device includes a camera sensor. In some embodiments, when a sequence of one or more mechanical movements is completed (e.g., at the end of a sequence of one or more mechanical movements), the camera sensor is oriented downward (e.g., the camera sensor on the front of device 1000 is oriented downward in FIG. 10E ) (e.g., downward relative to the direction of gravity, downward relative to the orientation or configuration of the movable mount, oriented away from the user, pointing toward a table, and / or pointing toward the floor). Orienting the camera sensor downward when a sequence of one or more mechanical movements is completed provides an indication to the user that the sequence of mechanical movements is complete, thereby providing improved visual feedback to the user. If the sequence of one or more mechanical movements corresponds to an event related to video recording, orienting the camera sensor downward when a sequence of one or more mechanical movements is completed provides the user with increased privacy by clearly indicating that video recording has stopped.
[0257] In some embodiments, the indication of the event includes an indication of the start of a process of capturing video with the device (e.g., as described with reference to FIG. 10B ) (e.g., a sequence of one or more mechanical movements is performed when the process begins). In some embodiments, the indication of the event includes an indication of the connection of a connected device to the moveable mount and / or the connected device transitioning from a low power mode to a normal mode. Causing the moveable mount to perform a sequence of mechanical movements in response to receiving an indication of the start of a process of capturing video with the device provides an indication to the user that the process of capturing video has begun, thereby providing improved visual feedback to the user.
[0258] In some embodiments, the connected device comprises a display generating component. In some embodiments, the sequence of one or more mechanical movements includes moving the connected device so that its camera sensor (and / or its display) is oriented upward (e.g., the camera sensor on the front of device 1000 is oriented upward in FIG. 10D ) (e.g., the display is oriented toward the user, such as portrait or landscape orientation relative to the user). In response to obtaining an indication of the start of the process of capturing video, moving the device on the movable mount so that the display is oriented upward provides the user with an indication that the process of capturing video has started, thereby providing improved visual feedback to the user.
[0259] In some embodiments, the indication of the event includes an indication of an end of a process of capturing video with the device (e.g., one or more sequences of mechanical movements are performed when the process ends). In some embodiments, the indication of the event includes an indication of a disconnection from the moveable mount and / or a connected device transitioning from a normal mode to a low power mode. Having the moveable mount perform a sequence of mechanical movements in response to receiving an indication of an end of a process of capturing video with the device provides an indication to the user that the process of capturing video has ended, thereby providing improved visual feedback to the user. Having the moveable mount perform a sequence of mechanical movements in response to receiving an indication of an end of a process of capturing video with the device also provides improved privacy to the user by clearly indicating that the process of capturing video has ended.
[0260] In some embodiments, the device comprises a display generating component. In some embodiments, the sequence of one or more mechanical movements includes moving the device so that its camera sensor (and / or its display) is oriented downwards (e.g., so that the camera sensor on the front of device 1000 is oriented downwards in FIG. 10E ) (e.g., downwards relative to the direction of gravity, downwards relative to the orientation or configuration of the moveable mount, oriented away from the user, pointing toward the table, and / or pointing toward the floor). In response to obtaining an indication of the end of the video capturing process, moving the device to the moveable mount so that the display is oriented downwards provides the user with an indication that the video capturing process has ended, thereby providing improved visual feedback to the user. In response to obtaining an indication of the end of the video capturing process, moving the device to the moveable mount so that the display is oriented downwards also provides the user with an improved privacy benefit by clearly indicating that the video capturing process has ended.
[0261] In some embodiments, the indication of the event includes an indication that the device has transitioned from a low-power mode (e.g., a sleep mode, a mode in which the device's display is turned off or dimmed, and / or a predetermined set of operations is stopped, paused, or updated at a slower rate than during normal operation) to a normal mode (e.g., as described with reference to FIGS. 10E-10G) (e.g., a normal operating state, a non-low-power mode, a mode in which the device's display is not on and / or dimmed, and / or a mode in which the predetermined set of operations is being performed according to a standard operating mode). In some embodiments, the event includes a user touching or using the device. In response to receiving an indication that the device has transitioned from the low-power mode to the normal mode, causing the moveable mount to perform a sequence of mechanical movements provides the user with an indication that the device has changed modes, thereby providing improved visual feedback to the user.
[0262] In some embodiments, the device includes a display generating component. In some embodiments, the sequence of one or more mechanical movements includes moving the device (e.g., portrait to the user or landscape to the user) so that its camera sensor (and / or its display) is oriented toward the user (e.g., so that a camera sensor on the front of device 1000 is oriented toward the user). In response to receiving an indication that the device has transitioned from a low power mode to a normal mode, orienting the moveable mount toward the user provides an indication to the user that the device has changed modes, thereby providing improved visual feedback to the user.
[0263] In some embodiments, the device's camera sensor (and / or the device's display) is oriented toward the user based on the location of the audio (e.g., based on the location of the sound, "Hey! Turn on your camera!" in FIGS. 10F and 10H ) (e.g., based on the location of the subject's voice). In some embodiments, the event includes detection of the audio (e.g., a sequence of one or more mechanical movements is performed in response to detecting the audio). In some embodiments, in accordance with a determination that the source of the audio is at a first location, the movable mount orients the device to the first location, and in accordance with a determination that the source of the audio is at a second location different from the first location, the movable mount orients the device to the second location. By orienting the movable mount to the user based on the location of the audio, the computer system can identify the user's location and thereby perform an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0264] In some embodiments, the device's camera sensor (and / or the device's display) is oriented toward the user based on the user's last known location (e.g., the orientation of the camera sensor of device 1000 in FIG. 10G is based on the person's location in FIG. 10C). In some embodiments, in accordance with a determination that the user's last known location is a first location, the movable mount orients the device to the first location, and in accordance with a determination that the last known location is a second location different from the first location, the movable mount orients the device to the second location. By orienting the movable mount to the user based on the user's last known location, the computer system can identify the user's location and thereby perform an action when a set of conditions is met without requiring further user input, reducing the number of inputs required to perform the action.
[0265] In some embodiments, the indication of the event includes an indication that the device is capturing video (e.g., recording video and / or sharing video in a video call). In some embodiments, the device includes a display generating component. In some embodiments, the sequence of one or more mechanical movements includes moving the device (e.g., moving device 1000 according to the individual object tracking operational modes shown in FIGS. 8G-8P) so that the display generating component of the device is oriented toward the user (e.g., portrait to the user or landscape to the user). In response to obtaining an indication that the device is capturing video, orienting the moveable mount toward the user provides the user with an indication that the device is capturing video and allows the user to view recorded content and / or information about the video call (e.g., video of one or more other participants in the video call), thereby providing improved visual feedback to the user.
[0266] The foregoing has been described with reference to specific embodiments for purposes of explanation. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments have been chosen and described to best explain the principles of the technology and its practical applications so that others skilled in the art can best utilize the technology and various embodiments with various modifications as suited to the particular applications intended.
[0267] Although the present disclosure and examples have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will be apparent to those skilled in the art, and such changes and modifications are to be understood as being included within the scope of the present disclosure and examples, as defined by the claims.
[0268] As mentioned above, one aspect of the present technology is the collection and use of data available from a variety of sources. This disclosure contemplates that, in some cases, this collected data may include personal information data that uniquely identifies a particular person or that can be used to contact or locate a particular person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, social network IDs, home addresses, data or records regarding a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), birth date, or any other identifying or personal information.
[0269] This disclosure recognizes that the use of such personal information data in the present technology can be used to the benefit of the user. For example, health and fitness data can be used to provide insight into the user's overall wellness, or can be used as proactive feedback to individuals using the technology in pursuit of wellness goals.
[0270] This disclosure contemplates that entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will adhere to robust privacy policies and / or privacy practices. Specifically, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements for maintaining the strict confidentiality of personal information data. Such policies should be easily accessible to users and should be updated as data collection and / or use changes. Personal information from users should be collected for the entity's lawful and legitimate use and should not be shared or sold except for those lawful uses. Furthermore, such collection / sharing should be carried out only after the user's informed consent is obtained. Furthermore, such entities should consider taking all necessary measures to protect and secure access to such personal information data and to ensure that others with access to the personal information data adhere to their privacy policies and procedures. Furthermore, such entities may be able to undergo third-party assessments to demonstrate their adherence to widely accepted privacy policies and practices. Furthermore, policies and practices should be tailored to the specific types of personal data collected and / or accessed and should comply with applicable laws and standards, including jurisdiction-specific considerations. For example, in the United States, collection of or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA). Meanwhile, health data in other countries may be subject to other regulations and policies and should be addressed accordingly. Therefore, different privacy practices should be maintained in each country with respect to different types of personal data.
[0271] Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which a user selectively blocks use of or access to personal information data. That is, the present disclosure contemplates that hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, the present technology may be configured to allow a user to select "opt-in" or "opt-out" of participating in the collection of personal information data during service registration or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notice regarding the access or use of personal information. For example, the user may be notified upon downloading an app that will access the user's personal information data, and then again immediately before the app accesses the user's personal information data.
[0272] Furthermore, it is the intent of this disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Risk can be minimized by limiting data collection and deleting data when it is no longer needed. Additionally, where applicable in certain health-related applications, data anonymization can be used to protect user privacy. Anonymization can be facilitated, where appropriate, by removing certain identifiers (e.g., date of birth, etc.), controlling the amount or specificity of data stored (e.g., collecting location data at a city level rather than an address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods.
[0273] Thus, while this disclosure broadly encompasses the use of personal information data to implement one or more various disclosed embodiments, this disclosure also contemplates that the various embodiments may be implemented without requiring access to such personal information data. That is, various embodiments of the technology are not rendered inoperable by the absence of all or part of such personal information data. For example, a minimal amount of personal information, such as non-personal information data or content requested by a device associated with a user, other available non-personal information, or publicly available information may be used.
Claims
1. 1. A method comprising:
1. A computer system in communication with two or more camera sensors and one or more input devices, comprising: Detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; In response to detecting the request to capture video, Initiating a process of capturing video using a first camera sensor of the two or more camera sensors in accordance with determining that the computer system is connected to a moveable mount; and initiating a process of capturing video using a second camera sensor of the two or more camera sensors, different from the first camera sensor, in accordance with a determination that the computer system is not connected to the movable mount.
2. The method of claim 1 , wherein the first camera sensor has a narrower field of view than the second camera sensor.
3. The method of claim 1 or 2, wherein the first camera sensor has a higher image quality than the second camera sensor.
4. Detecting that the computer system is attached to the movable mount while individual object tracking mode is disabled; 4. The method of claim 1, further comprising: enabling the individual object tracking operational mode in response to detecting that the computer system is connected to the moveable mount.
5. The method of claim 1 , further comprising disabling a separate object tracking operational mode in accordance with a determination that the computer system has been detached from the movable mount.
6. detecting a change in the spatial arrangement of one or more objects detected by the one or more camera sensors; 6. The method of claim 1, further comprising: in response to detecting the change in spatial arrangement of the one or more objects, modifying a field of view of the one or more camera sensors to track one or more of the objects based on the change in spatial arrangement of the one or more objects.
7. modifying the field of view of the one or more camera sensors to track one or more of the objects based on the change in spatial location of the one or more objects; The method of claim 6 , comprising mechanically altering the field of view of the one or more camera sensors in accordance with a determination that the first camera sensor is being used to capture video.
8. modifying the field of view of the one or more camera sensors to track one or more of the objects based on the change in spatial location of the one or more objects; 8. The method of claim 6 or 7, comprising digitally altering the field of view of the one or more camera sensors in accordance with a determination that the second camera sensor is being used to capture video.
9. 9. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs including instructions for performing the method of any one of claims 1 to 8.
10. 1. A computer system configured to communicate with two or more camera sensors and one or more input devices, comprising: one or more processors; and a memory storing one or more programs configured to be executed by said one or more processors, said one or more programs including instructions for performing the method of any one of claims 1 to 8.
11. 1. A computer system configured to communicate with two or more camera sensors and one or more input devices, comprising: A computer system comprising means for carrying out the method according to any one of claims 1 to 8.
12. 9. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs including instructions for performing the method of any one of claims 1 to 8.
13. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs comprising: Detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; In response to detecting the request to capture video, In response to a determination that the computer system is connected to a moveable mount, initiate a process of capturing video using a first camera sensor of the two or more camera sensors; A non-transitory computer-readable storage medium comprising instructions for initiating a process of capturing video using a second camera sensor, different from the first camera sensor, of the two or more camera sensors in accordance with a determination that the computer system is not connected to the movable mount.
14. 1. A computer system configured to communicate with two or more camera sensors and one or more input devices, comprising: one or more processors; a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: Detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; In response to detecting the request to capture video, In response to a determination that the computer system is connected to a moveable mount, initiate a process of capturing video using a first camera sensor of the two or more camera sensors; a computer system including instructions to initiate a process of capturing video using a second camera sensor different from the first camera sensor of the two or more camera sensors in accordance with a determination that the computer system is not connected to the movable mount;
15. 1. A computer system configured to communicate with two or more camera sensors and one or more input devices, comprising: means for detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; In response to detecting the request to capture video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using a first camera sensor of the two or more camera sensors; means for initiating a process of capturing video using a second camera sensor of the two or more camera sensors, different from the first camera sensor, in accordance with a determination that the computer system is not connected to the movable mount.
16. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with two or more camera sensors and one or more input devices, the one or more programs comprising: Detecting, via the one or more input devices, a request to capture video using a field of view of the one or more camera sensors that changes based on movement of one or more objects within the field of view of the one or more camera sensors; In response to detecting the request to capture video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using a first camera sensor of the two or more camera sensors; a computer program product comprising instructions for initiating a process of capturing video using a second camera sensor, different from the first camera sensor, of the two or more camera sensors in accordance with a determination that the computer system is not connected to the movable mount;
17. 1. A method comprising:
1. A computer system having one or more camera sensors, Detecting a request to capture video using the one or more camera sensors of the computer system; In response to detecting the request to capture the video, In response to determining that the computer system is connected to a moveable mount, initiating a process of capturing video using the one or more camera sensors of the computer system in accordance with a respective object tracking mode of operation; and initiating a process of capturing video using the one or more camera sensors without enabling the individual object tracking operational mode in accordance with determining that the computer system is not connected to a moveable mount.
18. receiving an indication that the computer system is connected to the moveable mount after capturing video using the one or more camera sensors, while the computer system is not connected to the moveable mount and the individual object tracking mode of operation is not enabled; 18. The method of claim 17, further comprising: enabling the individual object tracking mode of operation in response to receiving the indication that the computer system is connected to the moveable mount.
19. Capturing video with the one or more camera sensors in accordance with the individual object tracking mode of operation includes capturing video using a first algorithm; 19. The method of claim 17 or 18, wherein capturing video using the one or more camera sensors without enabling the individual object tracking operational mode comprises capturing video using a second algorithm different from the first algorithm.
20. a first object and a second object are within a field of view of the one or more camera sensors, and the method comprises: while capturing video using the one or more camera sensors according to the individual object tracking modes of operation; 20. The method of claim 19, further comprising, in response to detecting movement of the first object, tracking the movement of the first object.
21. while capturing video using the one or more camera sensors according to the individual object tracking modes of operation; 21. The method of claim 19 or 20, further comprising, in accordance with a determination that a first subject's line of sight is directed toward an item of interest, modifying the field of view of the one or more camera sensors to include the item of interest.
22. while capturing video using the one or more camera sensors according to the individual object tracking modes of operation; 22. The method of claim 19, further comprising, in response to detecting movement of a first object, changing the field of view of the one or more camera sensors to track the first object without changing a zoom level of the field of view of the one or more camera sensors.
23. while capturing video using the one or more camera sensors according to the individual object tracking modes of operation; 23. The method of claim 17, further comprising, in accordance with a determination that a first object has moved out of the field of view of the one or more camera sensors, modifying the field of view of the one or more camera sensors based on a trajectory of the first object.
24. while capturing video using the one or more camera sensors according to the individual object tracking modes of operation; 24. The method of claim 23, further comprising: maintaining the field of view of the one or more camera sensors pursuant to a determination that the first object has been outside the field of view of the one or more camera sensors for a predetermined period of time.
25. The computer system includes two or more camera sensors, and the method includes: capturing video with the first camera sensor of the two or more camera sensors according to the individual object tracking mode of operation, the individual object tracking mode including tracking movement of a first object based on video captured by the first camera sensor; 25. The method of claim 17, further comprising: capturing video using the second camera sensor of the two or more camera sensors in accordance with the individual object tracking operational mode in accordance with a determination that the first object is outside the field of view of the first camera sensor of the two or more camera sensors and the first object is within the field of view of a second camera sensor of the two or more camera sensors.
26. 26. The method of claim 17, further comprising capturing video using the one or more camera sensors in accordance with the individual object tracking mode of operation, when the individual object tracking mode of operation is enabled, including tracking movement of a first object in accordance with a determination that the first object is a first person detected in the field of view of the one or more camera sensors.
27. 27. The method of claim 17, further comprising capturing video using the one or more camera sensors in accordance with the individual subject tracking mode of operation, the individual subject tracking mode including tracking movement of a first subject, the first subject being tracked based on detection of a face of the first subject when the individual subject tracking mode of operation is enabled.
28. 28. The method of any one of claims 17 to 27, further comprising capturing video using the one or more camera sensors in accordance with the individual subject tracking mode of operation, the individual subject tracking mode including tracking movement of a first subject, the first subject being tracked based on detection of a body of the first subject when the individual subject tracking mode of operation is enabled.
29. 29. The method of any one of claims 17 to 28, further comprising capturing video using the one or more camera sensors in accordance with the individual subject tracking mode of operation, the individual subject tracking mode including tracking movement of a first subject, the first subject being tracked based on detection of one or more facial features of a known subject when the individual subject tracking mode of operation is enabled.
30. 30. The method of any one of claims 17 to 29, further comprising capturing video using the one or more camera sensors in accordance with the individual subject tracking mode of operation, the mode including tracking movement of the first subject, the first subject being tracked based on the first subject being a person closest to a center of the field of view of the one or more camera sensors when the individual subject tracking mode of operation is enabled.
31. 31. The method of any one of claims 17 to 30, further comprising capturing video using the one or more camera sensors in accordance with the individual subject tracking mode of operation, the mode including tracking movement of the first subject, the first subject being tracked based on the first subject being a person closest to a center of the field of view of the one or more camera sensors and viewing the one or more camera sensors when the individual subject tracking mode of operation is enabled.
32. a first object and a second object are within the field of view of the one or more camera sensors, and the method comprises: capturing video using the one or more camera sensors according to the individual object tracking mode of operation, including tracking the first object; 32. The method of claim 17, further comprising: after tracking the first object, modifying the field of view of the one or more camera sensors based on a position of the second object in accordance with a determination that the first object is outside the field of view of the one or more camera sensors for a predetermined period of time.
33. 33. The method of claim 32, wherein the field of view of the one or more camera sensors is altered based on the position associated with the second subject in accordance with a determination that the second subject is the person closest to the center of the field of view of the one or more camera sensors when the determination that the first subject is outside the field of view of the one or more camera sensors for the predetermined period of time.
34. 34. The method of claim 32 or 33, wherein the field of view of the one or more camera sensors is altered based on the position associated with the second subject in accordance with a determination that the second subject is a person previously identified within the field of view of the one or more camera sensors.
35. 35. The method of any one of claims 32 to 34, wherein the position associated with the second object is the last known location of the second object.
36. modifying the field of view of the one or more camera sensors based on the position of the second object; 36. The method of claim 35, further comprising: modifying the field of view of the one or more camera sensors based on the position of the first object pursuant to a determination that the second object is outside the field of view of the one or more camera sensors for a predetermined period of time.
37. capturing video using the one or more camera sensors according to the individual object tracking mode of operation, the individual object tracking mode including tracking a first object; 37. The method of any one of claims 32 to 36, further comprising ceasing tracking of the first object in accordance with determining that the moveable mount has reached a travel limit.
38. while capturing video using the one or more camera sensors of the computer system according to the individual object tracking operating mode; modifying the displayed field of view of the one or more camera sensors in accordance with a determination that one or more characteristics of individual object motion meet a first criterion; 38. The method of claim 17, further comprising: maintaining the displayed field of view of the one or more camera sensors in accordance with a determination that the one or more characteristics of the individual object motion do not satisfy the first criterion.
39. while capturing video using the one or more camera sensors of the computer system in accordance with the individual object tracking mode of operation, and after modifying the displayed field of view of the one or more camera sensors in accordance with a determination that one or more characteristics of individual object movement meet the first criterion; modifying the displayed field of view of the one or more camera sensors in accordance with a determination that one or more characteristics of individual object motion meet a second predetermined criterion; 40. The method of claim 38, further comprising: maintaining the displayed field of view of the one or more camera sensors pursuant to a determination that the one or more characteristics of the individual object motion do not satisfy the second predetermined criterion.
40. 40. The method of claim 17, further comprising, in accordance with determining that the individual object tracking operational mode is enabled, causing output of an indication that the individual object tracking operational mode is enabled.
41. causing the output of the indication that the individual object tracking operational mode is enabled; 41. The method of claim 40, comprising causing output of the indication having a first characteristic in accordance with determining that the individual object tracking operational mode is active.
42. causing the output of the indication that the individual object tracking operational mode is enabled; 41. The method of claim 40, including causing output of the indication having a second characteristic different from the first characteristic in response to determining that the individual object tracking operational mode is not active.
43. 43. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs including instructions for performing the method of any one of claims 17 to 42.
44. 1. A computer system configured to communicate with one or more camera sensors, comprising: one or more processors; and a memory storing one or more programs configured to be executed by said one or more processors, said one or more programs including instructions for performing the method of any one of claims 17 to 42.
45. 1. A computer system configured to communicate with one or more camera sensors, comprising: A computer system comprising means for carrying out the method of any one of claims 17 to 42.
46. 43. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs including instructions for performing the method of any one of claims 17 to 42.
47. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs comprising: Detecting a request to capture video using the one or more camera sensors of the computer system; In response to detecting the request to capture the video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using the one or more camera sensors of the computer system in accordance with a respective object tracking mode of operation; A non-transitory computer-readable storage medium comprising instructions for initiating a process of capturing video using the one or more camera sensors without enabling the individual object tracking operational mode in accordance with a determination that the computer system is not connected to a moveable mount.
48. 1. A computer system configured to communicate with one or more camera sensors, comprising: one or more processors; a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: Detecting a request to capture video using the one or more camera sensors of the computer system; In response to detecting the request to capture the video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using the one or more camera sensors of the computer system in accordance with a respective object tracking mode of operation; a computer system including instructions for initiating a process of capturing video using the one or more camera sensors without enabling the individual object tracking operational mode in accordance with a determination that the computer system is not connected to a moveable mount.
49. 1. A computer system configured to communicate with one or more camera sensors, comprising: means for detecting a request to capture video using the one or more camera sensors of the computer system; In response to detecting the request to capture the video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using the one or more camera sensors of the computer system in accordance with a respective object tracking mode of operation; means for initiating a process of capturing video using the one or more camera sensors without enabling the individual object tracking operational mode in accordance with a determination that the computer system is not connected to a moveable mount.
50. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with one or more camera sensors, the one or more programs comprising: Detecting a request to capture video using the one or more camera sensors of the computer system; In response to detecting the request to capture the video, In response to a determination that the computer system is connected to a moveable mount, initiating a process of capturing video using the one or more camera sensors of the computer system in accordance with a respective object tracking mode of operation; 12. A computer program product comprising: instructions for initiating a process of capturing video using the one or more camera sensors without enabling the individual object tracking operational mode in accordance with a determination that the computer system is not connected to a moveable mount.
51. 1. A method comprising: A computer system in communication with the moveable mount, obtaining an indication of an event associated with capturing a video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; in response to receiving the indication of the event, causing the movable mount to perform a sequence of one or more mechanical movements that move the device connected to the movable mount, wherein the sequence of one or more mechanical movements is associated with the event.
52. causing the moveable mount to perform the sequence of the one or more mechanical movements; in accordance with determining that the event corresponds to a first event, causing the moveable mount to perform a first sequence of one or more mechanical movements; 52. The method of claim 51 , comprising: in accordance with determining that the event corresponds to a second event, causing the moveable mount to perform a second sequence of one or more mechanical movements, wherein the second sequence of one or more mechanical movements is different from the first sequence of one or more mechanical movements.
53. the device comprises a camera sensor; 53. The method of claim 51 or 52, wherein a camera sensor is oriented downwards once the sequence of one or more mechanical movements is completed.
54. 54. The method of any one of claims 51 to 53, wherein the indication of the event includes an indication of the start of a process of capturing video with the device.
55. 55. The method of claim 54, wherein the sequence of one or more mechanical movements includes moving the connected device so that a camera sensor of the device is oriented upward.
56. 56. The method of any one of claims 51 to 55, wherein the indication of an event includes an indication of an end of a process of capturing video with the device.
57. 57. The method of claim 56, wherein the sequence of one or more mechanical movements includes moving the device so that a camera sensor of the device is oriented downwards.
58. 58. The method of any one of claims 51 to 57, wherein the indication of the event includes an indication that the device has transitioned from a low power mode to a normal mode.
59. 60. The method of claim 58, wherein the sequence of one or more mechanical movements includes moving the device so that a camera sensor of the device is oriented toward the user.
60. 60. The method of claim 59, wherein the camera sensor of the device is directed toward the user based on the location of audio.
61. 60. The method of claim 59, wherein the camera sensor of the device is oriented toward the user based on the user's last known location.
62. the indication of the event includes an indication that the device is capturing video; the device includes a display generation component; 62. The method of any one of claims 51 to 61, wherein the sequence of one or more mechanical movements comprises moving the device such that the display generating component of the device is oriented towards a user.
63. 63. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with the movable mount, the one or more programs including instructions for performing the method of any one of claims 51 to 62.
64. a computer system configured to communicate with the moveable mount, one or more processors; and a memory storing one or more programs configured to be executed by said one or more processors, said one or more programs including instructions for performing the method of any one of claims 51 to 62.
65. a computer system configured to communicate with the moveable mount, 63. A computer system comprising means for carrying out the method of any one of claims 51 to 62.
66. 63. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with the movable mount, the one or more programs including instructions for performing the method of any one of claims 51 to 62.
67. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computer system in communication with a moveable mount, the one or more programs comprising: obtaining an indication of an event associated with capturing a video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; a non-transitory computer-readable storage medium comprising instructions for causing the movable mount to perform a sequence of one or more mechanical movements that move the device connected to the movable mount in response to obtaining the indication of the event, the sequence of one or more mechanical movements being associated with the event.
68. a computer system configured to communicate with the moveable mount, one or more processors; a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: obtaining an indication of an event associated with capturing a video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; and instructions for causing the movable mount to perform a sequence of one or more mechanical movements that move the device connected to the movable mount in response to receiving the indication of the event, the sequence of one or more mechanical movements being associated with the event.
69. a computer system configured to communicate with the moveable mount, means for obtaining an indication of an event associated with capturing a video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; means for causing the movable mount to perform a sequence of one or more mechanical movements that move the device connected to the movable mount in response to receiving the indication of the event, wherein the sequence of one or more mechanical movements is associated with the event.
70. 1. A computer program product comprising one or more programs configured to be executed by one or more processors of a computer system in communication with a moveable mount, the one or more programs comprising: obtaining an indication of an event associated with capturing a video, the video being captured by a device connected to the moveable mount, the device connected to the moveable mount being moved via the moveable mount to track one or more objects while the video is being captured; a computer program product including instructions for causing the moveable mount to perform a sequence of one or more mechanical movements that move the device connected to the moveable mount in response to obtaining the indication of the event, the sequence of one or more mechanical movements being associated with the event.
Citation Information
Patent Citations
Smart mobile phone base, mobile phone and implementation methods thereof
CN102594990A
Monitoring apparatus and monitoring method
JP2009253449A
Image pickup controller, image pickup control method, program, and image pickup system
JP2011030040A
Imaging apparatus, imaging method and imaging program
JP2011082913A
Control unit, electronic apparatus, cradle, notification system, and control method
JP2019197976A