Shared media sessions across devices
By configuring a processor in a portable computing device and a wearable device, determining a candidate device list using wireless signals and initiating a shared media session, the problem of difficult media sharing among devices is solved, and efficient media sharing and an improved user experience is achieved.
Patent Information
- Application Number
- CN202380080517.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-16
- Filing Date
- 2023-11-17
- Publication Date
- 2025-06-27
AI Technical Summary
Existing portable computing devices and wearable devices have functional limitations in media sharing, especially due to the limitations of built-in batteries, which make media sharing between devices difficult to achieve and poor user experience.
By configuring the processor in the first device, determining the candidate device list using a wireless signal, and initiating a shared media session, the specific media content is output simultaneously with the output at the second device based on the synchronization information, and receiving the media stream from the remote media service.
It realizes efficient media sharing between portable computing devices and wearable devices, improves user experience, allows multiple devices to consume media content at the same time, and saves the battery power and computing resources of the device's native device.
Smart Images

Figure CN120226367A_ABST
Abstract
Description
[0001] I. Cross - Reference to Related Applications
[0002] This application claims priority to commonly - owned U.S. Provisional Patent Application No. 63 / 385,174, filed on November 28, 2022, and U.S. Non - Provisional Patent Application No. 18 / 511,412, filed on November 16, 2023, the entire contents of each of which are hereby expressly incorporated by reference. II. Technical Field
[0003] The present disclosure generally relates to the sharing of media content. III. Background Art
[0004] Technological advancements have led to smaller and more powerful computing devices. For example, there are currently a variety of portable personal computing devices, including wireless telephones (such as mobile and smart phones), tablet computers, and laptop computers that are small, lightweight, and easy for users to carry. The increased availability of such portable computing devices has been accompanied by an increase in the availability of accessory devices for portable computing devices. For example, many wearable devices are available that wirelessly dock with portable computing devices to improve the user experience of applications executed natively on the personal computing device. Due to the size and weight constraints associated with such wearable devices, the batteries built into these devices tend to be rather small and limited, resulting in limitations on the functionality of such devices. IV. Summary of the Invention
[0005] In a particular embodiment, a first device includes one or more processors configured to determine, based on one or more wireless signals, a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices. The one or more processors are further configured to initiate, based on the determination, a shared media session with a second device in the list of candidate devices, and while a particular media content is being transmitted from a remote media service to the second device, receive a media stream including the particular media content from the remote media service. The one or more processors are further configured to initiate, based on the determination, the shared media session to output the particular media content simultaneously with the output of the particular media content at the second device based on synchronization information.
[0006] In a particular implementation, a method includes determining, by one or more processors of a first device, a list of candidate devices identifying one or more devices within a communication range of one or more sensing devices based on one or more wireless signals. The method further includes initiating, based on the determination, a shared media session with a second device in the list of candidate devices, and receiving, by the one or more processors, a media stream including the particular media content from a remote media service while the particular media content is being transmitted from the remote media service to the second device. The method further includes causing, based on the determination of initiating the shared media session, the particular media content to be output simultaneously with an output of the particular media content at the second device based on synchronization information.
[0007] In a particular implementation, a non-transitory computer-readable medium stores instructions that, when executed by one or more processors of a first device, cause the one or more processors to determine a list of candidate devices identifying one or more devices within a communication range of one or more sensing devices based on one or more wireless signals. The instructions are further executable by the one or more processors to initiate, based on the determination, a shared media session with a second device in the list of candidate devices and receive, while the particular media content is being transmitted from the remote media service to the second device, a media stream including the particular media content from the remote media service. The instructions are further executable by the one or more processors to cause, based on the determination of initiating the shared media session, the particular media content to be output simultaneously with an output of the particular media content at the second device based on synchronization information.
[0008] In a particular implementation, a device includes means for determining a list of candidate devices identifying one or more devices within a communication range of one or more sensing devices based on one or more wireless signals. The device further includes means for initiating, based on the determination, a shared media session between a first device and a second device in the list of candidate devices and receiving, while the particular media content is being transmitted from the remote media service to the second device, a media stream including the particular media content from the remote media. The device further includes means for causing the particular media content to be output simultaneously with an output of the particular media content at the second device based on synchronization information.
[0009] In a particular implementation, a first device includes one or more processors configured to set first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session. The one or more processors are further configured to set second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session. The second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0010] In a particular implementation, a method includes, during a first time period after initiating a shared media session, setting, by one or more processors, first discovery parameters for discovering candidate devices for media sharing. The method further includes, during a second time period after terminating the shared media session, setting, by the one or more processors, second discovery parameters for discovering candidate devices for media sharing. The second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0011] In a particular implementation, a non-transitory computer-readable medium stores instructions that, when executed by one or more processors, cause the one or more processors to set, during a first time period after initiating a shared media session, first discovery parameters for discovering candidate devices for media sharing. The instructions are further executable by the one or more processors to set, during a second time period after terminating the shared media session, second discovery parameters for discovering candidate devices for media sharing. The second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0012] In a particular implementation, an apparatus includes means for setting, during a first time period after initiating a shared media session, first discovery parameters for discovering candidate devices for media sharing. The apparatus further includes means for setting, during a second time period after terminating the shared media session, second discovery parameters for discovering candidate devices for media sharing. The second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0013] In a particular implementation, a device includes one or more processors configured to obtain a list of candidate devices associated with a first device. The list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. The one or more processors are further configured to: transmit a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device; and transmit a first media stream including specific media content to the first device based on a response to the sharing invitation. The one or more processors are further configured to transmit, while transmitting the first media stream to the first device, a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device.
[0014] In a particular implementation, a method includes obtaining a list of candidate devices associated with a first device. The list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. The method further includes: transmitting a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device; and transmitting a first media stream including specific media content to the first device based on a response to the sharing invitation. The method further includes transmitting a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device while transmitting the first media stream to the first device.
[0015] In a particular implementation, a non-transitory computer-readable medium stores instructions that, when executed by one or more processors, cause the one or more processors to obtain a list of candidate devices associated with a first device. The list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. The instructions are further executable by the one or more processors to: transmit a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device; and transmit a first media stream including specific media content to the first device based on a response to the sharing invitation. The instructions are further executable by the one or more processors to transmit a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device while transmitting the first media stream to the first device.
[0016] In a particular implementation, an apparatus includes means for obtaining a list of candidate devices associated with a first device. The list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. The apparatus further includes means for transmitting a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device, and means for transmitting a first media stream including specific media content to the first device based on a response to the sharing invitation. The apparatus further includes means for transmitting a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device while transmitting the first media stream to the first device.
[0017] Other aspects, advantages, and features of the present disclosure will become apparent after reviewing the entire application including the following sections: Brief Description of the Drawings, Detailed Description, and Claims. V. Brief Description of the Drawings
[0018] Figure 1Diagram of specific illustrative aspects of a system operable to establish a shared media session between two or more devices, in accordance with some examples of the present disclosure.
[0019] Figure 2 Diagram of illustrative aspects of operations associated with establishing a shared media session between two or more devices, in accordance with some examples of the present disclosure.
[0020] Figure 3 Diagram of illustrative aspects of operations associated with establishing a shared media session between two or more devices, in accordance with some examples of the present disclosure.
[0021] Figure 4 Diagram of illustrative aspects of operations associated with establishing a shared media session between two or more devices, in accordance with some examples of the present disclosure.
[0022] Figure 5 Block diagram of illustrative aspects of a device operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0023] Figure 6 In accordance with some examples of the present disclosure Figure 5 Diagram of illustrative aspects of the operations of components of a device.
[0024] Figure 7 In accordance with some examples of the present disclosure Figure 5 Diagram of illustrative aspects of the operations of components of a device.
[0025] Figure 8 Illustrates an example of an integrated circuit operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0026] Figure 9 Diagram of a mobile device operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0027] Figure 10 Diagram of a headset operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0028] Figure 11 Diagram of a wearable electronic device operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0029] Figure 12 Diagram of a voice-controlled speaker system operable to establish a shared media session with one or more other devices, in accordance with some examples of the present disclosure.
[0030] Figure 13 A diagram of a camera operable to establish a shared media session with one or more other devices, according to some examples of the present disclosure.
[0031] Figure 14 A diagram of a headset (such as a virtual reality, mixed reality, or augmented reality headset) operable to establish a shared media session with one or more other devices, according to some examples of the present disclosure.
[0032] Figure 15 A diagram of a first example of a vehicle operable to establish a shared media session with one or more other devices, according to some examples of the present disclosure.
[0033] Figure 16 A diagram of a second example of a vehicle operable to establish a shared media session with one or more other devices, according to some examples of the present disclosure.
[0034] Figure 17 A flowchart of a specific implementation of a method for establishing a shared media session between two or more other devices, executable by a system of Figure 1 , according to some examples of the present disclosure.
[0035] Figure 18 A flowchart of a specific implementation of a method for establishing a shared media session between two or more other devices, executable by a system of Figure 1 , according to some examples of the present disclosure.
[0036] Figure 19 A flowchart of a specific implementation of a method for establishing a shared media session between two or more other devices, executable by a system of Figure 1 , according to some examples of the present disclosure.
[0037] Figure 20 A block diagram of a specific illustrative example of a device operable to establish a shared media session between two or more other devices, according to some examples of the present disclosure. VI. DETAILED DESCRIPTION
[0038] As the consumption of media using portable computing devices and wearable devices has become more prevalent, the consumption of media has become a more isolated and individual experience. For example, when a user is streaming media to wireless earbuds or headphones via a smartphone, only the user can enjoy the media content. In many cases, the user experience can be improved by enabling the user to easily share media content with another user; however, establishing media sharing between such portable devices can be difficult. Generally speaking, such shared media sessions must be established locally, such as by physically exchanging one earbud of a pair of earbuds with another user. Obviously, this solution has many problems, such as the possibility of losing the exchanged earbud. Additionally, in this solution, each user can only consume one channel of the media (e.g., the right or left channel of stereo content), which does not provide either user with a complete experience of the media. Additionally, since earbuds come in pairs, only two users can share media using this solution.
[0039] Systems and methods for establishing shared media sessions are disclosed. Although the disclosed systems and methods are suitable for use with any appropriately configured device, the disclosed systems and methods are particularly beneficial when used with wearable devices or similar devices having a limited user interface and / or limited native power.
[0040] In a particular embodiment, a first device is configured to initiate, control, or perform operations to establish a shared media session with a second device. In some examples, the first device includes an earbud or a pair of earbuds associated with a first user or corresponding to the earbud or the pair of earbuds, and the second device includes an earbud or a pair of earbuds associated with a second user or corresponding to the earbud or the pair of earbuds. In other examples, the first device and the second device are headphones, a head-mounted device including a display (e.g., an extended reality headset or augmented reality glasses), a vehicle, a portable speaker and voice assistant device, other wearable devices, or any combination thereof. Additionally, the first device and the second device do not have to be of the same type. For example, the first device can include a pair of earbuds, and the second device can include headphones or a vehicle.
[0041] The shared media session between the first device and the second device is arranged such that each of the devices receives media content from a media service associated with the device via a media stream. For example, a media service such as Netflix or Spotify may transmit a first media stream to the first device and a second media stream to the second device, where the first media stream and the second media stream include the same media content item (e.g., the same song, the same movie, etc.). In this example, synchronization information (e.g., such as a timing signal, a time-to-play timestamp, etc.) is also provided to the devices or exchanged between the devices to enable simultaneous output of the media content at the devices. Thus, each device receives an independent media stream, but the media streams are synchronized locally for playback at the devices. One benefit of this arrangement is that it simplifies the local setup of the shared media session and improves the user experience. For example, a user associated with a device can enjoy all of the media content (e.g., two stereo channels), rather than just a portion of the media content. Another benefit is that since the devices independently receive media content from the media service for synchronized playback, any number of such devices can join the shared media session.
[0042] The disclosed systems and methods also provide a simplified mechanism for establishing a shared media session from a media service. For example, a device may use a wireless signal to perform a discovery process in the background to identify nearby devices that are candidates for media sharing. Since the battery power available to the device natively may be limited, in some cases, the device may offload some or all of the discovery process to a proxy device such as a wireless access point or a portable communication device. One benefit of offloading the discovery process to a proxy device is that it saves the device's native battery power and computational resources.
[0043] Certain aspects of the present disclosure are described below with reference to the accompanying drawings. In the description, common features are designated by common reference numerals. As used herein, various terms are for the purpose of describing particular specific implementations only and are not intended to limit the specific implementations. For example, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Additionally, some of the features described herein are singular in some specific implementations and plural in other specific implementations. For illustration, Figure 5 depicts including one or more processors ( Figure 5a first device 102 of the "processor" 590), which indicates that in some specific implementations, the first device 102 includes a single processor 590, and in other specific implementations, the first device 102 includes multiple processors 590. For ease of reference herein, such features are generally introduced as "one or more" features and are subsequently referred to in the singular form or an optional plural form (usually indicated by "(s)") unless aspects related to multiple features among the features are described.
[0044] In some of the figures, multiple instances of a particular type of feature are used. Although these features are physically and / or logically distinct, the same reference numeral is used for each feature, and these different instances are distinguished by adding a letter to the reference numeral. When a feature is referred to herein as a group or a type (e.g., when no specific feature among these features is mentioned), the reference numeral is used without the distinguishing letter. However, when a specific feature among multiple features of the same type is mentioned herein, the reference numeral is used together with the distinguishing letter. For example, referring to Figure 1 , multiple wireless signals are illustrated and associated with reference numerals 120A - 120F. When a particular wireless signal among these wireless signals (such as wireless signal 120A) is mentioned, the distinguishing letter "A" is used. However, when any arbitrary one of these wireless signals or these wireless signals are referred to as a group, the reference numeral 120 is used without the distinguishing letter.
[0045] As used herein, the term "comprise" may be used interchangeably with "include". Additionally, the term "wherein" may be used interchangeably with "where". As used herein, "exemplary" indicates examples, specific implementations, and / or aspects and should not be construed as restrictive or indicating a preference or preferred specific implementation. As used herein, ordinal terms (e.g., "first", "second", "third", etc.) used to modify elements (such as structures, components, operations, etc.) do not themselves indicate any priority or order of the element relative to another element, but merely distinguish the element from another element having the same name (but using an ordinal term). As used herein, the term "set" refers to one or more particular elements among specific elements, and the term "plurality" refers to a plurality (e.g., two or more) of particular elements.
[0046] As used herein, "coupled" can include "communicatively coupled", "electrically coupled", or "physically coupled", and can also (or alternatively) include any combination thereof. Two devices (or components) can be directly or indirectly coupled (e.g., communicatively coupled, electrically coupled, or physically coupled) via one or more other devices, components, wires, buses, networks (e.g., a wired network, a wireless network, or a combination thereof), etc. As an illustrative, non-limiting example, two devices (or components) that are electrically coupled can be included in the same device or in different devices, and can be connected via electronics, one or more connectors, or inductive coupling. In some specific implementations, two devices (or components) that are communicatively coupled (such as electrically communicating) can directly or indirectly transmit and receive signals (e.g., digital signals or analog signals) via one or more wires, buses, networks, etc. As used herein, "directly coupled" can include two devices that are coupled (e.g., communicatively coupled, electrically coupled, or physically coupled) without an intermediate component.
[0047] In the present disclosure, terms such as "determine", "calculate", "estimate", "shift", "adjust", etc. can be used to describe how to perform one or more operations. It should be noted that such terms should not be construed as restrictive, and other techniques can be utilized to perform similar operations. Additionally, as mentioned herein, "generate", "calculate", "estimate", "use", "select", "access", and "determine" can be used interchangeably. For example, "generate", "calculate", "estimate", or "determine" a parameter (or signal) can refer to actively generating, estimating, calculating, or determining the parameter (or signal), or can refer to using, selecting, or accessing (such as by another component or device) a parameter (or signal) that has already been generated.
[0048] Figure 1 is a diagram illustrating a specific implementation of a system 100 operable to establish a shared media session between two or more devices according to some examples of the present disclosure. System 100 includes a first device 102 and a second device 104. In Figure 1 the example illustrated, the first device 102 and the second device 104 are earbuds. Each earbud can be associated with a specific user. For example, the first earbud (e.g., the first device 102) can be associated with a first user, and the second earbud (e.g., the second device 104) can be associated with a second user. Although the following description generally only refers to two devices 102, 104, as Figure 1As shown, each of devices 102, 104 may correspond to a pair or may be part of a pair. For illustration, the first device 102 is illustrated as a single earbud; however, optionally, the first device 102 may include a set of earbuds in a pair or may be part of a set of earbuds in a pair. Similarly, the second device 104 is illustrated as a single earbud; however, optionally, the second device 104 may include a set of earbuds in a pair or may be part of a set of earbuds in a pair.
[0049] In certain aspects, a shared media session 150 may be established between the first device 102 and the second device 104 based on the proximity of the devices 102, 104 to each other and the permissions associated with the devices 102, 104. In some embodiments, the shared media session 150 may be established based on determining that the second device 104 is within the communication range of one or more sensing devices. In such embodiments, the sensing device may be integrated within the first device 102 or may be separate from the first device 102. For example, the sensing device may be integrated within a wireless access point 110 configured to support a wireless local area network (WLAN) (such as a WiFi network). In another example, the sensing device may be integrated within a portable communication device 106 (such as a smartphone). For illustration, the portable communication device 106 may be configured to support a WLAN or a personal area network (PAN), such as one or more Bluetooth communication links.
[0050] In some embodiments, the proximity of the devices 102, 104 to the sensing device may be determined based on the ability of the sensing device to communicate with the devices 102, 104. For example, when the sensing device is integrated within the wireless access point 110 and the first device 102 is within the coverage area of the WLAN associated with the wireless access point 110, the first device 102 and the wireless access point 110 may exchange discovery messages (e.g., via a wireless signal 120A transmitted by the first device 102, a wireless signal 120E transmitted by the wireless access point 110, or both), enabling the sensing device to determine the approximate location of the first device 102. In this example, the determined location of the first device 102 may be relatively coarse, such as merely that the first device 102 is within the coverage area of the WLAN.
[0051] Optionally, in some embodiments, more refined location information may be determined. For example, the sensing device may be configured to determine an approximate distance to the first device 102 based on the received signal strength of one or more wireless signals 120A transmitted by the first device 102. Additionally or alternatively, the wireless access point 110 may include multiple antennas that enable the sensing device to use beamforming techniques to determine the direction of the first device 102 (e.g., the angle relative to a reference angle), enable the sensing device to use multilateration techniques to determine the location coordinates of the first device 102, or both. Further, in some embodiments, the wireless access point 110 is one of a plurality of wireless access points in the coverage area of a WLAN (e.g., part of a mesh network), and one or more additional wireless access points may determine location information associated with the first device 102 and exchange the location information with the wireless access point 110 to determine a more accurate and / or precise location of the first device 102.
[0052] Similarly, when the second device 104 is within the coverage area of the WLAN associated with the wireless access point 110, the second device 104 and the wireless access point 110 may exchange discovery messages (e.g., via a wireless signal 120B transmitted by the second device 104, a wireless signal 120E transmitted by the wireless access point 110, or both), enabling the sensing device to determine the approximate location of the second device 104. Based on the approximate locations of the first device 102 and the second device 104, the sensing device may determine that the second device 104 is a candidate for establishing a shared media session 150 with the first device 102. Alternatively, the sensing device may provide information identifying nearby devices to the first device 102, the second device 104, or both, and one or more of the devices 102, 104 may identify candidates for establishing the shared media session 150.
[0053] In some specific implementations, the sensing device may use phase-based ranging (based on wireless signal 120) to estimate the location of the first device 102, the second device 104, or both. An example of phase-based ranging technology is high-accuracy distance measurement (HADM) transmitted based on Bluetooth Low Energy (BLE). Additionally or alternatively, the sensing device may use signal strength-based techniques to estimate the location of the first device 102, the second device 104, or both. For illustration, the wireless signal 120B transmitted by the second device 104 may include a transmit power indicator, and the sensing device may compare the transmit power indicator with the signal strength of the wireless signal 120B received at the sensing device to estimate the distance between the second device 104 and the sensing device. When using a single sensing device, an appropriate range to the second device 104 can be determined. When using three or more sensing devices, techniques such as multi-point positioning based on received signal strength or received signal strength fingerprinting can be used to estimate the coordinate location of the second device 104 (or the distance and direction to the second device).
[0054] When the sensing device is integrated within the portable communication device 106, the portable communication device 106 may perform the operations described above with reference to the wireless access point 110. In some specific implementations, the sensing device within the wireless access point 110, the sensing device within the portable communication device 106, one or more other sensing devices different from the devices 102, 104, or any combination thereof may cooperate to identify a group of nearby devices.
[0055] In some specific implementations, the sensing device is integrated within the first device 102, the second device 104, or both and is configured to identify nearby devices. For example, the first device 102 and the second device 104 may exchange discovery messages 122 (e.g., via the wireless signal 120A transmitted by the first device 102, the wireless signal 120B transmitted by the second device 104, or both). For example, the first device 102 may determine that the second device 104 is within the communication range of the sensing device of the first device 102 based on one or more of the discovery messages 122 received by the first device 102 from the second device 104.
[0056] In some specific implementations, the sensing device determines the location of the first device 102, the second device 104, or both based on wireless signals 120 from one or more other devices. For example, a sensing device associated with the first device 102 may be configured to receive wireless signals 120D from one or more wireless wide area networks 108 (WWAN), such as one or more base stations of voice and data networks operating according to one or more third-generation (3G) mobile telecommunications standards, according to one or more fourth-generation (2G) mobile telecommunications standards, according to one or more fifth-generation (5G) mobile telecommunications standards, according to one or more sixth-generation (6G) mobile telecommunications standards, or according to one or more other mobile telecommunications standards. In such specific implementations, the sensing device built into the first device 102 may estimate the location of the first device 102 based on wireless signals 120D, such as using multilateration techniques based on signals from multiple base stations or using location probability estimation based on the coverage areas associated with one or more base stations.
[0057] In another example, a sensing device associated with the first device 102 may be configured to receive wireless signals 120F from one or more satellites 112 (e.g., satellites associated with positioning services such as the Global Positioning Satellite (GPS) system or the Global Navigation Satellite System). When using wireless signals 120D, 120E, 120F, or a combination thereof to estimate the location of one or more of the devices 102, 104, the location may be estimated as a set of coordinates (e.g., a coordinate location). In such examples, the coordinate locations of one or more of the devices 102, 104 may be exchanged with each other (e.g., via discovery message 122) or may be sent to another device (e.g., wireless access point 110, portable communication device 106, or servers 132, 136 of remote services) to estimate the distance between the devices 102, 104.
[0058] In a particular specific implementation, when the first device 102 is in an operating mode that enables the establishment of a shared media session 150, the first device 102 determines a candidate device list 124. The candidate device list 124 identifies one or more devices (such as the second device 104) within the communication range of the sensing device. In specific implementations where the sensing device is integrated within the first device 102, the candidate device list 124 identifies one or more devices within the communication range of the first device 102. In some specific implementations, the sensing device is not integrated within the first device 102, in which case the sensing device identifies nearby devices and transmits a list of the nearby devices to the first device 102. In such specific implementations, the list of nearby devices may include the candidate device list 124 or correspond to the candidate device list. For example, the candidate device list 124 may include a subset of the list of nearby devices.
[0059] In some specific implementations, system 100 includes more than one sensing device. For illustration, the first device 102 may include two or more transceivers, and each of these transceivers may include a sensing device, corresponding to or included within the sensing device. For example, the first device 102 may include a first transceiver configured to communicate using a first communication protocol (such as Bluetooth), and may also include a second transceiver configured to communicate using a second communication protocol (such as Wi-Fi). In this example, the first transceiver may be configured to determine a first set of candidate devices within the communication range associated with the first communication protocol, and the second transceiver may be configured to determine a second set of candidate devices within the communication range associated with the second communication protocol. In this example, the candidate device list 124 may identify the first set of candidate devices and the second set of candidate devices.
[0060] In a particular specific implementation, the sensing device is configured to determine whether a particular device is within the communication range based on a distance metric. In such specific implementations, the distance metric may indicate an estimated distance between the particular device and one or more sensing devices. In such specific implementations, the sensing device may determine the estimated distance between the sensing device and the second device 104 based on the location of each device (e.g., coordinate position).
[0061] In some specific implementations, which sensing device(s) are used to determine the candidate device list 124 depends on the context in which the first device 102 is operating. For example, when the first device 102 is within the communication range of the WLAN of the wireless access point 110, the first device 102 may offload the identification of nearby devices to the wireless access point 110 to save the power of the first device 102 itself. As another example, when the first device 102 is participating in a shared media session (e.g., shared media session 150), the first device 102 may adjust the discovery parameters associated with the generation of the candidate device list 124 to reduce the power consumption of the first device 102 itself.
[0062] In Figure 1In the example illustrated, the candidate device list 124 is transmitted to one or more servers 132 of the licensing service 130. The licensing service 130 is configured to determine whether any device identified on the candidate device list 124 is identified on a licensing list associated with the remote media service 134. The licensing list indicates which devices and / or users are permitted to establish a shared media session with the first device 102. In a particular implementation, the licensing service 130 is configured to transmit the candidate device list 140 to the media service 134 based on the licensing list. For example, each candidate device on the licensing list at the licensing service 130 of the candidate device list 124 may be listed in the candidate device list 140 transmitted to the media service 134. For illustration, after the discovery messages 122 are exchanged, the first device 102 may add the second device 104 to the candidate device list 124 of the first device and transmit the candidate device list 124 to the licensing service 130. In this example, the licensing service 130 determines whether the second device 104 is identified on the licensing list. Based on determining that the second device 104 is identified on the licensing list, the licensing service 130 transmits the candidate device list 140 identifying the second device 104 to the media service 134.
[0063] The media service 134 is configured to provide media content, such as extended reality content, video content, game content, audio content, or a combination thereof, from one or more servers 136 of the media service 134 to the first device 102, the second device 104, or both. For example, in some implementations, the server 136 is configured to transmit data packets including media data to an Internet Protocol (IP) address (or another communication address) associated with the first device 102, to an IP address associated with the second device 104, or both. In other implementations, the server 136 is configured to transmit media data to a gateway device associated with at least one of the devices 102, 104. For example, the wireless access point 110 or the portable communication device 106 may act as a gateway device for one or both of the devices 102, 104.
[0064] In a particular implementation, the media service 134 is configured to determine whether any device identified on the candidate device list 140 is associated with an account at the media service 134. For example, when the second device 104 is identified on the candidate device list 140, the server 136 may compare the identifier of the second device 104 with the identifiers of devices associated with the user account at the media service 134. In this example, when the identifier associated with the second device 104 is associated with the user identifier of the user account, the media service 134 determines that the second device 104 is approved to participate in the shared media session (e.g., the shared media session 150).
[0065] Optionally, in some embodiments, based on determining that the second device 104 is approved to participate in the shared media session 150, the media service 134 transmits a prompt to the first device 102 to determine whether the user of the first device 102 wants to initiate media sharing. In such embodiments, the media service 134 updates the media sharing permission based on the response to the prompt. For example, in response to the prompt, the user of the first device 102 may indicate that media sharing with the second device 104 should always be initiated when the first device 102 and the second device 104 are at a specific location, within range of each other, or meet other conditions. In this example, the media sharing permission is updated to indicate that in the future, if the specified conditions are met, sharing should be initiated without transmitting a prompt to the first device 102. As another example, in response to the prompt, the user of the first device 102 may indicate that media sharing with the second device 104 should never be initiated or should not be initiated when specific conditions are met. In this example, the media sharing permission is updated to indicate that in the future, if the specified conditions are met, sharing should not be initiated or prompted. In other examples, in response to the prompt, the user of the first device 102 may indicate that media sharing with the second device 104 should or should not be initiated in this specific instance. In these examples, the media sharing permission is updated to indicate that sharing may or may not be initiated in this instance.
[0066] Based on determining that the second device 104 is approved for media sharing (and optionally determining that the sharing conditions are met), the media service 134 transmits a sharing invitation to the second device 104. In some embodiments, the sharing invitation includes a resource address associated with the shared media session 150 (such as a Uniform Resource Locator (URL)). Additionally or alternatively, the sharing invitation may identify specific media content to be shared during the shared media session 150, the time period of the shared media session 150, other restrictions or configuration information associated with the shared media session 150, or a combination thereof.
[0067] In a particular implementation, media service 134 is configured to initiate a shared media session 150 based on a response to a sharing invitation sent to second device 104. For example, initiating shared media session 150 may include transmitting a first media stream including media data 144 to first device 102 and transmitting a second media stream including media data 142 to second device 104. In this example, media data 142 and media data 144 include the same media content. Additionally, media data 142 and media data 144 may be configured for simultaneous output at first device 102 and second device 104. For example, media data 142 and media data 144 may include synchronization information or be associated with synchronization information, such as timestamps associated with the broadcast of a particular portion of the media content. Optionally, media service 134 may send separate synchronization information (such as a clock signal or other timing information) to adjust the broadcast rate of the media content at first device 102 and second device 104.
[0068] First device 102 is configured to receive media data 144 from media service 134 via the first media stream, and second device 104 is configured to receive media data 142 from media service 134 via the second media stream. First device 102 and second device 104 are configured to simultaneously output the media content of media data 142, 144 based on synchronization information. In some implementations, the synchronization information is provided by media service 134 in shared media session 150. In other implementations, first device 102 and second device 104 directly exchange synchronization information with each other or indirectly exchange synchronization information with each other via one or more proxy devices (such as wireless access point 110). In still other implementations, the synchronization information is received by first device 102 and second device 104 from a synchronization signal generator of another device via wireless signals 120E of wireless access point 110, wireless signals 120F of satellite 112 (e.g., satellite-based timing signals), wireless signals 120D of WWAN, or wireless signals 120C of portable communication device 106.
[0069] In some specific implementations, depending on whether the first device 102 is in a shared media session 150, the first device 102 sends or receives discovery messages 122 at different rates. For example, during a first time period after the shared media session 150 is initiated, the first device 102 may set first discovery parameters for discovering candidate devices to be added to the shared media session 150. In this example, during a second time period after the shared media session 150 is terminated, the first device 102 sets second discovery parameters for discovering candidate devices for establishing a shared media session. In this example, the second discovery parameters may specify a faster discovery rate (e.g., a shorter interval between discovery periods) than the first discovery parameters. In some specific implementations, the first discovery parameters specify that discovery is not performed during the shared media session 150. In other specific implementations, the first discovery parameters specify a first time interval between iterations of the discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation. In this example, the first time interval may be longer than the second time interval. For example, the first time interval may be at least 10 times as long as the second time interval, at least 100 times as long as the second time interval, or even at least 1000 times as long as the second time interval. One technical advantage of using a longer time interval between discovery operations while the shared media session 150 is in progress is to reduce the power consumption of the first device 102, the second device 104, or both natively.
[0070] The first device 102 is configured to perform discovery operations based on the current set of discovery parameters. The current set of discovery parameters may be updated occasionally or periodically based on, for example, the power level of the battery of the first device 102, user configurations or other settings associated with the first device 102, the movement of the first device 102 relative to a sensing device or relative to another device or location, the movement of the second device 104 relative to the first device 102 or relative to another device or location, or any combination thereof.
[0071] In a particular implementation, the results of the discovery process can be used to terminate the shared media session 150. For example, during the shared media session 150, the first device 102 can perform one or more discovery processes based on current discovery parameters to update the candidate device list 124. In this example, if the second device 104 has moved out of the communication range or beyond the distance associated with the candidate device list 124, the first device 102 can update the candidate device list 124 to omit the second device 104. In this example, the candidate device list 124 can be sent to the media service 134 via the permission service 130, and the media service 134 can determine that the second device 104 is no longer approved for media sharing based on the updated candidate device list 124. In this example, the media service 134 terminates the shared media session 150 between the first device 102 and the second device 104 based on omitting the second device 104 from the candidate device list 124 of the first device 102.
[0072] In some implementations, the first device 102 can also be configured to add a device to the candidate device list 124 during the shared media session 150. For example, during the shared media session 150 with the second device 104, the first device 102 can perform one or more discovery processes based on current discovery parameters and determine that another device (e.g., a third device) is within the communication range of the sensing device. In this example, the first device 102 can add the third device to the candidate device list 124 and transmit the updated candidate device list 124 to the media service 134 (via the permission service 130). If other sharing criteria are met by the third device, the media service 134 can transmit a sharing invitation to the third device to invite the third device to join the shared media session 150.
[0073] In some specific implementations, after the candidate device list 124 is sent to the licensing service 130, the first device 102 is configured to periodically or occasionally update the candidate device list 124. In some such specific implementations, the first device 102 is configured to update the candidate device list 124 based on one or more wireless signals 120 received during the discovery process, and compare the updated version of the candidate device list 124 with the previous version of the candidate device list 124. In some such examples, the first device 102 is configured to initiate a determination of whether to add a device to the shared media session 150 or terminate a device from the media session 150 based on the differences between the versions of the candidate device list 124. In some such specific implementations, the first device 102 transmits the differences between the versions of the candidate device list 124 to the licensing service 130 instead of transmitting the entire updated candidate device list 124. One technical advantage of transmitting the differences between the versions of the candidate device list 124 is that transmitting the differences requires less data than transmitting the entire updated candidate device list 124; thus, communication resources (e.g., power and bandwidth) are used more efficiently.
[0074] Although Figure 1 the licensing service 130 and the media service 134 are shown as distinct entities, in some specific implementations, the licensing service 130 and the media service 134 are combined or integrated into a single service. Although Figure 1 two devices participating in the shared media session 150 (e.g., the first device 102 and the second device 104) are illustrated, in other specific implementations, more than two devices may be in proximity to each other and may participate in (or be invited to) the shared media session 150. For example, at a gathering in a particular home, any number of guests at the gathering may have personal devices, such as earbuds, headphones, etc., that can join the shared media session 150.
[0075] In some specific implementations, the first device 102 is capable of initiating the shared media session 150 independently of the generation of the candidate device list 124, independently of the licensing service 130, independently of other previously specified sharing conditions at the shared licensing or media service 134, or a combination thereof. For example, independent of other factors, a user of the first device 102 may cause the first device 102 to transmit an instruction to the media service 134 to cause the media service 134 to transmit a sharing invitation to the second device 104.
[0076] As an example of the operation of system 100, the first device 102 is set at a specific location (such as a house, an office, or a shared public space). In this example, the first device 102 can receive media content from the media service 134 via one or more wireless signals. At some point during the operation of the first device 102, the first device 102 (or a sensing device associated with the first device 102) performs one or more discovery operations and discovers that the second device 104 is nearby. For example, the first device 102 can receive a discovery message 122 from the second device 104 and determine that the second device 104 is nearby based on the discovery message 122. As another example, the second device 104 can enter the coverage area of a WLAN supported by the wireless access point 110, and the sensing device of the wireless access point 110 can determine that the second device 104 is nearby and convey this information to the first device 102. In response to determining that the second device 104 is nearby, the first device 102 adds the second device 104 to the candidate device list 124.
[0077] Continuing with this example, the first device 102 periodically or occasionally transmits the candidate device list 124 to the permission service 130. The permission service 130 compares the candidate device list 124 with the permissions associated with the first device 102. For example, the permissions can be based on a contact list associated with the first device 102, can be associated with preconfigured settings associated with the first device 102, or a combination thereof. If the second device 104 is approved for sharing based on the permission list at the permission service 130, the permission service 130 transmits a candidate device list 140 identifying the second device 104 to the media service 134.
[0078] The media service 134 determines whether the second device 104 is associated with a user account at the media service 134 based on the identifier of the second device 104. If the second device 104 is associated with a user account at the media service 134 and if other specified sharing conditions are met, the media service 134 uses the user account information associated with the second device 104 to send a sharing invitation to the second device 104.
[0079] The second device 104 can prompt the user of the second device 104 based on the sharing invitation. For example, the second device 104 can provide an audio output indicating that the first device 102 has invited the second device 104 to join a shared media session 150. As another example, the second device 104 can include a display screen or be associated with a display screen (e.g., the second device 104 can be in wireless communication with a portable communication device 106 that includes a display screen), and the prompt can be displayed to the user via the display screen. When the user confirms joining the shared media session, the second device 104 can send a response to the sharing invitation to the media service 134.
[0080] In response to a sharing invitation from the second device 104, the media service 134 updates the permissions associated with media sharing with the second device 104 and initiates a shared media session 150. For example, the media service 134 sends specific media content to the first device 102 via the media data 144 and sends specific media content to the second device 104 via the media data 142. Additionally, in some embodiments, the media service 134 may send synchronization information together with the media data 142, 144. In some embodiments, the first device 102 and the second device 104 communicate synchronization information with each other. Additionally or alternatively, the first device 102 and the second device 104 receive synchronization information from a synchronization signal generator of another device. Using the media data 142 and the synchronization information, the second device 104 outputs the same media content as the first device 102 simultaneously.
[0081] Figure 1 One technical benefit of the system 100 is that the system enables two or more users to consume specific media content simultaneously (e.g., in real-time synchronization) via the shared media session 150. Figure 1 Another technical benefit of the system 100 is that the shared media session 150 can be established in an ad hoc manner on demand based on the availability or proximity of the devices 102, 104, rather than, for example, requiring the user devices to be linked or pre-configured with each other. Figure 1 Another technical benefit of the system 100 is that resources (such as local battery power) can be saved by setting discovery parameters based on the context associated with one or more of the devices 102, 104. Figure 1 Another technical benefit of the system 100 is that resources (e.g., bandwidth, local battery power, etc.) can be saved by transmitting the differences between versions of the candidate device list 124 rather than transmitting the entire candidate device list 124.
[0082] Figures 2 to 4 Illustrates various examples of operations associated with establishing Figure 1 a shared media session 150 between two or more devices according to some examples of the present disclosure. Figures 2 to 4 Each of the Figure 1 illustrates components of the system 100, including the first device 102, one or more second devices 104, the permission service 130, and the media service 134. Additionally, a sensing device 202 is illustrated in each of the Figures 2 to 4 The first device 102, one or more second devices 104, the permission service 130, the media service 134, and the sensing device 202 include the features and components as described with reference to Figure 1 and are configured to operate as described with reference to Figure 1 .
[0083] Reference Figure 2 illustrates a specific implementation in which the sensing device 202 is separated from the first device 102. In the specific implementation illustrated in Figure 2 , the second device 104 sends the discovery message 204 received by the sensing device 202. Optionally, the first device 102 also sends the discovery message 206 received by the sensing device 202. In Figure 2 , the sensing device 202 identifies nearby devices based on the discovery message 204 and optionally based on the discovery message 206, and transmits a list of candidate devices 124 to the permission service 130. The permission service 130 performs a permission check 210 based on the device identifiers in the list of candidate devices 124 and the permissions associated with the first device 102. Based on the permission check 210, the permission service 130 transmits a list of candidate devices 140 to the media service 134.
[0084] The media service 134 performs a sharing check 212 based on the list of candidate devices 140. For example, the sharing check 212 may include determining whether any device on the list of candidate devices 140 is associated with a user account at the media service 134. Additionally or alternatively, the sharing check 212 may include determining whether sharing conditions associated with the first device 102, the second device 104, or both are met. For example, the sharing conditions may be specified in user-configurable settings (e.g., filtering settings) that indicate whether the user has enabled sharing and, if so, under what conditions sharing may be initiated. If the sharing check 212 indicates that sharing is permitted, the media service 134 may begin the process of attempting to initiate a shared media session 150.
[0085] Optionally (e.g., based on a specific configuration of the media service 134 or the sharing permission of the first device 102), the media service 134 transmits a prompt 214 to the first device 102 requesting approval to initiate a shared media session to determine whether the user of the first device 102 wants to initiate the shared media session 150. The user of the first device 102 may cause the first device 102 to send a response 216 to the prompt 214 to the media service 134 indicating whether to start the shared media session 150, the sharing conditions associated with the shared media session 150, etc.
[0086] Based on the response 216, the result of the sharing check 212, or both, the media service 134 sends a shared media invitation 218 to one or more of the second devices 104. The second device 104 may send a response 220 to the shared media invitation 218 to the media service 134. The media service 134 initiates the shared media session 150 based on the response 220 indicating approval to initiate the shared media session 150.
[0087] In some embodiments, media service 134 is configured to transmit a shared media invitation 218 to second device 104 even if second device 104 is not associated with a user account of media service 134. In such embodiments, shared media invitation 218 may also include an invitation to create a user account using media service 134, an invitation to temporarily use media service without creating a user account, an invitation to download and install an application associated with media service 134 (e.g., a media player), or any combination thereof. For example, when second device 104 is not associated with a user account at media service 134, shared media invitation 218 may include a link for downloading an application associated with media service 134.
[0088] In certain embodiments, shared media session 150 includes one or more media streams communicated via wireless transmission. For example, in Figure 2 , shared media session includes a first media stream 224 sent by media service 134 to first device 102 and a second media stream 226 sent by media service 134 to second device 104. When more than one second device 104 joins shared media session 150, media service 134 sends more than one second media stream 226, such as one second media stream 226 for each of second devices 104. In some embodiments, first media stream 224 corresponds to media content (e.g., streamed audio) that the user of first device 102 has consumed prior to initiating shared media session 150 (e.g., prior to detecting the proximity of second device 104), and upon initiating shared media session 150, transmission of second media stream 226 to second device 104 is initiated. In some other embodiments, transmission of first media stream 224 and second media stream 226 is initiated substantially simultaneously.
[0089] Optionally, synchronization information 228 is transmitted during shared media session 150. Synchronization information 228 may be communicated between sensor device 202 and either or both of first device 102 and second device 104, between each of first device 102 and second device 104, between media service 134 and devices 102, 104, or from another device to devices 102, 104.
[0090] In some embodiments, first device 102 receives first media stream 224 via a first network and second device 104 receives second media stream 226 via a second network. For example, first device 102 may receive first media stream 224 via a network associated with Figure 1via the WiFi connection of the wireless access point 110 to receive the first media stream 224, and the second device 104 can receive the second media stream 226 via the Bluetooth connection with the portable communication device 106. The synchronization information 228 can be configured to facilitate the simultaneous output of media content, regardless of the differences in latency times associated with different networks and / or the differences in latency times associated with the rendering of media content by the first device 102 and the second device 104. For example, the synchronization information 228 can include presentation time data indicating the target output time of a specific portion (e.g., frame) of the media content. In this example, each of the first device 102 and the second device 104 renders the media content for output such that the media content is presented to the user at the presentation time indicated by the presentation time data. In such embodiments, the synchronization information 228 can also include a signal that enables the first device 102 and the second device 104 to establish a common clock to align the broadcast times.
[0091] Reference Figure 3 , illustrates another embodiment in which the sensing device 202 is separated from the first device 102. In Figure 3 the embodiment illustrated in, the second device 104 sends the discovery message 204 received by the sensing device 202. Optionally, the first device 102 can also send the discovery message received by the sensing device 202. In Figure 3 , the sensing device 202 identifies nearby devices based on the discovery message 204 and transmits a list of nearby devices 302 to the first device 102. In Figure 3 , the first device 102 generates a candidate device list 124 based on the list of nearby devices 302 and the user configuration settings of the first device 102 and transmits the candidate device list 124 to the permission service 130. In Figure 3 the example illustrated in, after the first device 102 transmits the candidate device list 124 to the permission service 130, the operation continues as described in reference Figure 2 .
[0092] Reference Figure 4 , illustrates an embodiment in which the sensing device 202 is integrated with the first device 102. In Figure 4 the embodiment illustrated in, the second device 104 sends the discovery message 204 received by the sensing device 202 of the first device 102. In Figure 4 , the sensing device 202 identifies nearby devices based on the discovery message 204, and the first device 102 generates a candidate device list 124 based on the nearby devices and the user configuration settings of the first device 102. The first device 102 transmits the candidate device list 124 to the permission service 130. In Figure 4In the example illustrated, after the first device 102 transmits the candidate device list 124 to the licensing service 130, the operation continues as described with reference to Figure 2 and so on.
[0093] Figure 5 is a block diagram illustrating aspects of a first device 102 according to some examples of the present disclosure, the first device being operable to establish a shared media session with one or more other devices (such as Figure 1 one or more second devices 104). In the example illustrated in Figures 1 to 4 , the first device 102 is an earbud having built-in components 500 that include one or more processors 590, a memory 520, and a portable power source 592. Additionally, the built-in components 500 include one or more input interfaces 514, one or more output interfaces 516, and one or more transceivers ( Figure 5 "XCVR" in Figure 5 ), such as a first transceiver 530 and a second transceiver 532. The processor 590 is configured to execute instructions 522 from the memory 520 to perform one or more operations described with reference to Figures 1 to 4 and so on. Although Figure 5 illustrates an example of the first device 102, in some embodiments, Figures 1 to 4 one or more second devices 104 are configured in a similar manner. Additionally, although Figure 5 illustrates the built-in components 500 integrated within the earbud, in other examples, the built-in components 500 are integrated within another device (such as another wearable device, a vehicle, etc.), as described in any of Figures 9 to 16 and so on.
[0094] In Figure 5 the example illustrated, the operating system components are illustrated with hatching, and the other components are not illustrated with cross-hatching. For example, the operating system components of the first device 102 may include a platform service 540, a user authentication service 554, and a wake word framework 556. In this example, the platform service 540 includes a user interface (UI) manager 542, and the user interface (UI) manager includes a media engine 544 configured to render media content for output via the output interface 516. The platform service 540 also includes a connection manager 546, and the connection manager includes a discovery manager 548. The discovery manager 548 is configured to initiate, control, or perform discovery operations, generate or update the candidate device list 124, update discovery parameters 528, or a combination thereof.
[0095] The user authentication service 554 may be configured to identify and / or authenticate a particular user and determine permissions associated with the user (e.g., access permissions, usage permissions, etc.). For example, the user authentication service 554 may store or be able to access authentication data that the user authentication service 554 uses to identify the user of the first device 102, such as biometric data, speech profiles, passwords, other information or settings, or any combination thereof. In this example, the authentication data may be mapped to permission data indicating the actions that each user is permitted to perform, configuration settings 526 associated with each user, data access permissions, etc., or be associated with them.
[0096] The wake word framework 556 is operable to detect a wake word in user speech received via one or more microphones 502 and enable other operations in response to detecting the wake word. In some embodiments, the wake word framework 556 operates on a low-power or always-on processing unit and is configured to initiate operations at a high-power processing unit when the wake word is detected. Additionally or alternatively, based on the particular wake word detected, the wake word framework 556 provides data to one or more voice assistants 552, 568 based on the user input. For illustration, in Figure 5 the processor 590 is configured to execute the voice assistant 552 as part of a set of embedded services 550 and execute the voice assistant 568 via an application programming interface (API) 564. In this illustrative example, the voice assistants 552, 568 may be associated with different wake words, and the wake word framework 556 is configured to provide information or instructions to each voice assistant 552, 568 based on the particular wake word detected.
[0097] In Figure 5 the example illustrated in, the embedded services 550 are tightly coupled to components of the operating system. However, in Figure 5Among them, the processor 590 is also capable of executing the downloaded application 560 that may be less tightly coupled to the operating system. Some of the downloaded applications 560A are customized to directly interface with components of the operating system. The API 564 facilitates the execution of the downloaded application 560B that is not customized to directly interface with components of the operating system. For example, the voice assistant 568 of the API 564 can be configured to generate instructions, data, or both to control the operation of specific ones among the downloaded applications 560B. For illustration, the downloaded application 560A can include a first media sharing application 570A, and the downloaded application 560B can include a second media sharing application 570B. In this illustrative example, the user can use voice commands to control the first media sharing application 570A or the second media sharing application 570B. When the user wants to provide a voice command, the user says a wake word such as "hey earbud", and after the wake word, says a voice command such as "play music from MusicSource", where "MusicSource" is used as an example of the downloaded application 560 associated with a media service (e.g., Figure 1 the media service 134). In this example, the wake word framework 556 detects the wake word, and based on the detected wake word, transmits the voice command to the voice assistant 568. The voice assistant 568 performs various speech recognition operations to convert the voice command into text, and performs natural language processing operations to parse the text. In this example, based on the parsed text, the voice assistant 568 determines that the voice command points to the MusicSource downloaded application, and generates instructions for opening and executing the MusicSource downloaded application. If the voice command includes additional information, such as a specific media content item to be played by MusicSource, the voice assistant 568 will also generate commands that can be interpreted by the MusicSource downloaded application to play the specified media content item.
[0098] The input interface 514 is coupled to or includes one or more input devices, such as the microphone 502, one or more buttons, one or more switches, one or more keyboards, one or more pointing devices, one or more touchscreens, etc. The output interface 516 is coupled to or includes one or more output devices, such as one or more speakers 504, one or more displays, one or more haptic devices, etc.
[0099] In Figure 5 the example illustrated, the first transceiver 530, the second transceiver 532, or both are configured to communicate with one or more remote devices 508, one or more local devices 510, or both. Additionally, although Figure 5Two transceivers 530, 532 are illustrated, but in other examples, the first device 102 includes more than two transceivers or fewer than two transceivers. For example, in some embodiments, the first device 102 includes a single transceiver configured to communicate using two or more different communication protocols, two or more different frequencies, etc. For illustration, a single transceiver may be coupled to two or more different antennas to transmit and receive wireless signals in two or more different frequency bands. In a particular embodiment, transceivers 530, 532 in combination with discovery manager 548 correspond to Figures 2 to 4 sensing device 202.
[0100] Discovery manager 548 is operable to control the operation of transceivers 530, 532 based on discovery parameters 528 to perform one or more discovery processes. For example, during a particular discovery interval, discovery manager 548 may wake up the first transceiver 530 to listen for discovery messages. Additionally or alternatively, discovery manager 548 may cause the first transceiver 530 to send one or more discovery messages. Further, during a second discovery interval, discovery manager 548 may wake up the second transceiver 532 to listen for discovery messages and / or send discovery messages. Discovery manager 548 determines when to start each discovery interval, the duration of the discovery interval, the operations to be performed during the discovery interval, or a combination thereof, based on discovery parameters 528. In a particular aspect, the discovery interval associated with the first transceiver 530 may be different from the discovery interval associated with the second transceiver 532.
[0101] In a particular embodiment, discovery manager 548 updates or modifies discovery parameters 528 based on the context of the first device 102. For example, the context associated with the first device 102 may include whether the first device 102 has joined a shared media session. For illustration, when the first device 102 is not participating in a shared media session, discovery manager 548 may set discovery parameters 528 such that the first transceiver 530, the second transceiver 532, or both perform discovery operations at a first rate, and when the first device 102 is participating in a shared media session, discovery manager 548 may set discovery parameters 528 such that the first transceiver 530, the second transceiver 532, or both perform discovery operations at a second rate. In this example, the second rate may be slower than the first rate. For example, the first device 102 may perform discovery operations less frequently when joined to Figures 1 to 4 shared media session 150 than when not joined to shared media session 150.
[0102] In addition to updating the discovery parameter 528, the discovery manager 548 may be configured to periodically or occasionally update the determined context of the first device 102. For example, the discovery manager 548 may update the context at a first rate when the first device 102 is not participating in a shared media session and may update the context at a second rate when the first device 102 is participating in a shared media session. In this example, the second rate may be slower than the first rate such that the context is updated less frequently when the first device 102 is participating in the shared media session 150. In other examples, other context information may be used to determine how frequently the context of the first device 102 is updated. By way of illustration, the rate at which the context of the first device 102 is updated may be related to the battery power level of the battery of the first device 102.
[0103] Figure 6 is an illustration of aspects of an operation 600 of components of a first device 102 in accordance with some examples of the present disclosure. Specifically, Figure 5 illustrates an example of the operation of the discovery manager 548. In Figure 6 the example illustrated, the operation 600 may be performed by the discovery manager 548 separately for each transceiver of the first device 102. For example, when the first device 102 includes two transceivers as illustrated in Figure 6 the operation 600 may be performed independently for each of the two transceivers. Figure 5
[0104] The operation 600 includes determining, at block 604, a context associated with the first device 102. For example, the context may include the location of the first device 102, whether the first device 102 is participating in a shared media session, the configuration settings 526 of the first device 102, the power level of the battery of the first device 102, other information, or a combination thereof.
[0105] The operation 600 also includes determining, at block 606, discovery parameters (e.g., discovery parameter 528) based on the context. For example, the discovery parameters may indicate the time interval between iterations of a discovery operation. In some particular implementations, the discovery parameters may indicate whether the discovery operation is passive (e.g., listening for discovery packets from other devices), active (e.g., sending discovery packets), or both.
[0106] The operation 600 also includes setting, at block 608, the discovery parameters. For example, setting the discovery parameters may include storing one or more values of the discovery parameters in the Figure 5 memory 520. In another example, the discovery parameter 528 may be provided to another component of the discovery manager 548, such as a component that controls the discovery operation of the discovery manager 548.
[0107] In Figure 6 In operation 600, optionally, context update parameters are set at block 610. The context update parameters indicate the rate at which the discovery manager 548 determines the context of the first device 102. For example, when the first device 102 is participating in a shared media session, the context update parameters may indicate a first context update interval that is different from a second context update interval used when the first device 102 is not participating in a shared media session. Additionally or alternatively, the context update interval may be set based on the type of media content shared via the shared media session. By way of illustration, when the content shared via the shared media session is music, a first context update interval may be used, and when the content shared via the shared media session is video, a second context update interval may be used. The context update interval may be selected based on the expected duration of the content shared via the shared media session to provide a relatively uninterrupted user experience. For example, a shared media session including a movie will be expected to be longer than a shared media session including a particular song. Thus, in this example, when the shared media session includes a movie, a context update interval that is longer than the context interval used when the shared media session includes a song may be used.
[0108] Operation 600 also includes waiting for a next context update event at block 602 based on the context update parameters. When the next context update event is detected, operation 600 includes performing another iteration of determining the context and setting discovery parameters based on the context.
[0109] In Figure 6 operation 600 also includes waiting for a next discovery event at block 620 based on the discovery parameters. In response to the occurrence of the next discovery event, operation 600 includes performing a discovery operation at block 622 based on the discovery parameters. For example, the discovery operation may include sending one or more discovery packets, receiving one or more discovery packets, or both.
[0110] Operation 600 also includes identifying one or more candidate devices at block 624 based on the discovery operation. The candidate devices include nearby devices discovered via the discovery operation. Operation 600 also includes updating the candidate device list at block 628. For example, one or more of the candidate devices may be added to the candidate device list. As another example, when a particular device that was previously on the candidate device list is no longer detected via the discovery operation, the candidate device list may be updated to remove the particular device.
[0111] Depending on the configuration settings 526 of the first device 102, the candidate device list is then sent to the media service 134 via the permission service 130 to determine whether to initiate a shared media session.
[0112] Figure 7 is illustrative of some examples in accordance with the present disclosureFigure 5 Diagram of aspects of operation 700 of components of the first device 102. Specifically, Figure 7 An example of the operation of the discovery manager 548 is illustrated. In Figure 7 the example illustrated in, operation 700 enables the discovery manager 548 to manage two transceivers, such as Figure 5 the first transceiver 530 and the second transceiver 532.
[0113] Operation 700 includes setting discovery parameters at block 702. In a particular embodiment, the discovery parameters are set based on the context of the first device 102, as described with reference to Figure 6 what is described.
[0114] In Figure 7 it, operation 700 also includes waiting for the next discovery event associated with the first transceiver at block 710 based on the discovery parameters. In response to the occurrence of the next discovery event, operation 700 includes performing a first discovery operation at block 712. The first discovery operation uses the first transceiver and is based on the discovery parameters associated with the first transceiver. For example, the first discovery operation may include sending one or more discovery packets from the first transceiver, receiving one or more discovery packets by the first transceiver, or both.
[0115] Operation 700 also includes identifying a first group of candidate devices at block 714 based on the first discovery operation. The first group of candidate devices includes nearby devices discovered by the first transceiver via the first discovery operation.
[0116] Additionally, in Figure 7 it, operation 700 includes waiting for the next discovery event associated with the second transceiver at block 720 based on the discovery parameters. In response to the occurrence of the next discovery event, operation 700 includes performing a second discovery operation at block 722. The second discovery operation uses the second transceiver and is based on the discovery parameters associated with the second transceiver, which may be different from the discovery parameters associated with the first transceiver. For example, the interval between discovery events associated with the first transceiver may be different from the interval between discovery events associated with the second transceiver. The second discovery operation may include sending one or more discovery packets from the second transceiver, receiving one or more discovery packets by the second transceiver, or both.
[0117] Operation 700 also includes identifying a second group of candidate devices at block 724 based on the second discovery operation. The second group of candidate devices includes nearby devices discovered by the second transceiver via the second discovery operation.
[0118] The operations of blocks 710, 712, 714 may be performed asynchronously (e.g., in parallel and according to an independent schedule) with the operations of blocks 720, 722, 724. Additionally, although Figure 7Illustrates operation 700 associated with the management of two transceivers, but when the first device 102 includes more than two transceivers, operation 700 may include additional sequences of operations similar to those performed for each additional transceiver in blocks 710, 712, 714.
[0119] Operation 700 also includes updating the candidate device list at block 730 based on a first set of candidate devices and a second set of candidate devices. For example, candidate devices from the first set of candidate devices or the second set of candidate devices may be added to or removed from the candidate device list. In some embodiments, a particular device may be included in both the first set of candidate devices and the second set of candidate devices, in which case the particular device is included only once on the candidate device list.
[0120] Depending on the settings 526 of the first device 102, the updated candidate device list is then sent via the licensing service 130 to the media service 134 to determine whether to initiate a shared media session.
[0121] Figure 8 Depicts an embodiment 800 of the first device 102 as an integrated circuit 802 including one or more processors 590. The integrated circuit 802 also includes a signal input 804 (such as one or more bus interfaces) to enable the receipt of data for processing. For example, the processor 590 may receive discovery data 812, media data 814, or both via the signal input 804. In this example, the discovery data 812 includes information describing one or more nearby devices, such as information determined by Figure 5 the discovery manager 548 or information determined based on Figure 1 the discovery message 122 or Figures 2 to 4 the discovery message 204. The media data 814 includes Figure 1 the media data 142 or 144 or Figures 1 to 4 other content of the shared media session 150 (such as the content of the first media stream 224, the second media stream 226, or the synchronization information 228) or corresponds to them.
[0122] The integrated circuit 802 also includes a signal output 806 (such as a bus interface) to enable the transfer of output signals from the processor 590 to other devices. For example, in Figure 8 the output signals include the candidate device list 124 and the media output 822. The media output 822 may include rendered media content provided to an output device (such as the speaker 504) for presentation to the user or corresponds to the rendered media content.
[0123] Processor 590 includes media sharing application 570 to enable integrated circuit 802 to initiate, execute, or control one or more operations to establish a shared media session between two or more devices. Thus, integrated circuit 802 may be included as a component in a device operable to perform media sharing, such as the earbuds depicted in Figure 1 and Figure 5 , the mobile phone or tablet depicted in Figure 9 , the headset depicted in Figure 10 , the wearable electronic device depicted in Figure 11 , the voice-controlled speaker system depicted in Figure 12 , the camera depicted in Figure 13 , the virtual reality, mixed reality, or augmented reality headset depicted in Figure 14 , or the vehicle depicted in Figure 15 or Figure 16 .
[0124] As an illustrative, non-limiting example, Figure 9 illustrates a particular implementation 900 in which the first device 102 includes a mobile device 902 (such as a phone or a tablet). The mobile device 902 includes a microphone 502, a speaker 504, and a display screen 904. Figure 5 One or more of the built-in components 500 of
[0125] Figure 10 Figure 5 including the media sharing application 570 are integrated in the mobile device 902 and are illustrated using dashed lines to indicate internal components that are generally not visible to the user of the mobile device 902. In a particular example, the media sharing application 570 is operable to interact with other components of the mobile device 902 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some implementations, the speaker 504, the display screen 904, or both may be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session may be displayed to the user via the display screen 904 or presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via soft buttons presented via the display screen 904, via voice commands detected by the microphone 502, or both. As another example, the video of the media content of the shared media session may be displayed to the user via the display screen 904, and the audio of the media content of the shared media session may be output by the speaker 504.
[0125] Figure 10 illustrates a particular implementation 1000 in which the first device 102 includes a headset device 1002. The headset device 1002 includes a microphone 502 and a speaker 504. Figure 5One or more of the built-in components 500 (including the media sharing application 570) are integrated in the headset device 1002. In a particular example, the media sharing application 570 is operable to interact with other components of the headset device 1002 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some embodiments, the speaker 504 and the microphone 502 may be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session may be presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via a button on the headset device 1002, via a voice command detected by the microphone 502, or both. As another example, the audio of the media content of the shared media session may be output by the speaker 504.
[0126] Figure 11 Illustrative embodiment 1100 is depicted in which the first device 102 includes a wearable electronic device 1102 (illustrated as a "smartwatch"). The wearable electronic device 1102 includes a microphone 502, a speaker 504, and a display screen 1104. Figure 5 One or more of the built-in components 500 (including the media sharing application 570) are integrated in the wearable electronic device 1102. In a particular example, the media sharing application 570 is operable to interact with other components of the wearable electronic device 1102 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some embodiments, the speaker 504, the display screen 1104, or both may be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session may be displayed to the user via the display screen 1104 or presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via soft buttons presented via the display screen 1104, via a voice command detected by the microphone 502, or both. As another example, the video of the media content of the shared media session may be displayed to the user via the display screen 1104, and the audio of the media content of the shared media session may be output by the speaker 504.
[0127] Figure 12 Illustrative embodiment 1200 is one in which the first device 102 includes a wireless speaker and a voice-activated device 1202. The wireless speaker and the voice-activated device 1202 may have wireless network connectivity and be configured to perform auxiliary operations. The wireless speaker and the voice-activated device 1202 include a speaker 504 and a microphone 502. Figure 5One or more of the built-in components 500 (including the media sharing application 570) are integrated in the wireless speaker and voice activation device 1202. In a particular example, the media sharing application 570 is operable to interact with other components of the wireless speaker and voice activation device 1202 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some embodiments, the speaker 504 and the microphone 502 may be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session may be presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via a voice command detected by the microphone 502. As another example, the audio of the media content of the shared media session may be output by the speaker 504. The wireless speaker and voice activation device 1202 is also configured to perform other auxiliary operations, such as adjusting the temperature, playing music, turning on the lights, etc. For example, the auxiliary operation is performed in response to receiving a command after a keyword or key phrase (e.g., "hello assistant").
[0128] Figure 13 Embodiment 1300 is depicted in which the first device 102 includes a portable electronic device corresponding to the camera device 1302. The camera device 1302 includes a microphone 502, a speaker 504, and may also include (e.g., on the side of the camera device 1302 that is not visible in Figure 13 the) display device. Figure 5 One or more of the built-in components 500 (including the media sharing application 570) are integrated in the camera device 1302. In a particular example, the media sharing application 570 is operable to interact with other components of the camera device 1302 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some embodiments, the speaker 504, the display screen, or both may be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session may be displayed to the user via the display screen or presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via soft buttons presented through the display screen, via physical buttons of the camera device 1302, via a voice command detected by the microphone 502, or a combination thereof. As another example, the video of the media content of the shared media session may be displayed to the user via the display screen, and the audio of the media content of the shared media session may be output by the speaker 504.
[0129] Figure 14Depicts a specific implementation 1400 in which the first device 102 includes a portable electronic device corresponding to a virtual reality, mixed reality, or augmented reality headset 1402. The headset 1402 includes a microphone 502, a speaker 504, and a visual interface device is positioned in front of the user's eyes to enable the display of augmented reality, mixed reality, or virtual reality images or scenes to the user when the headset 1402 is worn. Figure 5 One or more of the built-in components 500 (including the media sharing application 570) are integrated in the headset 1402. In a particular example, the media sharing application 570 is operable to interact with other components of the headset 1402 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some specific implementations, the speaker 504, the visual interface device, or both can be used to facilitate the establishment of a shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing a shared media session can be displayed to the user via the visual interface device or presented as an audio output from the speaker 504. In this example, the user can provide a response to such a prompt via soft buttons presented via the visual interface device, via voice commands detected by the microphone 502, or both. As another example, the video of the media content of the shared media session can be displayed to the user via the visual interface device, and the audio of the media content of the shared media session can be output by the speaker 504.
[0130] Figure 15 Depicts a specific implementation 1500 in which the first device 102 corresponds to or is integrated within a vehicle 1502 (illustrated as a manned or unmanned aerial device (e.g., a package delivery drone)). The vehicle 1502 includes a microphone 502 and a speaker 504. User speech activity detection can be performed based on an audio signal received from the microphone 502 of the vehicle 1502 such as a delivery instruction for an authorized user from the vehicle 1502. Additionally, Figure 5One or more of the built-in components 500 (including the media sharing application 570) are integrated in the vehicle 1502. In a particular example, the media sharing application 570 is operable to interact with other components of the vehicle 1502 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device. In some embodiments, the speaker 504 may be used to facilitate the establishment of the shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing the shared media session may be presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via a voice command detected by the microphone 502. As another example, the audio of the media content of the shared media session may be output by the speaker 504.
[0131] Figure 16 Depicts another embodiment 1600 in which the first device 102 corresponds to or is integrated within a vehicle 1602 (illustrated as a car). The vehicle 1602 includes a microphone 502, a speaker 504, and a display screen 1620. In some embodiments, the microphone 502 is positioned to capture the words of the operator or passenger of the vehicle 1602. User speech activity detection may be performed based on the audio signal received from the microphone 502.
[0132] Figure 5 One or more of the built-in components 500 (including the media sharing application 570) are integrated in the vehicle 1602. In a particular example, the media sharing application 570 is operable to interact with other components of the vehicle 1602 (such as the built-in components 500) to interact with a media service to establish and conduct a shared media session with another device (e.g., another vehicle or the user's wearable device). In some embodiments, the speaker 504, the display screen 1620, or both may be used to facilitate the establishment of the shared media session, the consumption of media content via the shared media session, or both. For example, a prompt related to establishing the shared media session may be displayed to the user via the display screen 1620 or presented as an audio output from the speaker 504. In this example, the user may provide a response to such a prompt via soft buttons presented via the display screen 1620, via physical buttons of the vehicle 1602 (such as buttons mounted on the steering wheel or dashboard buttons), via a voice command detected by the microphone 502, or a combination thereof. As another example, the video of the media content of the shared media session may be displayed to the user via the display screen 1620, and the audio of the media content of the shared media session may be output by the speaker 504.
[0133] Reference Figure 17, which shows a particular implementation of a method 1700 for establishing a shared media session. In a particular aspect, one or more operations of the method 1700 are performed by Figures 1 to 4 the first device 102 or the second device 104 of Figure 5 the built-in component 500 or the processor 590 of Figure 1 the system 100 of
[0134] The method 1700 includes, at block 1702, determining a list of candidate devices (e.g., Figure 1 the candidate device list 124 of
[0135] identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals. For example, in some implementations, the method 1700 includes receiving a first wireless signal via a first transceiver according to a first communication protocol and determining a first set of candidate devices within the first communication range of the first transceiver based on the first wireless signal. In this example, the candidate device list identifies the first set of candidate devices. Additionally, in some such implementations, the method 1700 includes receiving a second wireless signal according to a second communication protocol and determining a second set of candidate devices within the second communication range of a second transceiver based on the second wireless signal. In such implementations, the candidate device list identifies the first set of candidate devices and the second set of candidate devices. Figure 1 the portable communication device 106 of Figure 1 the wireless access point 110 of
[0136] In some specific implementations, method 1700 includes determining whether the particular device is within the communication range of one or more sensing devices based on a distance metric indicating an estimated distance between the particular device and at least one of the one or more sensing devices. In the same or different specific implementations, method 1700 includes determining whether the particular device is within the communication range of one or more sensing devices based at least in part on the received signal strength of a transmission from the particular device. In the same or different specific implementations, method 1700 includes determining whether the particular device is within the communication range of one or more sensing devices based at least in part on the location coordinates of the particular device.
[0137] Method 1700 includes determining, at block 1704, to initiate a shared media session with a second device in a list of candidate devices. In some specific implementations, the determination of whether to initiate a shared media session is based at least in part on one or more permission lists associated with the first device, the second device, or both. For example, the shared media session may be initiated based on determining that the second device is identified on a permission list associated with a remote media service. In this example, the permission list associated with the remote media service may include a list of devices associated with a user account at the media service. Additionally or alternatively, the permission list associated with the remote media service may include a list of devices from the user of the first device and stored on the server of the media service, where the list indicates devices that the user has been approved for media sharing.
[0138] In some specific implementations, the first device may initiate a shared media session. In such specific implementations, based on determining to initiate a shared media session with the second device, method 1700 includes causing a share invitation to be sent to the second device. For example, the first device 102 may command Figure 1 the media service 1340 to transmit a share invitation to the second device 104. The share invitation may identify the specific media content to be shared during the shared media session. Additionally or alternatively, the share invitation may identify the first device, the user associated with the first device, or both. In some specific implementations, the share invitation includes a resource address associated with the shared media session.
[0139] In some specific implementations, the second device may initiate a shared media session, in which case the first device may receive a share invitation from the remote media service, and the shared media session may be initiated based on the first device sending a share acceptance message to the remote media service. In such specific implementations, the share invitation may include a resource address associated with the shared media session, and the share acceptance message may include a request to access the resource address.
[0140] Method 1700 includes: at block 1706, receiving a media stream including specific media content from a remote media service while the specific media content is being transmitted from the remote media service to a second device; and at block 1708, causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information. In a particular implementation, at least a portion of the synchronization information is received at the first device from the remote media service, from the second device, or from another device including a synchronization signal generator. The media content includes audio content, gaming content, video content, extended reality content, or a combination thereof, or corresponds to audio content, gaming content, video content, extended reality content, or a combination thereof.
[0141] Figure 17 Method 1700 can be implemented by a field programmable gate array (FPGA) device, an application specific integrated circuit (ASIC), a processing unit (such as a central processing unit (CPU)), a DSP, a controller, another hardware device, a firmware device, or any combination thereof. As an example, Figure 17 Method 1700 can be executed by a processor that executes instructions, such as described with reference to Figure 20 as described.
[0142] With reference to Figure 18 illustrates a particular implementation of method 1800 for establishing a shared media session. In a particular aspect, one or more operations of method 1800 are performed by Figures 1 to 4 the first device 102 or the second device 104, Figure 5 the built-in component 500 or the processor 590 of Figure 1 the system 100, or at least one of their combinations.
[0143] Method 1800 includes setting first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session at block 1802. In a particular implementation, a shared media session can be established as described with reference to Figure 17 , Figure 19 or both. The shared media session can include, for example, a first media stream 224 to the first device 102 and a second media stream 226 to the second device 104, as in Figures 2 to 4as illustrated. In this example, the first media stream 224 and the second media stream 226 include the same media content (e.g., the same song, the same movie, etc.). In addition to the media content of the shared media session, the synchronization information associated with the shared media session can also be transmitted to the first device, the second device, or both. For example, the first device 102 can transmit synchronization information to the second device 104. As another example, the second device 104 can transmit synchronization information to the first device 102. As yet another example, another local or remote device can transmit synchronization information to the first device 102 and the second device 104.
[0144] Method 1800 includes setting second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session at block 1804. The second discovery parameters specify a discovery rate that is faster than the first discovery parameters.
[0145] In some embodiments, the shared media session is associated with a particular media content item, and the shared media session is terminated based on reaching the end of the particular media content item. In other embodiments, the shared media session is associated with multiple media content items of a media stream, and the shared media session is terminated when the media stream is terminated.
[0146] In some embodiments, the first discovery parameters specify no discovery during the shared media session. In such embodiments, when the first device is participating in the shared media session, the first device does not transmit discovery messages, does not receive discovery messages, or both. In some embodiments, the first discovery parameters specify a first time interval between iterations of the discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation. In such embodiments, the first time interval is typically significantly longer than the second time interval, such as at least ten times as long as the second time interval, at least one hundred times as long as the second time interval, or at least one thousand times as long as the second time interval.
[0147] During the first time period, during the second time period, or both, method 1800 may include initiating one or more discovery processes based on current discovery parameters to determine a list of candidate devices that identify one or more devices within the communication range of the sensing device. The list of candidate devices can be used to determine whether to add a device to a shared media session, whether to remove a device from a shared media session, whether to initiate a shared media session, and so on. For example, during the first time period (e.g., when a first device is participating in a shared media session), method 1800 may include initiating a determination of whether to invite one or more of the candidate devices to be added to the shared media session or initiating a determination of whether to remove a particular device from the shared media session. As another example, during the second time period (e.g., after the shared media session has been terminated), method 1800 may include initiating a determination of whether to initiate a second shared media session with one or more of the candidate devices. In some specific implementations, method 1800 also includes determining the difference between the current list of candidate devices and a previous list of candidate devices. In such specific implementations, the determination of whether to initiate or terminate a shared media session may be based on these differences.
[0148] In some specific implementations, method 1800 includes receiving a first wireless signal according to a first communication protocol based on current discovery parameters to discover a first candidate device for media sharing, and receiving a second wireless signal according to a second communication protocol based on current discovery parameters to discover a second candidate device for media sharing. In such specific implementations, method 1800 includes determining a list of candidate devices based on the first candidate device and the second candidate device.
[0149] Figure 18 Method 1800 can be implemented by a field programmable gate array (FPGA) device, an application specific integrated circuit (ASIC), a processing unit (such as a central processing unit (CPU)), a DSP, a controller, another hardware device, a firmware device, or any combination thereof. As an example, Figure 18 Method 1800 can be executed by a processor that executes instructions, such as described with reference to Figure 20 as described.
[0150] Referring to Figure 19 illustrates a particular specific implementation of method 1900 for establishing a shared media session. In a particular aspect, one or more operations of method 1900 are performed by Figure 1 one or more devices of system 100 (such as by server 136 of media service 134, server 132 of license service 130, or a combination thereof).
[0151] Method 1900 includes obtaining, at block 1902, a list of candidate devices associated with a first device. The list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. For example, the list of candidate devices may be determined based on one or more of the wireless signals 120 of Figure 1 In this example, the wireless signals 120 may include discovery messages (such as the discovery message 122 of Figure 1 or the discovery messages 204, 206 of Figures 2 to 4 ). The wireless signals 120 may be used to determine that one or more devices are nearby (e.g., within the communication range of the sensing device). The proximity of a device may be determined based on the location coordinates of the "nearby" device, the received signal strength of the signal from the device, etc.
[0152] In some embodiments, the first device or the sensing device transmits the list of candidate devices to a licensing service, and the licensing service verifies that the devices on the list of candidate devices are approved for sharing based on a license associated with the first device. In such embodiments, the licensing service transmits the list of candidate devices identifying the approved devices to a media service. For example, Figure 1 the licensing service 130 receives the list of candidate devices 124 and uses the list of candidate devices 124 to generate a list of candidate devices 140, which is transmitted to the media service 134.
[0153] Method 1900 includes transmitting, at block 1904, a sharing invitation to a second device in the list of candidate devices based on license data associated with the first device. For example, the license data may identify a list of devices approved for media sharing at a media service (such as devices associated with a user account at the media service). In some embodiments, the sharing invitation includes a resource address associated with the shared media session.
[0154] In some embodiments, before transmitting the sharing invitation, the media service may be configured to transmit a prompt to the first device to request approval from the first device to initiate a shared media session with the second device. In such embodiments, the license data is at least partially based on the response to the prompt. For example, if the response (e.g., in response to an input by a user of the first device, such as via a voice interface or tapping a specific button on the first device) approves the initiation of the shared media session, the license is updated to indicate that the second device is approved for media sharing, and the media service transmits the sharing invitation to the second device based on the license indicating that the second device is approved for media sharing.
[0155] Method 1900 includes: at block 1906, transmitting a first media stream including specific media content to a first device based on a response to a sharing invitation; and at block 1908, while transmitting the first media stream to the first device, transmitting a second media stream including the specific media content to a second device for output at the second device simultaneously with the output of the specific media content at the first device.
[0156] For example, a shared media session may include a first media stream 224 to a first device and a second media stream 226 to a second device, as illustrated in Figures 2 to 4 . In this example, the first media stream 224 and the second media stream 226 include the same media content (e.g., the same song, the same movie, etc.). In addition to the media content of the shared media session, synchronization information associated with the shared media session may also be transmitted to the first device, the second device, or both. For example, the first device 102 may transmit synchronization information to the second device 104. As another example, the second device 104 may transmit synchronization information to the first device 102. As yet another example, another local or remote device may transmit synchronization information to the first device 102 and the second device 104.
[0157] Figure 19 Method 1900 of Figure 19 may be implemented by a field programmable gate array (FPGA) device, an application specific integrated circuit (ASIC), a processing unit (such as a central processing unit (CPU)), a DSP, a controller, another hardware device, a firmware device, or any combination thereof. As an example, Figure 20 Method 1900 of
[0158] may be executed by a processor executing instructions, such as described with reference to Figure 20 . Referring to Figure 20 , a block diagram depicts a particular illustrative implementation of a device and generally designates the device as 2000. In various implementations, the device 2000 may have more or fewer components than those illustrated in Figure 1 . In an illustrative implementation, the device 2000 may correspond to the first device 102, the second device 104, the portable communication device 106, the wireless access point 110, the server 132, or the server 136 of Figures 2 to 4 or the sensing device 202 of Figures 1 to 19 . In an illustrative implementation, the device 2000 may perform one or more operations described with reference to
[0159] In a particular implementation, the device 2000 includes a processor 2006 (e.g., a central processing unit (CPU)). The device 2000 may include one or more additional processors 2010 (e.g., one or more DSPs). In a particular aspect, Figure 5The processor 590 corresponds to the processor 2006, the processor 2010, or a combination thereof. The processor 2010 may include a speech and music decoder - decoder (CODEC) 2008, which includes a speech decoder ("vocoder") encoder 2036, a vocoder decoder 2038, a media sharing application 570, or a combination thereof.
[0160] The device 2000 may include a memory 2086 and a CODEC 2034. The memory 2086 may include instructions 2056, which may be executed by one or more additional processors 2010 (or the processor 2006) to implement the functions described with reference to the media sharing application 570. The device 2000 may include a modem 2054 coupled to an antenna 2052 via a transceiver 2050.
[0161] The device 2000 may include a display 2028 coupled to a display controller 2026. A speaker 2092 and a microphone 2090 may be coupled to the CODEC 2034. In some embodiments, the speaker 2092 includes Figure 5 the speaker 504 or corresponds to the speaker, and the microphone 2090 includes Figure 5 the microphone 502 or corresponds to the microphone.
[0162] The CODEC 2034 may include a digital - to - analog converter (DAC) 2002, an analog - to - digital converter (ADC) 2004, or both. In a particular embodiment, the CODEC 2034 may receive an analog signal from the microphone 2090, use the analog - to - digital converter 2004 to convert the analog signal to a digital signal, and provide the digital signal to the speech and music codec 2008. The speech and music codec 2008 may process the digital signal, and the digital signal may be further processed by the media sharing application 570. In a particular embodiment, the speech and music codec 2008 may provide the digital signal to the CODEC 2034. The CODEC 2034 may use the digital - to - analog converter 2002 to convert the digital signal to an analog signal, and may provide the analog signal to the speaker 2092.
[0163] In a particular embodiment, the device 2000 may be included in a system - in - package or system - on - chip device 2022. In a particular embodiment, the memory 2086, the processor 2006, the processor 2010, the display controller 2026, the CODEC 2034, and the modem 2054 are included in the system - in - package or system - on - chip device 2022. In a particular embodiment, the input device 2030 and the power supply 2044 (e.g., Figure 5The portable power source 592) is coupled to the system - in - package or system - on - chip device 2022. Additionally, in a particular embodiment, as in Figure 20 As illustrated in, the display 2028, input device 2030, speaker 2092, microphone 2090, antenna 2052, and power source 2044 are external to the system - in - package or system - on - chip device 2022. In a particular embodiment, each of the display 2028, input device 2030, speaker 2092, microphone 2090, antenna 2052, and power source 2044 may be coupled to components of the system - in - package or system - on - chip device 2022, such as an interface or a controller.
[0164] The device 2000 may include a smart speaker, a soundbar, a mobile communication device, a smartphone, a cellular phone, a laptop computer, a computer, a tablet, a personal digital assistant, a display device, a television, a game console, a music player, a radio, a digital video player, a digital video disc (DVD) player, a tuner, a camera, a navigation device, a vehicle, a pair of headphones, an augmented reality headset, a mixed reality headset, a virtual reality headset, an aircraft, a home automation system, a voice - activated device, a wireless speaker and voice - activated device, a portable electronic device, one or more earbuds, a computing device, a communication device, an Internet of Things (IoT) device, a virtual reality (VR) device, a base station, a mobile device, or any combination thereof.
[0165] In connection with the described embodiments, an apparatus includes means for determining a list of candidate devices that identify one or more devices within the communication range of one or more sensing devices based on one or more wireless signals. For example, the means for determining the list of candidate devices may correspond to the system 100, the first device 102, the wireless access point 110, the server 132, the sensing device 202, the built - in component 500, the processor 590, the discovery manager 548, the media sharing application 570, the processor 2006, the processor 2010, one or more other circuits or components configured to determine the list of candidate devices based on one or more wireless signals, or any combination thereof.
[0166] The apparatus further includes components for receiving a media stream including the specific media content from a remote media while determining to initiate a shared media session between a first device and a second device in a candidate device list and while the specific media content is being transmitted from the remote media service to the second device. For example, the components for receiving the media stream may correspond to system 100, first device 102, built-in component 500, first transceiver 530, second transceiver 532, media engine 544, processor 590, media sharing application 570, processor 2006, processor 2010, transceiver 2050, modem 2054, one or more other circuits or components configured to receive the media stream, or any combination thereof.
[0167] The apparatus further includes components for causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information. For example, the components for causing the specific media content to be output simultaneously with the output of the specific media content at the second device may correspond to system 100, first device 102, built-in component 500, output interface 516, media engine 544, processor 590, media sharing application 570, processor 2006, processor 2010, transceiver 2050, one or more other circuits or components configured to cause media content to be output simultaneously with the output of the media content at another device, or any combination thereof.
[0168] In connection with the specific implementation described, an apparatus includes components for setting first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session. For example, the components for setting the first discovery parameters during the time period after initiating a shared media session may correspond to system 100, first device 102, sensing device 202, built-in component 500, processor 590, discovery manager 548, media sharing application 570, processor 2006, processor 2010, one or more other circuits or components configured to set discovery parameters, or any combination thereof.
[0169] The apparatus further includes components for setting second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, where the second discovery parameters specify a discovery rate faster than the first discovery parameters. For example, the components for setting the second discovery parameters during the time period after terminating the shared media session may correspond to system 100, first device 102, sensing device 202, built-in component 500, processor 590, discovery manager 548, media sharing application 570, processor 2006, processor 2010, one or more other circuits or components configured to set discovery parameters, or any combination thereof.
[0170] In connection with the described specific implementations, a device includes components for obtaining a list of candidate devices associated with a first device, where the list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. For example, the components for obtaining the list of candidate devices may correspond to system 100, first device 102, wireless access point 110, server 132, server 136, sensing device 202, built-in components 500, processor 590, discovery manager 548, media sharing application 570, processor 2006, processor 2010, one or more other circuits or components configured to obtain the list of candidate devices, or any combination thereof.
[0171] The device further includes components for transmitting a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device. For example, the components for transmitting the sharing invitation may correspond to system 100, server 136, processor 2006, processor 2010, one or more other circuits or components configured to transmit the sharing invitation, or any combination thereof.
[0172] The device further includes components for transmitting a first media stream including specific media content to the first device based on a response to the sharing invitation. For example, the components for transmitting the first media stream may correspond to system 100, server 136, processor 2006, processor 2010, one or more other circuits or components configured to transmit the first media stream, or any combination thereof.
[0173] The device further includes components for transmitting a second media stream including specific media content to the second device while transmitting the first media stream to the first device for output at the second device simultaneously with the output of the specific media content at the first device. For example, the components for transmitting the second media stream may correspond to system 100, server 136, processor 2006, processor 2010, one or more other circuits or components configured to transmit the second media stream, or any combination thereof.
[0174] In some specific implementations, a non-transitory computer-readable medium (e.g., a computer-readable storage device such as Figure 5 memory 520 or Figure 20 memory 2086) includes instructions (e.g., Figure 5 instructions 522 or Figure 20 instructions 2056), which when executed by one or more processors (e.g., Figure 5 processor 590, Figure 20 one or more processors 2010, or Figure 20When executed by one or more processors (e.g., processor 2006), cause one or more processors to determine a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals. These instructions may further be executed by the processor to cause the processor to initiate a shared media session with a second device in the candidate device list and receive a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device. These instructions may further be executed by the processor to cause the processor to output the specific media content simultaneously with the output of the specific media content at the second device based on synchronization information.
[0175] In some embodiments, a non-transitory computer-readable medium (e.g., a computer-readable storage device such as Figure 5 memory 520 or Figure 20 memory 2086) includes instructions (e.g., Figure 5 instructions 522 or Figure 20 instructions 2056), which when executed by one or more processors (e.g., Figure 5 processor 590, Figure 20 one or more processors 2010 or Figure 20 processor 2006), cause one or more processors to set first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating the shared media session. These instructions may further be executed by the processor to cause the processor to set second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, where the second discovery parameters specify a faster discovery rate than the first discovery parameters.
[0176] In some embodiments, a non-transitory computer-readable medium (e.g., a computer-readable storage device such as Figure 20 memory 2086) includes instructions (e.g., Figure 20 instructions 2056), which when executed by one or more processors (e.g., Figure 20When executed by one or more processors 2010 or processor 2006), cause one or more processors to obtain a list of candidate devices associated with a first device, where the list of candidate devices identifies one or more devices within the communication range of a sensing device associated with the first device. These instructions may further be executed by the processor to cause the processor to transmit a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device, and based on a response to the sharing invitation, transmit a first media stream including specific media content to the first device. These instructions may further be executed by the processor to cause the processor to transmit a second media stream including specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device while transmitting the first media stream to the first device.
[0177] Specific aspects of the present disclosure are described below in groups of related embodiments:
[0178] According to Embodiment 1, a first device includes one or more processors configured to: determine a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and initiate a shared media session with a second device in the list of candidate devices based on the determination: receive a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0179] Embodiment 2 includes the first device according to Embodiment 1, where the first device further includes the one or more sensing devices, where the one or more sensing devices include a first transceiver coupled to the one or more processors and operable to receive a first wireless signal according to a first communication protocol, where the one or more processors are further configured to determine a first set of candidate devices within the first communication range of the first transceiver based on the first wireless signal, and where the list of candidate devices identifies the first set of candidate devices.
[0180] Embodiment 3 includes the first device according to Embodiment 2, where the one or more sensing devices further include a second transceiver coupled to the one or more processors and operable to receive a second wireless signal according to a second communication protocol, where the one or more processors are further configured to determine a second set of candidate devices within the second communication range of the second transceiver based on the second wireless signal, and where the list of candidate devices identifies the second set of candidate devices.
[0181] Example 4 includes the first device according to any one of Examples 1 to 3, the first device further including one or more transceivers coupled to the one or more processors and operable to communicate with the one or more sensing devices to determine the candidate device list.
[0182] Example 5 includes the first device according to Example 4, wherein the one or more sensing devices include a portable communication device.
[0183] Example 6 includes the first device according to Example 4 or Example 5, wherein the one or more sensing devices include a wireless access point.
[0184] Example 7 includes the first device according to any one of Examples 1 to 6, the first device further including a portable power source coupled to the one or more processors, and wherein the one or more processors are further configured to selectively determine whether to activate a first sensing device at least in part based on whether a second sensing device is accessible, wherein the first sensing device is coupled to the portable power source and the second sensing device is not coupled to the portable power source.
[0185] Example 8 includes the first device according to any one of Examples 1 to 7, the first device further including a modem coupled to the one or more processors and operable to receive the media stream via one or more wireless transmissions.
[0186] Example 9 includes the first device according to any one of Examples 1 to 8, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the remote media service.
[0187] Example 10 includes the first device according to any one of Examples 1 to 9, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the first device.
[0188] Example 11 includes the first device according to any one of Examples 1 to 10, wherein the shared media session is initiated based on determining that the second device is associated with an account of the remote media service.
[0189] Example 12 includes the first device according to any one of Examples 1 to 11, wherein the one or more processors are further configured to determine whether the particular device is within the communication range of the one or more sensing devices based on a distance metric indicating an estimated distance between the particular device and at least one of the one or more sensing devices.
[0190] Example 13 includes the first device according to any one of Examples 1 to 12, wherein the one or more processors are further configured to determine whether the particular device is within the communication range of the one or more sensing devices at least in part based on the received signal strength of the transmission from the particular device.
[0191] Example 14 includes the first device according to any one of Examples 1 to 13, wherein the one or more processors are further configured to determine whether the particular device is within the communication range of the one or more sensing devices at least in part based on the location coordinates of the particular device.
[0192] Example 15 includes the first device according to any one of Examples 1 to 14, wherein the one or more processors are further configured to initiate a shared media session with the second device based on the determination and cause a share invitation to be sent to the second device.
[0193] Example 16 includes the first device according to Example 15, wherein causing the share invitation to be sent to the second device includes commanding the remote media service to transmit the share invitation.
[0194] Example 17 includes the first device according to Example 15 or Example 16, wherein the share invitation identifies the particular media content.
[0195] Example 18 includes the first device according to any one of Examples 15 to 17, wherein the share invitation identifies the first device, the user associated with the first device, or both.
[0196] Example 19 includes the first device according to any one of Examples 15 to 18, wherein the share invitation includes a resource address associated with the shared media session.
[0197] Example 20 includes the first device according to any one of Examples 1 to 19, wherein the one or more processors are further configured to: receive a share invitation from the remote media service; and send a share acceptance message to the remote media service based on the determination to initiate the shared media session.
[0198] Example 21 includes the first device according to Example 20, wherein the share invitation includes a resource address associated with the shared media session, and the share acceptance message includes a request to access the resource address.
[0199] Example 22 includes the first device according to any one of Examples 1 to 21, wherein the one or more processors are further configured to receive at least a portion of the synchronization information from the remote media service.
[0200] Example 23 includes the first device according to any one of Examples 1 to 22, wherein the one or more processors are further configured to receive at least a portion of the synchronization information from the second device.
[0201] Example 24 includes the first device according to any one of Examples 1 to 23, wherein the one or more processors are further configured to receive at least a portion of the synchronization information from a synchronization signal generator.
[0202] Example 25 includes the first device according to any one of Examples 1 to 24, wherein the specific media content corresponds to audio content.
[0203] Example 26 includes the first device according to any one of Examples 1 to 24, wherein the specific media content corresponds to game content.
[0204] Example 27 includes the first device according to any one of Examples 1 to 24, wherein the specific media content corresponds to video content.
[0205] Example 28 includes the first device according to any one of Examples 1 to 24, wherein the specific media content corresponds to extended reality content.
[0206] According to Example 29, a method includes: determining, by one or more processors of a first device, a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and initiating, based on the determination, a shared media session with a second device in the list of candidate devices: receiving, by the one or more processors, a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device; and causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0207] Example 30 includes the method according to Example 29, the method further including: receiving, via a first transceiver, a first wireless signal according to a first communication protocol; and determining, based on the first wireless signal, a first group of candidate devices within a first communication range of the first transceiver, wherein the list of candidate devices identifies the first group of candidate devices.
[0208] Example 31 includes the method according to Example 30, the method further comprising: receiving a second wireless signal according to a second communication protocol; and determining, based on the second wireless signal, a second group of candidate devices within a second communication range of a second transceiver, wherein the candidate device list identifies the second group of candidate devices.
[0209] Example 32 includes the method according to any one of Examples 29 to 31, the method further comprising communicating with the one or more sensing devices to determine the candidate device list.
[0210] Example 33 includes the method according to Example 32, wherein the one or more sensing devices include a portable communication device.
[0211] Example 34 includes the method according to Example 32 or Example 33, wherein the one or more sensing devices include a wireless access point.
[0212] Example 35 includes the method according to any one of Examples 29 to 34, the method further comprising selectively determining whether to activate a first sensing device at least in part based on whether a second sensing device is accessible, wherein the first sensing device is coupled to a first portable power source and the second sensing device is not coupled to the first portable power source.
[0213] Example 36 includes the method according to any one of Examples 29 to 35, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the remote media service.
[0214] Example 37 includes the method according to any one of Examples 29 to 36, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the first device.
[0215] Example 38 includes the method according to any one of Examples 29 to 37, wherein the shared media session is initiated based on determining that the second device is associated with an account of the remote media service.
[0216] Example 39 includes the method according to any one of Examples 29 to 38, the method further comprising determining whether a particular device is within the communication range of the one or more sensing devices based on a distance metric indicating an estimated distance between the particular device and at least one of the one or more sensing devices.
[0217] Example 40 includes the method according to any one of Examples 29 to 39, the method further comprising determining whether the particular device is within the communication range of the one or more sensing devices based at least in part on the received signal strength of transmissions from the particular device.
[0218] Example 41 includes the method according to any one of Examples 29 to 40, the method further comprising determining whether the particular device is within the communication range of the one or more sensing devices based at least in part on the location coordinates of the particular device.
[0219] Example 42 includes the method according to any one of Examples 29 to 41, the method further comprising sending a sharing invitation to the second device based on determining to initiate the shared media session with the second device.
[0220] Example 43 includes the method according to Example 42, wherein sending the sharing invitation to the second device includes commanding the remote media service to transmit the sharing invitation.
[0221] Example 44 includes the method according to Example 42 or Example 43, wherein the sharing invitation identifies the particular media content.
[0222] Example 45 includes the method according to any one of Examples 42 to 44, wherein the sharing invitation identifies the first device, the user associated with the first device, or both.
[0223] Example 46 includes the method according to any one of Examples 42 to 45, wherein the sharing invitation includes a resource address associated with the shared media session.
[0224] Example 47 includes the method according to any one of Examples 29 to 46, the method further comprising: receiving a sharing invitation from the remote media service; and sending a sharing acceptance message to the remote media service based on determining to initiate the shared media session.
[0225] Example 48 includes the method according to Example 47, wherein the sharing invitation includes a resource address associated with the shared media session, and the sharing acceptance message includes a request to access the resource address.
[0226] Example 49 includes the method according to any one of Examples 29 to 48, the method further comprising receiving at least a portion of the synchronization information from the remote media service.
[0227] Example 50 includes the method according to any one of Examples 29 to 49, the method further including receiving at least a portion of the synchronization information from the second device.
[0228] Example 51 includes the method according to any one of Examples 29 to 50, the method further including receiving at least a portion of the synchronization information from a synchronization signal generator.
[0229] Example 52 includes the method according to any one of Examples 29 to 51, wherein the specific media content corresponds to audio content.
[0230] Example 53 includes the method according to any one of Examples 29 to 51, wherein the specific media content corresponds to game content.
[0231] Example 54 includes the method according to any one of Examples 29 to 51, wherein the specific media content corresponds to video content.
[0232] Example 55 includes the method according to any one of Examples 29 to 51, wherein the specific media content corresponds to extended reality content.
[0233] According to Example 56, a non-transitory computer-readable medium stores instructions that, when executed by one or more processors of a first device, cause the one or more processors to: determine a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and initiate a shared media session with a second device in the list of candidate devices based on the determination: receive a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0234] Example 57 includes the non-transitory computer-readable medium according to Example 56, wherein the instructions are further capable of causing the one or more processors to receive a first wireless signal according to a first communication protocol and determine a first group of candidate devices within a first communication range of a first transceiver based on the first wireless signal, and wherein the list of candidate devices identifies the first group of candidate devices.
[0235] Example 58 includes the non-transitory computer-readable medium according to Example 57, wherein the instructions are further executable to cause the one or more processors to receive a second wireless signal according to a second communication protocol, and determine a second group of candidate devices within a second communication range of a second transceiver based on the second wireless signal, and wherein the candidate device list identifies the second group of candidate devices.
[0236] Example 59 includes the non-transitory computer-readable medium according to any one of Examples 56 to 58, wherein the instructions are further executable to cause the one or more processors to communicate with the one or more sensing devices to determine the candidate device list.
[0237] Example 60 includes the non-transitory computer-readable medium according to Example 59, wherein the one or more sensing devices include a portable communication device.
[0238] Example 61 includes the non-transitory computer-readable medium according to Example 59 or 60, wherein the one or more sensing devices include a wireless access point.
[0239] Example 62 includes the non-transitory computer-readable medium according to any one of Examples 56 to 61, wherein the instructions are further executable to cause the one or more processors to selectively determine whether to activate a first sensing device at least in part based on whether a second sensing device is accessible, wherein the first sensing device is coupled to a first portable power source and the second sensing device is not coupled to the first portable power source.
[0240] Example 63 includes the non-transitory computer-readable medium according to any one of Examples 56 to 62, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the remote media service.
[0241] Example 64 includes the non-transitory computer-readable medium according to any one of Examples 56 to 63, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the first device.
[0242] Example 65 includes the non-transitory computer-readable medium according to any one of Examples 56 to 64, wherein the shared media session is initiated based on determining that the second device is associated with an account of the remote media service.
[0243] Example 66 includes the non-transitory computer-readable medium according to any one of Examples 56 to 65, wherein the instructions are further executable to cause the one or more processors to determine whether the particular device is within the communication range of the one or more sensing devices based on a distance metric indicative of an estimated distance between the particular device and at least one of the one or more sensing devices.
[0244] Example 67 includes the non-transitory computer-readable medium according to any one of Examples 56 to 66, wherein the instructions are further executable to cause the one or more processors to determine whether the particular device is within the communication range of the one or more sensing devices at least in part based on the received signal strength of a transmission from the particular device.
[0245] Example 68 includes the non-transitory computer-readable medium according to any one of Examples 56 to 67, wherein the instructions are further executable to cause the one or more processors to determine whether the particular device is within the communication range of the one or more sensing devices at least in part based on the location coordinates of the particular device.
[0246] Example 69 includes the non-transitory computer-readable medium according to any one of Examples 56 to 68, wherein the instructions are further executable to cause the one or more processors to send a sharing invitation to the second device based on determining to initiate the shared media session with the second device.
[0247] Example 70 includes the non-transitory computer-readable medium according to Example 69, wherein causing the sharing invitation to be sent to the second device includes commanding the remote media service to transmit the sharing invitation.
[0248] Example 71 includes the non-transitory computer-readable medium according to Example 69 or Example 70, wherein the sharing invitation identifies the particular media content.
[0249] Example 72 includes the non-transitory computer-readable medium according to any one of Examples 69 to 71, wherein the sharing invitation identifies the first device, the user associated with the first device, or both.
[0250] Example 73 includes the non-transitory computer-readable medium according to any one of Examples 69 to 72, wherein the sharing invitation includes a resource address associated with the shared media session.
[0251] Example 74 includes a non-transitory computer-readable medium according to any one of Examples 56 to 73, wherein the instructions are further executable to cause the one or more processors to: receive a sharing invitation from the remote media service; and send a sharing acceptance message to the remote media service based on determining to initiate the shared media session.
[0252] Example 75 includes a non-transitory computer-readable medium according to Example 74, wherein the sharing invitation includes a resource address associated with the shared media session, and the sharing acceptance message includes a request to access the resource address.
[0253] Example 76 includes a non-transitory computer-readable medium according to any one of Examples 56 to 75, wherein the instructions are further executable to cause the one or more processors to receive at least a portion of the synchronization information from the remote media service.
[0254] Example 77 includes a non-transitory computer-readable medium according to any one of Examples 56 to 76, wherein the instructions are further executable to cause the one or more processors to receive at least a portion of the synchronization information from the second device.
[0255] Example 78 includes a non-transitory computer-readable medium according to any one of Examples 56 to 77, wherein the instructions are further executable to cause the one or more processors to receive at least a portion of the synchronization information from a synchronization signal generator.
[0256] Example 79 includes a non-transitory computer-readable medium according to any one of Examples 56 to 78, wherein the specific media content corresponds to audio content.
[0257] Example 80 includes a non-transitory computer-readable medium according to any one of Examples 56 to 78, wherein the specific media content corresponds to game content.
[0258] Example 81 includes a non-transitory computer-readable medium according to any one of Examples 56 to 78, wherein the specific media content corresponds to video content.
[0259] Example 82 includes a non-transitory computer-readable medium according to any one of Examples 56 to 78, wherein the specific media content corresponds to extended reality content.
[0260] According to Example 83, a device includes: components for determining a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; components for receiving a media stream including the specific media content from the remote media while determining that a shared media session is initiated between a first device and a second device in the candidate device list and the specific media content is being transmitted from the remote media service to the second device; and components for causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0261] Example 84 includes the device according to Example 83, and the device further includes: components for receiving a first wireless signal according to a first communication protocol via a first transceiver; and components for determining a first group of candidate devices within the first communication range of the first transceiver based on the first wireless signal, wherein the candidate device list identifies the first group of candidate devices.
[0262] Example 85 includes the device according to Example 84, and the device further includes: components for receiving a second wireless signal according to a second communication protocol; and components for determining a second group of candidate devices within the second communication range of a second transceiver based on the second wireless signal, wherein the candidate device list identifies the second group of candidate devices.
[0263] Example 86 includes the device according to any one of Examples 83 to 85, and the device further includes components for communicating with the one or more sensing devices to determine the candidate device list.
[0264] Example 87 includes the device according to Example 86, wherein the one or more sensing devices include a portable communication device.
[0265] Example 88 includes the device according to Example 86 or 87, wherein the one or more sensing devices include a wireless access point.
[0266] Example 89 includes the device according to any one of Examples 83 to 88, and the device further includes components for selectively determining whether to activate a first sensing device based at least in part on whether a second sensing device is accessible, wherein the first sensing device is coupled to a first portable power source and the second sensing device is not coupled to the first portable power source.
[0267] Example 90 includes the device according to any one of Examples 83 to 89, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the remote media service.
[0268] Example 91 includes the apparatus according to any one of Examples 83 to 90, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the first device.
[0269] Example 92 includes the apparatus according to any one of Examples 83 to 91, wherein the shared media session is initiated based on determining that the second device is associated with an account of the remote media service.
[0270] Example 93 includes the apparatus according to any one of Examples 83 to 92, the apparatus further including components for determining whether a particular device is within the communication range of the one or more sensing devices based on a distance metric indicative of an estimated distance between the particular device and at least one of the one or more sensing devices.
[0271] Example 94 includes the apparatus according to any one of Examples 83 to 93, the apparatus further including components for determining whether a particular device is within the communication range of the one or more sensing devices based at least in part on a received signal strength of a transmission from the particular device.
[0272] Example 95 includes the apparatus according to any one of Examples 83 to 94, the apparatus further including components for determining whether a particular device is within the communication range of the one or more sensing devices based at least in part on location coordinates of the particular device.
[0273] Example 96 includes the apparatus according to any one of Examples 83 to 95, the apparatus further including components for causing a share invitation to be sent to the second device based on determining to initiate the shared media session with the second device.
[0274] Example 97 includes the apparatus according to Example 96, wherein causing the share invitation to be sent to the second device includes commanding the remote media service to transmit the share invitation.
[0275] Example 98 includes the apparatus according to Example 96 or Example 97, wherein the share invitation identifies the particular media content.
[0276] Example 99 includes the apparatus according to any one of Examples 96 to 98, wherein the share invitation identifies the first device, a user associated with the first device, or both.
[0277] Example 100 includes the apparatus according to any one of Examples 96 to 99, wherein the sharing invitation includes a resource address associated with the shared media session.
[0278] Example 101 includes the apparatus according to any one of Examples 83 to 100, the apparatus further comprising: means for receiving a sharing invitation from the remote media service; and means for sending a sharing acceptance message to the remote media service based on determining to initiate the shared media session.
[0279] Example 102 includes the apparatus according to Example 101, wherein the sharing invitation includes a resource address associated with the shared media session, and the sharing acceptance message includes a request to access the resource address.
[0280] Example 103 includes the apparatus according to any one of Examples 83 to 102, the apparatus further comprising means for receiving at least a portion of the synchronization information from the remote media service.
[0281] Example 104 includes the apparatus according to any one of Examples 83 to 103, the apparatus further comprising means for receiving at least a portion of the synchronization information from the second device.
[0282] Example 105 includes the apparatus according to any one of Examples 83 to 104, the apparatus further comprising means for receiving at least a portion of the synchronization information from a synchronization signal generator.
[0283] Example 106 includes the apparatus according to any one of Examples 83 to 105, wherein the specific media content corresponds to audio content.
[0284] Example 107 includes the apparatus according to any one of Examples 83 to 105, wherein the specific media content corresponds to game content.
[0285] Example 108 includes the apparatus according to any one of Examples 83 to 105, wherein the specific media content corresponds to video content.
[0286] Example 109 includes the apparatus according to any one of Examples 83 to 105, wherein the specific media content corresponds to extended reality content.
[0287] According to Example 110, a first device includes one or more processors configured to: set first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session; and set second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, wherein the second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0288] Example 111 includes the first device according to Example 110, wherein the one or more processors are further configured to: determine a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and initiate and based on determining a shared media session with a second device in the list of candidate devices: receive a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0289] Example 112 includes the first device according to Example 110 or Example 111, wherein the first discovery parameters specify no discovery during the shared media session.
[0290] Example 113 includes the first device according to any one of Examples 110 to 112, wherein the first discovery parameters specify a first time interval between iterations of a discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, wherein the first time interval is at least ten times as long as the second time interval.
[0291] Example 114 includes the first device according to any one of Examples 110 to 113, wherein the first discovery parameters specify a first time interval between iterations of a discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, wherein the first time interval is at least one hundred times as long as the second time interval.
[0292] Example 115 includes the first device according to any one of Examples 110 to 114, wherein the first discovery parameters specify a first time interval between iterations of a discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, wherein the first time interval is at least one thousand times as long as the second time interval.
[0293] Example 116 includes the first device according to any one of Examples 110 to 115, wherein the shared media session is associated with a specific media content item, and wherein the shared media session is terminated based on reaching the end of the specific media content item.
[0294] Example 117 includes the first device according to any one of Examples 110 to 116, wherein the shared media session is associated with a plurality of media content items of a media stream, and wherein the shared media session is terminated when the media stream is terminated.
[0295] Example 118 includes the first device according to any one of Examples 110 to 117, wherein the one or more processors are further configured to initiate one or more discovery processes based on current discovery parameters to determine a list of candidate devices identifying one or more devices within the communication range of the first device.
[0296] Example 119 includes the first device according to any one of Examples 110 to 118, wherein the one or more processors are further configured to initiate a determination during the first time period as to whether to invite one or more of the candidate devices to be added to the shared media session.
[0297] Example 120 includes the first device according to any one of Examples 110 to 119, wherein the one or more processors are further configured to initiate a determination during the first time period as to whether to remove a specific device from the shared media session.
[0298] Example 121 includes the first device according to any one of Examples 110 to 120, wherein the one or more processors are further configured to initiate a determination during the second time period as to whether to initiate a second shared media session with one or more of the candidate devices.
[0299] Example 122 includes the first device according to any one of Examples 110 to 121, the first device further including a first transceiver coupled to the one or more processors and operative to receive a first wireless signal according to a first communication protocol based on current discovery parameters to discover a first candidate device for media sharing.
[0300] Example 123 includes the first device according to Example 122, the first device further including a second transceiver coupled to the one or more processors and operative to receive a second wireless signal according to a second communication protocol based on the current discovery parameters to discover a second candidate device for media sharing, wherein the one or more processors are further configured to determine a candidate device list based on the first candidate device and the second candidate device.
[0301] Example 124 includes the first device according to Example 123, wherein the one or more processors are further configured to determine a difference between the candidate device list and a previous candidate device list, wherein a determination of whether to initiate or terminate the shared media session is based on the difference.
[0302] According to Example 125, a method includes: during a first time period after initiating a shared media session, setting, by one or more processors, first discovery parameters for discovering candidate devices for media sharing; and during a second time period after terminating the shared media session, setting, by one or more processors, second discovery parameters for discovering candidate devices for media sharing, wherein the second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0303] Example 126 includes the method according to Example 125, the method further including: determining, based on one or more wireless signals, a candidate device list identifying one or more devices within a communication range of one or more sensing devices; and based on determining to initiate the shared media session with a second device in the candidate device list: receiving, while a particular media content is being transmitted from a remote media service to the second device, a media stream including the particular media content from the remote media service; and causing the particular media content to be output simultaneously with an output of the particular media content at the second device based on synchronization information.
[0304] Example 127 includes the method according to Example 125 or Example 126, wherein the first discovery parameters specify no discovery during the shared media session.
[0305] Example 128 includes the method according to any one of Examples 125 to 127, wherein the first discovery parameters specify a first time interval between iterations of a discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, wherein the first time interval is at least ten times as long as the second time interval.
[0306] Example 129 includes the method according to any one of Examples 125 to 128, wherein the first discovery parameter specifies a first time interval between iterations of a discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least a hundred times as long as the second time interval.
[0307] Example 130 includes the method according to any one of Examples 125 to 129, wherein the first discovery parameter specifies a first time interval between iterations of a discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least a thousand times as long as the second time interval.
[0308] Example 131 includes the method according to any one of Examples 125 to 130, wherein the shared media session is associated with a specific media content item, and wherein the shared media session is terminated based on reaching the end of the specific media content item.
[0309] Example 132 includes the method according to any one of Examples 125 to 131, wherein the shared media session is associated with a plurality of media content items of a media stream, and wherein the shared media session is terminated when the media stream is terminated.
[0310] Example 133 includes the method according to any one of Examples 125 to 132, the method further comprising initiating one or more discovery processes based on current discovery parameters to determine a list of candidate devices identifying one or more devices within the communication range of a sensing device.
[0311] Example 134 includes the method according to any one of Examples 125 to 133, the method further comprising initiating a determination during the first time period as to whether to invite one or more of the candidate devices to be added to the shared media session.
[0312] Example 135 includes the method according to any one of Examples 125 to 134, the method further comprising initiating a determination during the first time period as to whether to remove a specific device from the shared media session.
[0313] Example 136 includes the method according to any one of Examples 125 to 135, the method further comprising initiating a determination during the second time period as to whether to initiate a second shared media session with one or more of the candidate devices.
[0314] Example 137 includes the method according to any one of Examples 125 to 136, the method further including receiving a first wireless signal according to a first communication protocol based on current discovery parameters to discover a first candidate device for media sharing.
[0315] Example 138 includes the method according to Example 137, the method further including: receiving a second wireless signal according to a second communication protocol based on the current discovery parameters to discover a second candidate device for media sharing; and determining a candidate device list based on the first candidate device and the second candidate device.
[0316] Example 139 includes the method according to Example 138, the method further including determining a difference between the candidate device list and a previous candidate device list, wherein a determination of whether to initiate or terminate the shared media session is based on the difference.
[0317] According to Example 140, a non-transitory computer-readable storage medium stores instructions that, when executed by one or more processors, cause the one or more processors to: set first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session; and set second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, wherein the second discovery parameters specify a faster discovery rate than the first discovery parameters.
[0318] Example 141 includes the non-transitory computer-readable storage medium according to Example 140, wherein the instructions are further executable to cause the one or more processors to: determine a candidate device list identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and based on determining to initiate the shared media session with a second device in the candidate device list: receive a media stream including the specific media content from a remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0319] Example 142 includes the non-transitory computer-readable storage medium according to Example 140 or Example 141, wherein the first discovery parameters specify no discovery during the shared media session.
[0320] Example 143 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 142, wherein the first discovery parameter specifies a first time interval between iterations of a discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least ten times as long as the second time interval.
[0321] Example 144 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 143, wherein the first discovery parameter specifies a first time interval between iterations of a discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least one hundred times as long as the second time interval.
[0322] Example 145 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 144, wherein the first discovery parameter specifies a first time interval between iterations of a discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least one thousand times as long as the second time interval.
[0323] Example 146 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 145, wherein the shared media session is associated with a specific media content item, and wherein the shared media session is terminated based on reaching the end of the specific media content item.
[0324] Example 147 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 146, wherein the shared media session is associated with a plurality of media content items of a media stream, and wherein the shared media session is terminated when the media stream is terminated.
[0325] Example 148 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 147, wherein the instructions are further executable to cause the one or more processors to initiate one or more discovery processes based on current discovery parameters to determine a list of candidate devices identifying one or more devices within the communication range of the sensing device.
[0326] Example 149 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 148, wherein the instructions are further executable to cause the one or more processors to initiate a determination during the first time period as to whether to invite one or more of the candidate devices to be added to the shared media session.
[0327] Example 150 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 149, wherein the instructions are further executable to cause the one or more processors to initiate a determination of whether to exclude a specific device from the shared media session during the first time period.
[0328] Example 151 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 150, wherein the instructions are further executable to cause the one or more processors to initiate a determination of whether to initiate a second shared media session with one or more of the candidate devices during the second time period.
[0329] Example 152 includes the non-transitory computer-readable storage medium according to any one of Examples 140 to 151, wherein the instructions are further executable to cause the one or more processors to receive a first wireless signal according to a first communication protocol based on current discovery parameters to discover a first candidate device for media sharing.
[0330] Example 153 includes the non-transitory computer-readable storage medium according to Example 152, wherein the instructions are further executable to cause the one or more processors to receive a second wireless signal according to a second communication protocol based on the current discovery parameters to discover a second candidate device for media sharing, and to determine a candidate device list based on the first candidate device and the second candidate device.
[0331] Example 154 includes the non-transitory computer-readable storage medium according to Example 153, wherein the instructions are further executable to cause the one or more processors to determine a difference between the candidate device list and a previous candidate device list, wherein the determination of whether to initiate or terminate the shared media session is based on the difference.
[0332] According to Example 155, an apparatus includes: means for setting first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session; and means for setting second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, wherein the second discovery parameters specify a discovery rate faster than the first discovery parameters.
[0333] Example 156 includes the apparatus according to Example 155, the apparatus further comprising: components for determining a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and components for receiving a media stream including the specific media content from the remote media service while initiating a shared media session with a second device in the list of candidate devices based on the determination, while the specific media content is being transmitted from the remote media service to the second device; and components for causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
[0334] Example 157 includes the apparatus according to Example 155 or Example 156, wherein the first discovery parameter specifies no discovery during the shared media session.
[0335] Example 158 includes the apparatus according to any one of Examples 155 to 157, wherein the first discovery parameter specifies a first time interval between iterations of the discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least ten times as long as the second time interval.
[0336] Example 159 includes the apparatus according to any one of Examples 155 to 158, wherein the first discovery parameter specifies a first time interval between iterations of the discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least one hundred times as long as the second time interval.
[0337] Example 160 includes the apparatus according to any one of Examples 155 to 159, wherein the first discovery parameter specifies a first time interval between iterations of the discovery operation, and the second discovery parameter specifies a second time interval between iterations of the discovery operation, wherein the first time interval is at least one thousand times as long as the second time interval.
[0338] Example 161 includes the apparatus according to any one of Examples 155 to 160, wherein the shared media session is associated with a specific media content item, and wherein the shared media session is terminated based on reaching the end of the specific media content item.
[0339] Example 162 includes the apparatus according to any one of Examples 155 to 161, wherein the shared media session is associated with a plurality of media content items of a media stream, and wherein the shared media session is terminated when the media stream is terminated.
[0340] Example 163 includes the apparatus according to any one of Examples 155 to 162, and the apparatus further includes components for initiating one or more discovery processes based on current discovery parameters to determine a list of candidate devices identifying one or more devices within the communication range of the sensing device.
[0341] Example 164 includes the apparatus according to any one of Examples 155 to 163, and the apparatus further includes components for initiating a determination during the first time period as to whether to invite one or more of the candidate devices to be added to the shared media session.
[0342] Example 165 includes the apparatus according to any one of Examples 155 to 164, and the apparatus further includes components for initiating a determination during the first time period as to whether to remove a particular device from the shared media session.
[0343] Example 166 includes the apparatus according to any one of Examples 155 to 165, and the apparatus further includes components for initiating a determination during the first time period as to whether to initiate a second shared media session with one or more of the candidate devices.
[0344] Example 167 includes the apparatus according to any one of Examples 155 to 166, and the apparatus further includes components for receiving a first wireless signal according to a first communication protocol based on current discovery parameters to discover a first candidate device for media sharing.
[0345] Example 168 includes the apparatus according to Example 167, and the apparatus further includes: components for receiving a second wireless signal according to a second communication protocol based on the current discovery parameters to discover a second candidate device for media sharing; and components for determining a list of candidate devices based on the first candidate device and the second candidate device.
[0346] Example 169 includes the apparatus according to Example 168, and the apparatus further includes components for determining a difference between the list of candidate devices and a previous list of candidate devices, wherein the determination as to whether to initiate or terminate the shared media session is based on the difference.
[0347] According to Example 170, a device includes one or more processors configured to: obtain a list of candidate devices associated with a first device, the list of candidate devices identifying one or more devices within a communication range of a sensing device associated with the first device; based on permission data associated with the first device, transmit a sharing invitation to a second device in the list of candidate devices; based on a response to the sharing invitation, transmit a first media stream including specific media content to the first device; and while transmitting the first media stream to the first device, transmit a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device.
[0348] Example 171 includes the device according to Example 170, wherein the list of candidate devices is received from a permission service associated with the first device.
[0349] Example 172 includes the device according to Example 170 or Example 171, wherein the permission data identifies a list of devices approved for media sharing.
[0350] Example 173 includes the device according to Example 170, wherein the sharing invitation includes a resource address associated with a shared media session associated with the first media stream and the second media stream.
[0351] Example 174 includes the device according to any one of Examples 170 to 173, wherein the one or more processors are further configured to: transmit a prompt to the first device, the prompt requesting approval to initiate a shared media session with the second device; and receive a response to the prompt, wherein the permission data is at least partially based on the response.
[0352] Example 175 includes the device according to any one of Examples 170 to 174, wherein the one or more processors are further configured to transmit synchronization information associated with a shared media session to the first device, the second device, or both.
[0353] According to Example 176, a method includes: obtaining a list of candidate devices associated with a first device, the list of candidate devices identifying one or more devices within a communication range of a sensing device associated with the first device; transmitting a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device; transmitting a first media stream including specific media content to the first device based on a response to the sharing invitation; and while transmitting the first media stream to the first device, transmitting a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device.
[0354] Example 177 includes the method according to Example 176, wherein the list of candidate devices is received from a permission service associated with the first device.
[0355] Example 178 includes the method according to Example 176 or Example 177, wherein the permission data identifies a list of devices approved for media sharing.
[0356] Example 179 includes the method according to any one of Examples 176 to 178, wherein the sharing invitation includes a resource address associated with a shared media session associated with the first media stream and the second media stream.
[0357] Example 180 includes the method according to any one of Examples 176 to 179, the method further including: transmitting a prompt to the first device, the prompt requesting approval to initiate a shared media session with the second device; and receiving a response to the prompt, wherein the permission data is at least partially based on the response.
[0358] Example 181 includes the method according to any one of Examples 176 to 180, the method further including transmitting synchronization information associated with the shared media session to the first device, the second device, or both.
[0359] According to Example 182, a non-transitory computer-readable medium stores instructions that, when executed by one or more processors, cause the one or more processors to: obtain a list of candidate devices associated with a first device, the list of candidate devices identifying one or more devices within the communication range of a sensing device associated with the first device; and based on permission data associated with the first device, transmit a sharing invitation to a second device in the list of candidate devices; based on a response to the sharing invitation, transmit a first media stream including specific media content to the first device; and while transmitting the first media stream to the first device, transmit a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device.
[0360] Example 183 includes the non-transitory computer-readable medium according to Example 182, wherein the list of candidate devices is received from a permission service associated with the first device.
[0361] Example 184 includes the non-transitory computer-readable medium according to Example 182 or Example 183, wherein the permission data identifies a list of devices approved for media sharing.
[0362] Example 185 includes the non-transitory computer-readable medium according to any one of Examples 182 to 184, wherein the sharing invitation includes a resource address associated with a shared media session associated with the first media stream and the second media stream.
[0363] Example 186 includes the non-transitory computer-readable medium according to any one of Examples 182 to 185, wherein the instructions are further executable to cause the one or more processors to: transmit a prompt to the first device, the prompt requesting approval to initiate a shared media session with the second device; and receive a response to the prompt, wherein the permission data is at least partially based on the response.
[0364] Example 187 includes the non-transitory computer-readable medium according to any one of Examples 182 to 186, wherein the instructions are further executable to cause the one or more processors to transmit synchronization information associated with the shared media session to the first device, the second device, or both.
[0365] According to Example 188, a device includes: components for obtaining a list of candidate devices associated with a first device, the list of candidate devices identifying one or more devices within the communication range of a sensing device associated with the first device; components for transmitting a sharing invitation to a second device in the list of candidate devices based on permission data associated with the first device; components for transmitting a first media stream including specific media content to the first device based on a response to the sharing invitation; and components for transmitting a second media stream including the specific media content to the second device for output at the second device simultaneously with the output of the specific media content at the first device while transmitting the first media stream to the first device.
[0366] Example 189 includes the device according to Example 188, wherein the list of candidate devices is received from a permission service associated with the first device.
[0367] Example 190 includes the device according to Example 188 or Example 189, wherein the permission data identifies a list of devices approved for media sharing.
[0368] Example 191 includes the device according to any one of Examples 188 to 190, wherein the sharing invitation includes a resource address associated with a shared media session associated with the first media stream and the second media stream.
[0369] Example 192 includes the device according to any one of Examples 188 to 191, the device further including: components for transmitting a prompt to the first device, the prompt requesting approval to initiate a shared media session with the second device; and components for receiving a response to the prompt, wherein the permission data is at least partially based on the response.
[0370] Example 193 includes the device according to any one of Examples 188 to 192, the device further including components for transmitting synchronization information associated with a shared media session to the first device, the second device, or both.
[0371] Those skilled in the art will also understand that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the specific implementations disclosed herein can be implemented as electronic hardware, computer software executed by a processor, or a combination of both. The various illustrative components, blocks, configurations, modules, circuits, and steps have been generally described above in terms of their functionality. Whether such functionality is implemented as hardware or processor-executable instructions depends on the particular application and the design constraints imposed on the overall system. Those skilled in the art can implement the described functionality in different ways for each particular application, and such specific implementation decisions will not be construed as causing a departure from the scope of the present disclosure.
[0372] The steps of a method or algorithm described in connection with the specific implementations disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of both. The software module can reside in random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, a hard disk, a removable disk, a compact disc read-only memory (CD-ROM), or any other form of non-transitory computer-readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In an alternative, the storage medium can be integral with the processor. The processor and the storage medium can reside in an application specific integrated circuit (ASIC). The ASIC can reside in a computing device or a user terminal. In an alternative, the processor and the storage medium can reside as discrete components in a computing device or a user terminal.
[0373] The foregoing description of the disclosed aspects is provided to enable a person skilled in the art to make or use the disclosed aspects. Various modifications to these aspects will be readily apparent to those skilled in the art, and the principles defined herein can be applied to other aspects without departing from the scope of the disclosure. Thus, the disclosure is not intended to be limited to the aspects shown herein but is to be accorded the widest scope consistent with the principles and novel features defined by the following claims.
Claims
1. A first device, the first device comprising: a memory configured to store a list of candidate devices, the list of candidate devices identifying, based on one or more wireless signals, one or more devices within the communication range of one or more sensing devices; and one or more processors configured to initiate a shared media session with a second device from the list of candidate devices based on a determination: while specific media content is being transmitted from a remote media service to the second device, receive a media stream including the specific media content from the remote media service; and cause the specific media content to be output simultaneously with an output of the specific media content at the second device based on synchronization information.
2. The first device according to claim 1, the first device further comprising the one or more sensing devices, wherein the one or more sensing devices include a first transceiver coupled to the one or more processors and operative to receive a first wireless signal according to a first communication protocol, wherein the one or more processors are further configured to determine, based on the first wireless signal, a first group of candidate devices within a first communication range of the first transceiver, and wherein the list of candidate devices identifies the first group of candidate devices.
3. The first device according to claim 2, wherein the one or more sensing devices further include a second transceiver coupled to the one or more processors and operative to receive a second wireless signal according to a second communication protocol, wherein the one or more processors are further configured to determine, based on the second wireless signal, a second group of candidate devices within a second communication range of the second transceiver, and wherein the list of candidate devices identifies the second group of candidate devices.
4. The first device according to claim 1, the first device further comprising one or more transceivers coupled to the one or more processors and operative to communicate with the one or more sensing devices to determine the list of candidate devices.
5. The first device according to claim 1, the first device further comprising a portable power source coupled to the one or more processors, wherein the one or more processors are further configured to selectively determine whether to activate a first sensing device at least in part based on whether a second sensing device is accessible, and wherein the first sensing device is coupled to the portable power source and the second sensing device is not coupled to the portable power source.
6. The first device according to claim 1, the first device further comprising a modem coupled to the one or more processors and operative to receive the media stream via one or more wireless transmissions.
7. The first device according to claim 1, wherein the shared media session is initiated based on a determination that the second device is associated with an account or is identified on a permission list associated with the remote media service.
8. The first device according to claim 1, wherein the shared media session is initiated based on determining that the second device is identified on a permission list associated with the first device.
9. The first device according to claim 1, wherein the one or more processors are further configured to determine whether the specific device is within the communication range of the one or more sensing devices based on a distance metric indicating an estimated distance between the specific device and at least one of the one or more sensing devices.
10. The first device according to claim 1, wherein the one or more processors are further configured to determine whether the specific device is within the communication range of the one or more sensing devices based at least in part on the received signal strength of a transmission from the specific device.
11. The first device according to claim 1, wherein the one or more processors are further configured to send a sharing invitation to the second device based on determining to initiate the shared media session with the second device.
12. The first device according to claim 11, wherein sending the sharing invitation to the second device includes commanding the remote media service to transmit the sharing invitation.
13. The first device according to claim 11, wherein the sharing invitation identifies the specific media content, identifies the first device, identifies the user associated with the first device, identifies the resource address associated with the shared media session, or a combination thereof.
14. The first device according to claim 1, wherein the one or more processors are further configured to: receive a sharing invitation from the remote media service; and send a sharing acceptance message to the remote media service based on determining to initiate the shared media session.
15. The first device according to claim 14, wherein the sharing invitation includes a resource address associated with the shared media session, and the sharing acceptance message includes a request to access the resource address.
16. The first device according to claim 1, wherein the specific media content corresponds to audio content, game content, video content, extended reality content, or a combination thereof.
17. A method, the method comprising: determining, by one or more processors of a first device, a list of candidate devices that identify one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and based on determining to initiate a shared media session with a second device in the list of candidate devices: receiving, by the one or more processors, a media stream including the specific media content from the remote media service while the specific media content is being transmitted from the remote media service to the second device; and causing the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
18. The method according to claim 17, the method further comprising: receiving a sharing invitation from the remote media service; and Based on determining to initiate the shared media session, send a sharing acceptance message to the remote media service.
19. A first device, the first device comprising: a memory configured to store discovery parameters; and one or more processors configured to: set first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session; and set second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, wherein the second discovery parameters specify a faster discovery rate than the first discovery parameters.
20. The first device according to claim 19, wherein the one or more processors are further configured to: Determine a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and Based on determining to initiate the shared media session with a second device in the candidate device list: receive a media stream including the specific media content from the remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
21. The first device according to claim 19, wherein the first discovery parameters specify a first time interval between iterations of the discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, and wherein the first time interval is at least ten times as long as the second time interval.
22. A method, the method comprising: setting, by one or more processors, first discovery parameters for discovering candidate devices for media sharing during a first time period after initiating a shared media session; and setting, by the one or more processors, second discovery parameters for discovering candidate devices for media sharing during a second time period after terminating the shared media session, wherein the second discovery parameters specify a faster discovery rate than the first discovery parameters.
23. The method according to claim 22, the method further comprising: determining a list of candidate devices identifying one or more devices within the communication range of one or more sensing devices based on one or more wireless signals; and Based on determining to initiate the shared media session with a second device in the candidate device list: receive a media stream including the specific media content from the remote media service while the specific media content is being transmitted from the remote media service to the second device; and cause the specific media content to be output simultaneously with the output of the specific media content at the second device based on synchronization information.
24. The method according to claim 22, wherein the first discovery parameters specify a first time interval between iterations of the discovery operation, and the second discovery parameters specify a second time interval between iterations of the discovery operation, and wherein the first time interval is at least ten times as long as the second time interval.
25. The method according to claim 22, wherein the shared media session is associated with a specific media content item, and wherein the shared media session is terminated based on reaching the end of the specific media content item.
26. The method according to claim 22, wherein the shared media session is associated with a plurality of media content items of a media stream, and wherein the shared media session is terminated when the media stream is terminated.
27. The method according to claim 22, the method further comprising initiating one or more discovery processes based on current discovery parameters to determine a list of candidate devices identifying one or more devices within the communication range of the sensing device.
28. The method according to claim 22, the method further comprising initiating a determination during the first time period as to whether to exclude a specific device from the shared media session.
29. The method according to claim 22, the method further comprising initiating a determination during the second time period as to whether to initiate a second shared media session with one or more of the candidate devices.
30. The method according to claim 22, the method further comprising: receiving a first wireless signal according to a first communication protocol based on the current discovery parameters to discover a first candidate device for media sharing; receiving a second wireless signal according to a second communication protocol based on the current discovery parameters to discover a second candidate device for media sharing; determining a list of candidate devices based on the first candidate device and the second candidate device; and determining a difference between the list of candidate devices and a previous list of candidate devices, wherein the determination of whether to initiate or terminate the shared media session is based on the difference.