Patent Description:
Earbuds typically include pair of speakers that can be worn at least partially in a user's ear. Some earbuds may be considered "true wireless" that is there is no wire connection between either earbud and a client device that provides signals included encoded packets of data to the earbuds in order to generate sounds for the users. For true wireless earbuds, one way to save power is to have both earbuds of the pair of earbuds listen to the same channel with the client device and decode received packets separately in order to produce audio output. In these and many other implementations, only one earbud of a pair of earbuds can send acknowledgement packets, or signals, to the client device in response to receiving a packet from the client device. Glitches, for instance in the generated sounds, may occur when the other of the pair of earbuds loses the packet for one reason or another.

<CIT> relates to operation mode switch of wireless headphones.

Aspects of the disclosure provide for a method according to appended claim <NUM> as well as a system according to appended claim <NUM>.

The technology relates to establishing wireless communication links, or connections, between a first audio accessory device, a second audio accessory device, and a client computing device. The first audio accessory device and second audio accessory device may be a pair of earbuds configured to provide audio playback, or audio output, to a user as a single unit. After receiving signals from the client computing device to initiate audio output, the first audio accessory device and the second audio accessory device may each perform a series of steps in parallel to establish connections with the client computing device and optionally with each other. The series of steps may be configured so that audio output is initiated only when both audio accessory devices have properly received the signals from the client computing device.

The series of steps include relaying one or more acknowledgement (ACK) signals between the audio accessory devices in order to confirm proper receipt of the signals from the client computing device at both audio accessory devices. Additionally, the series of steps may include transmitting a jamming signal from one of the audio accessory devices in order to prevent an ACK signal from the other audio accessory device from reaching the client computing device and initiating audio output.

The features described herein may allow wireless audio accessory devices to more reliably connect with client devices. Not only may all audio accessory devices be in communication with a client device, but also audio output may only be initiated when all the audio accessory devices are properly prepared to do so. In addition, power consumption at the audio accessory devices may be reduced when both audio accessory devices are receiving signals directly from the client device in comparison to when one of the audio accessory devices is more frequently communicating between the client computing device and the other audio accessory device.

<FIG> and <FIG> depict example system <NUM> in which the features described herein may be implemented. It should not be considered as limiting the scope of the disclosure or usefulness of the features described herein. In this example, system <NUM> can include computing devices <NUM>, <NUM>, and <NUM>.

Computing device <NUM> can contain one or more processors <NUM> and memory <NUM> as well as various other components as discussed below. Memory <NUM> of the computing device <NUM> can store information accessible by the one or more processors <NUM>, including instructions <NUM> that can be executed by the one or more processors <NUM>. Memory can also include data <NUM> that can be retrieved, manipulated or stored by the processor. The memory can be of any non-transitory type capable of storing information accessible by the processor, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories.

The instructions <NUM> can be any set of instructions to be executed directly, such as machine code, or indirectly, such as scripts, by the one or more processors. In that regard, the terms "instructions," "application," "steps" and "programs" can be used interchangeably herein. The instructions can be stored in object code format for direct processing by a processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance.

Data <NUM> can be retrieved, stored or modified by the one or more processors <NUM> in accordance with the instructions <NUM>. For instance, although the subject matter described herein is not limited by any particular data structure, the data can be stored in computer registers, in a relational database as a table having many different fields and records, or XML documents. The data can also be formatted in any computing device-readable format such as, but not limited to, binary values, ASCII or Unicode. Moreover, the data can comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary codes, pointers, references to data stored in other memories such as at other network locations, or information that is used by a function to calculate the relevant data.

The one or more processors <NUM> can be any conventional processors, such as a commercially available CPU. Alternatively, the processors can be dedicated components such as an application specific integrated circuit ("ASIC") or other hardware-based processor. Although not necessary, one or more of computing devices <NUM> may include specialized hardware components to perform specific computing processes, such as decoding video, matching video frames with images, distorting videos, encoding distorted videos, etc. faster or more efficiently.

Although <FIG> functionally illustrates the processor, memory, and other elements of computing device 110as being within the same block, the processor, computer, computing device, or memory can actually comprise multiple processors, computers, computing devices, or memories that may or may not be stored within the same physical housing. For example, the memory can be a hard drive or other storage media located in housings different from that of the computing device <NUM>. Accordingly, references to a processor, computer, computing device, or memory will be understood to include references to a collection of processors, computers, computing devices, or memories that may or may not operate in parallel.

The computing devices <NUM> and <NUM> may include one or more processors <NUM>, <NUM> and memories <NUM>, <NUM> that have same or similar features to the one or more processors <NUM> and the memory <NUM> of computing device <NUM>. As shown in <FIG>, the memories of the computing device <NUM> and <NUM> may also store information, such as instructions <NUM>, <NUM> and data <NUM>, <NUM>, in a same or similar manner as described above with respect to memory <NUM>, instructions <NUM>, and data <NUM>.

Each computing device <NUM>, <NUM>, <NUM> may be capable of wirelessly exchanging data with one another using one or more signals. For instance, computing device <NUM> may be a device such as a mobile phone, wireless-enabled PDA, a tablet PC, a netbook, a full-sized personal computing device, or any other type of client computing device. The client computing device <NUM> may have all of the components normally used in connection with a personal computing device such as processors and memory discussed above as well as a display such as display <NUM> (e.g., a touch-screen, a projector, a television, a monitor having a screen, or other device that is operable to display information), and user input device <NUM> (e.g., a mouse, keyboard, touch-screen, touch sensor, one or more buttons, or microphone). The client computing device <NUM> may also include connection component <NUM> (shown only in <FIG>) that can be used to facilitate wireless connections 127a or 127b, such as via WiFi or Bluetooth protocols, with audio accessories <NUM>, <NUM>. For example, the connection component <NUM> may be a wireless transmitter and receiver.

Computing devices <NUM> and <NUM> are each an audio accessory device configured to communicate via wireless connection 127a, 127b with the client computing device <NUM> and via wireless connection <NUM> with one another. For instance, the audio accessory device <NUM> may include one or more speakers <NUM> for generating sound, a user input device <NUM> to allow a user to input instructions, and a connection component <NUM>, such as a wireless transmitter and receiver configured to facilitate wireless connections with a client computing device or another audio accessory device, such as wireless connections 127a and <NUM>. Similarly, the audio accessory device <NUM> may include one or more speakers <NUM> for generating sound, a user input device <NUM> to allow a user to input instructions, and a connection component <NUM>, such as a wireless transmitter and receiver configured to establish wireless connections with a client computing device or another audio accessory device, such as wireless connections 127b and <NUM>. In some examples, only one of the audio accessory devices <NUM>, <NUM> has a user input device.

As shown in <FIG>, audio accessory devices <NUM> and <NUM> may be a set of wireless ear buds. For the purposes of clarity, audio accessory device <NUM> may be considered a first wireless earbud in the set, corresponding to speaker <NUM>, and audio accessory device <NUM> may be considered a second wireless earbud in the set, corresponding to speaker <NUM>. The audio accessory devices <NUM> and <NUM> may be configured to be worn in or at least partially in a user's ear and to provide audio output to the user based on instructions from the client computing device <NUM> received via the wireless connections 127a and 127b. The set of wireless earbuds shown in <FIG> are wireless in that that is there is no wire connection between any audio accessory device <NUM> or <NUM> and the client computing device <NUM>. Although the examples herein relate to wireless earbuds, the features described herein may also be applied to other wireless audio accessory devices such as wireless headphones, a pair of wireless "stand-alone" speakers, etc..

The one or more computing devices of the audio accessory devices <NUM> and <NUM> may be configured to properly connect with client computing device <NUM> using a series of acknowledgement packets. In <FIG>, flow diagram 300A depicts a method of connecting the audio accessory devices with the client computing device <NUM> according to some of the aspects described above, and therefore is described in relation to the example computing device <NUM> and audio accessories <NUM>, <NUM> of <FIG>, though it should be understood that the method may be applied to any of a variety of systems. <FIG> is further described below in connection with <FIG>, which illustrate the timing of signals transmitted between the first audio accessory device <NUM> and the second audio accessory device <NUM>. For clarity, the timeline of operations for the first audio accessory device <NUM> is shown in <FIG> above a dotted line, while the timeline of operations for the second audio accessory device <NUM> is shown below the dotted line. While <FIG> shows blocks in a particular order, the order may be varied and that multiple operations may be performed simultaneously. Also, operations may be added or omitted.

At block <NUM>, a plurality of wireless connections are established among one or more first processors <NUM> of a first audio accessory device <NUM>, one or more second processors <NUM> of a second audio accessory device <NUM>, and a client computing device <NUM>. For example, the one or more first processors <NUM> of the first audio accessory device <NUM> may establish a first connection 127a with the client computing device <NUM>, and one or more second processors <NUM> of the second audio accessory device <NUM> may establish a second connection 127b with the one or more processors <NUM> of the client computing device <NUM>. The first connection 127a may be a wireless connection, such as a Bluetooth connection, between connection component <NUM> of the client computing device <NUM> and the connection component <NUM> of the audio accessory device <NUM>. The second connection 127b may be a wireless connection, such as a Bluetooth connection, between connection component <NUM> of the client computing device <NUM> and the connection component <NUM> of the client computing device <NUM>. Both the first connection 127a and the second connection 127b may be configured to support a channel for streaming media from the client computing device <NUM> to the audio accessory devices <NUM>, <NUM>, such as an Advanced Audio Distribution Profile (A2DP) channel.

A third connection <NUM> may be established between the one or more first processors <NUM> and the one or more second processors <NUM>. The third connection may be a wireless connection, such as a Bluetooth connection, between connection component <NUM> of the audio accessory device <NUM> and connection component <NUM> of the audio accessory device <NUM>. Other types of wireless connection may be utilized for the first, second, and third connections.

At block <NUM>, the one or more first processors <NUM> of the first audio accessory device <NUM> receive a first signal from the client computing device <NUM> at a first point in time. As shown in <FIG>, the first signal <NUM> is received at the first audio accessory device <NUM> at first point in time <NUM>. The first signal may be transmitted from the connection component <NUM> of the client computing device <NUM> and may be received at the connection component <NUM> of the audio accessory device <NUM> via the wireless connection 127a. The first signal may carry a first preamble and a first frame of audio information. The first frame of audio information may be used by the one or more processors <NUM> to provide first audio output from the speaker <NUM>. The first preamble may indicate a size of the first frame of audio information. The one or more first processors <NUM> may set up a media streaming channel on wireless connection 127a based on the received first signal.

After receipt of the first signal, the one or more first processors <NUM> may in some instances decode the preamble and determine that the size of the first frame of audio information requires an uplink of at least a set amount of time. The set amount of time may be determined to be longer than a threshold amount of time for relaying acknowledgement (ACK) signals between the first audio accessory device <NUM> and the second audio accessory device <NUM>. For instance, referring to the examples in <FIG>, set amount of time <NUM> may be <NUM> milliseconds, or more or less, and threshold amount of time <NUM> may be <NUM> microseconds, or more or less. The one or more first processors <NUM> may then set up a media streaming channel on wireless connection 127a that includes selecting a packet size based on the set amount of time. The packet size may divide the first frame of audio information to be uploaded over the set amount of time.

The first signal may be related to a second signal, such as second signal <NUM> shown in <FIG>, that may also be transmitted from the connection component <NUM> of the client computing device <NUM>. The second signal may carry a second preamble and a second frame of audio information. The second frame may be related to the first frame, such that the second frame of audio information may be used to provide second audio output from a speaker, such as speaker <NUM> of the second audio accessory device <NUM>, that corresponds with the audio output from the speaker <NUM> based on the first frame of audio information. For example, the second audio output may be the same as the first audio output, such as for providing mono audio, or the second audio output may complement the first audio output, such as for providing stereo audio.

At block <NUM>, the one or more first processors <NUM> verify whether the first signal is acceptable. For example, the first signal may be verified as acceptable when it satisfies the error-detecting code either before or after error correction of the first signal. For example, the one or more first processors <NUM> may process the first signal using an error-detecting code, such as a cyclic redundancy check. The first signal may also be processed using an error-correcting code. When verified, the process may continue to block 308a. When the first signal is not verified, such as when it does not satisfy the error-detecting code, the process ends at block 308b. Alternatively, at block 308b, the one or more first processors <NUM> may transmit negative-acknowledgement (NACK) signal to the client computing device <NUM>.

At block 308a, the one or more first processors <NUM> transmit a first ACK signal to the one or more second processors <NUM> after the first signal is verified as acceptable. For example, first ACK signal <NUM> is transmitted from the first audio accessory device <NUM> to the second audio accessory device <NUM> as shown in <FIG>. The first ACK signal may be transmitted via the wireless connection <NUM> at a second point in time. The second point in time may be within the threshold amount of time after the first point in time. The first ACK signal may include a first timestamp regarding when the first signal was received by the one or more first processors <NUM>, or the first point in time. For example, the first ACK signal <NUM> may include a first timestamp for the first point in time <NUM>, when the first signal <NUM> was received.

At block <NUM>, the one or more first processors <NUM> determine whether a second ACK signal has been received from the one or more second processors <NUM> via the wireless connection <NUM> within the threshold amount of time after the first point in time. The second ACK signal may be transmitted by the one or more second processors <NUM> after the second signal is received by the one or more second processors <NUM> at a second point in time. The second point in time may be before, simultaneous with, or after the first point in time. In addition, the second ACK signal may include a second timestamp regarding when the second signal was received by the one or more second processors <NUM>, or the second point in time. The process may then proceed to block 312a or 312b depending on the result of the determination.

When the one or more first processors <NUM> determine that the second ACK signal has been received within the threshold amount of time, the one or more first processors <NUM> may proceed to block 312a. For example, the second ACK signal may be received by the one or more first processors <NUM> at a third point in time. The one or more first processors <NUM> may then determine that the third point in time is within the threshold amount of time after the first point in time. As shown in <FIG>, second ACK signal <NUM> is transmitted from the second audio accessory device <NUM> and carries a second timestamp for the second point in time <NUM>, when the second signal <NUM> was received. The second ACK signal <NUM> is then received at the first audio accessory device <NUM> at the third point in time <NUM>, which is within the threshold amount of time <NUM>.

At block 312a, the one or more first processors <NUM> determine whether the first point in time precedes the second point in time. The second point in time may be derived from the second ACK signal received by the one or more first processors <NUM>, and may be compared with the first point in time. In the example illustrated in <FIG>, the one or more first processors <NUM> compares the first point in time <NUM> and the second point in time <NUM>. This may include determining whether the first point in time is earlier or later in time than the second point in time.

When the first point in time is determined to precede or be earlier in time than the second point in time, the one or more first processors <NUM> may transmit a third ACK signal to the one or more processors <NUM> of the client computing device <NUM> via wireless connection 127a at block 314a. In addition, the one or more first processors <NUM> may also identify the audio accessory device <NUM> as a primary device that transmits and receives communications that need only utilize one of the audio accessory devices <NUM>, <NUM>.

When the first point in time is determined to follow or be later in time than the second point in time, the one or more first processors <NUM> may identify the first audio accessory device <NUM> as a secondary device at block 314b. As a result, the one or more first processors <NUM> may not transmit the third ACK signal to the one or more processors <NUM> of the client computing device <NUM>.

In the case when the first point in time is determined to be simultaneous with the second point in time, the one or more first processors <NUM> may identify the first audio accessory device <NUM> based on a default setting. The default setting may indicate that a given audio accessory device is either the default primary device or the default secondary device. In the example shown in <FIG>, the first point in time <NUM> and the second point in time <NUM> is determined to be simultaneous. In this example, the default setting for the first audio accessory device <NUM> may identify the first audio accessory device as the default primary device, and the default setting for the second audio accessory device <NUM> may identify the second audio accessory device <NUM> as the default secondary device. Third ACK signal <NUM> is therefore transmitted from the first audio accessory device <NUM> to the client computing device <NUM>.

Returning to block <NUM>, when the one or more first processors <NUM> determine that the second ACK signal has not been received within the threshold amount of time after the first point in time, the one or more first processors <NUM> may proceed to block 312b. For example, the one or more first processors <NUM> may determine that the threshold amount of time after the first point in time has elapsed and that the second ACK signal has not been received by the end of the threshold amount of time.

Then at block 312b, the one or more first processors <NUM> transmit a NACK signal to the one or more processors <NUM> of the client computing device <NUM> via the wireless connection 127a. In the example of <FIG>, the threshold amount of time <NUM> elapses at the first audio accessory device <NUM> without receipt of a second ACK signal from the second audio accessory device <NUM>. The first audio accessory device <NUM> therefore transmits NACK signal <NUM> to the client computing device <NUM>.

The one or more second processors <NUM> of the second audio accessory device <NUM> may perform the steps depicted in flow diagram 300A in parallel to the one or more first processors <NUM> of the first audio accessory device <NUM>. Namely, the one or more second processors <NUM> may receive the second signal from the client computing device <NUM> at the second point in time (see block <NUM>), verify that the second signal is acceptable (see block <NUM>), and transmit the second ACK signal to the one or more first processors <NUM> if the second signal is verified as acceptable (see block 308a). If the second ACK signal is transmitted, the one or more second processors <NUM> may then determine whether the first ACK signal has been received from the one or more first processors <NUM> via the wireless connection <NUM> within the threshold amount of time after the second point in time (see block <NUM>). If the first ACK signal is not received within the threshold amount of time after the second point in time, the one or more second processors <NUM> may send the NACK signal (see block 310b), but if it is received, the one or more second processors <NUM> may determine whether the second point in time precedes the first point in time (see block 312a). When the second point in time precedes the first point in time, the one or more second processors <NUM> may send the third ACK signal to the client computing device <NUM>, identifying the second audio accessory device <NUM> as a primary device (see block 314a). When the second point in time follows the first point in time, the one or more second processors <NUM> may identify the second audio accessory device <NUM> as a secondary device and not send the third ACK signal (see block 314b). Or when the second point in time is simultaneous with the first point in time, the one or more second processors <NUM> may identify as a default setting, which in this case may be the secondary device (see block 314c).

After the one or more processors <NUM> and <NUM> perform the steps of flow diagram 300A, one of the first audio accessory device <NUM> and the second audio accessory device <NUM> may be identified as the primary device and the other may be identified as the secondary device. In addition, as the one or more processors of the audio accessory devices <NUM>, <NUM> verifies the respective signals received from the client computing device <NUM>, the audio accessory devices <NUM> and <NUM> may be properly synced with one another and may both be prepared to continue streaming media transmitted from the client computing device <NUM>. Additionally or alternatively, the one or more computing devices of the audio accessory devices <NUM> and <NUM> may be configured to prevent improper audio playback from client computing device <NUM> using a jamming signal.

In <FIG>, flow diagram 400A depicts a method of connecting the audio accessory devices with the client computing device <NUM> according to some of the aspects described above, and therefore is described in relation to the example computing device <NUM> and audio accessories <NUM>, <NUM> of <FIG>, though it should be understood that the method may be applied to any of a variety of systems. <FIG> is further described below in connection with <FIG>, which illustrate the timing of signals transmitted between the first audio accessory device <NUM> and the second audio accessory device <NUM>. For clarity, the timeline of operations for the first audio accessory device <NUM> is shown in <FIG> above a dotted line, while the timeline of operations for the second audio accessory device <NUM> is shown below the dotted line. While <FIG> shows blocks in a particular order, the order may be varied and that multiple operations may be performed simultaneously. Also, operations may be added or omitted.

At block <NUM>, a plurality of wireless connections are established between one or more first processors <NUM> of a first audio accessory device <NUM>, one or more second processors <NUM> of a second audio accessory device <NUM>, and a client computing device <NUM> in a same or similar manner as described in block <NUM>.

At block <NUM>, the one or more first processors <NUM> of the first audio accessory device <NUM> receive a first signal from the client computing device <NUM> at a first point in time. In the example shown in <FIG>, first signal <NUM> is received at the first audio accessory device <NUM> at first point in time <NUM>.

The first signal may be transmitted from the connection component <NUM> of the client computing device <NUM> and may be received at the connection component <NUM> of the audio accessory device <NUM> via the wireless connection 127a. The first signal may carry a first preamble and a first frame of audio information. The first preamble may indicate a size of the first packet of audio information, the first frame of audio information may be used by the one or more processors <NUM> to provide first audio output from the speaker <NUM>. The one or more first processors <NUM> may set up a media streaming channel on wireless connection 127a based on the received first signal.

After receipt of the first signal, the one or more first processors <NUM> may, in some instances, decode the preamble and determine that the size of the first frame of audio information requires an uplink of at least a set amount of time. The set amount of time may be determined to be shorter than a threshold amount of time for relaying acknowledgement (ACK) signals between the first audio accessory device <NUM> and the second audio accessory device <NUM>. For example, in <FIG>, set amount of time <NUM> is <NUM> microseconds, or more or less, and the threshold amount of time <NUM> is <NUM> microseconds, or more or less.

The one or more first processors <NUM> may then implement a jamming signal process, such as the process described with respect to <FIG>, because the set amount of time is less than the threshold amount of time. The jamming signal process may allow the one or more first processors <NUM> to respond to the first signal in a smaller amount of time than the set amount of time. For example, the one or more first processors <NUM> in <FIG> may be configured to respond to the first signal with an ACK, NACK, or jamming signal within <NUM> microseconds, which is less than the set amount of time of <NUM> microseconds, when using the jamming signal process described herein. In some embodiments, implementing the jamming single processes may include selecting the jamming signal process from a plurality of possible processes based on the set amount of time, where the plurality of possible processes also includes a ACK relaying process, such as the process described with respect to <FIG>.

At block <NUM>, the one or more first processors <NUM> verify that the first signal is acceptable, for instance, in a same or similar manner as described above with respect to block <NUM>. When the first signal is verified as acceptable, at block 408a, the one or more first processors <NUM> determine how to respond based on whether the first audio accessory device <NUM> is a primary device or a secondary device in relation to the second audio accessory device <NUM>. In the case where ACK signals are not being relayed between the first and second audio accessory devices, the designations for primary and secondary devices may be preset to the default settings. When the first audio accessory device <NUM> is identified as a primary device, the one or more first processors <NUM> transmit an ACK signal to the client computing device <NUM> at block 410a. When the first audio accessory device <NUM> is identified as a secondary device, the one or more first processors <NUM> may await further instruction from the second audio accessory device <NUM> or the client computing device <NUM> at block 410b. In either case, the one or more first processors <NUM> may then be ready to initiate audio output from speaker <NUM>. In the example of <FIG>, the first signal <NUM> is verified as acceptable at the first audio accessory device <NUM>, and second signal <NUM> is verified as acceptable at the second audio accessory device <NUM>. In addition, the first audio accessory device <NUM> in <FIG> is identified as the primary device as a default setting and transmits ACK signal <NUM>. The second audio accessory device <NUM>, on the other hand, is identified as the secondary device and does not transmit an ACK signal, and awaits further instruction.

Returning to block <NUM>, when the first signal is not verified as acceptable, the one or more first processors <NUM> determine how to respond at block 408b based on whether the first audio accessory device <NUM> is a primary device or a secondary device in relation to the second audio accessory device <NUM>. The primary or secondary device identification may be determined in a same or similar way as described with respect to block 408a. When the first audio accessory device is identified as a primary device, the one or more first processors <NUM> transmit a NACK signal to the client computing device <NUM> at block 410c. When the first audio accessory device <NUM> is identified as a secondary device, the one or more first processors <NUM> transmit a jamming signal at block 410d. The jamming signal may be configured to prevent any ACK signal potentially transmitted by the one or more second processors from being received by the client computing device <NUM>. For example, the jamming signal may mostly correlate with the length and/or other signal characteristics of at least the preamble of the ACK signal transmitted by the one or more second processors.

In the example of <FIG>, the first signal <NUM> is not verified as acceptable at the first audio accessory device <NUM>, and the second signal <NUM> is verified as acceptable at the secondary audio accessory device <NUM>. In addition, the first audio accessory device in <FIG> is identified as the secondary device and transmits a jamming signal <NUM>. The jamming signal <NUM> is configured to prevent the client computing device <NUM> from receiving the ACK signal <NUM> transmitted from the second audio accessory device <NUM>, which is the primary device.

In instances where the set amount of time is longer than the threshold amount of time, rather than transmitting an ACK signal to the client computing device <NUM> at block 408a, the one or more first processors <NUM> may transmit a first ACK signal to the one or more second processors <NUM> after the first signal is verified as acceptable in a same or similar manner as described above with respect to block 308a. The one or more first processors <NUM> may then determine whether a second ACK signal has been received from the one or more second processors <NUM> via the wireless connection <NUM> within the threshold amount of time after the first point in time as described in block <NUM>. If determined affirmatively, the one or more first processors <NUM> may proceed to identify whether the first audio accessory device <NUM> is a primary or secondary device and proceed to operate as such in a same or similar manner as described in blocks 312a, 314a, 314b, and/or 314c. On the other hand, if determined negatively, the one or more first processors <NUM> may transmit the jamming signal in a same or similar manner as described in block 408b.

The one or more second processors <NUM> of the second audio accessory device <NUM> may perform the steps described in flow diagram <NUM> in parallel to the one or more first processors <NUM> of the first audio accessory device <NUM>. Namely, the one or more second processors <NUM> may receive the second signal from the client computing device <NUM> at the second point in time (see block <NUM>), verify whether the second signal is acceptable (see block <NUM>), and transmit an ACK signal to the client computing device <NUM> if the second signal is verified as acceptable (see block 408a) or transmit a jamming signal if the second signal is not verified (see block 408b).

The foregoing systems and methods are beneficial in that they mitigate packet loss, thereby reducing audio glitching during audio playback through wireless accessories, such as earbuds. A miss rate of data may correspond to a miss rate of a header of the A2DP packet for the jamming signal, which is low. The miss rate may be further reduced by setting an accessory with a weaker RF signal to serve as the primary device, such that the jamming signal is stronger and can effectively block the ACK signal.

While the foregoing methods and systems were primarily described with respect to the example of a pair of earbuds, it should be understood that the first and second audio devices may be any of a variety of audio accessories, such as an augmented reality or virtual reality headset, smart glasses, speakers, video displays, etc..

Claim 1:
A method (300A) comprising:
establishing (<NUM>), by one or more processors (<NUM>) at a first audio accessory device (<NUM>), a first wireless connection (<NUM>) with a second audio accessory device (<NUM>) and a second wireless connection (127a) with a client computing device (<NUM>);
receiving (<NUM>), by the one or more processors (<NUM>), a first signal (<NUM>) from the client computing device (<NUM>) at a first point in time (<NUM>) via the second wireless connection (127a);
determining (<NUM>), by the one or more processors (<NUM>), whether the first signal (<NUM>) is acceptable based on whether or not the first signal (<NUM>) satisfies an error-detecting code;
when the first signal (<NUM>) is acceptable, transmitting (308a), by the one or more processors (<NUM>), a first acknowledgement, ACK, signal (<NUM>) to the second audio accessory device (<NUM>) via the first wireless connection (<NUM>);
determining (<NUM>), by the one or more processors (<NUM>), whether a second ACK signal (<NUM>) from the second audio accessory device (<NUM>) is received by the one or more processors (<NUM>) within an amount of time (<NUM>);
when the second ACK signal (<NUM>) is received within the amount of time (<NUM>), determining, by the one or more processors (<NUM>), a status identification for the first audio accessory device (<NUM>), wherein determining the status identification includes determining whether the first point in time (<NUM>) precedes a second point in time (<NUM>) identified in the second ACK signal, the second point in time (<NUM>) corresponding to when a second signal (<NUM>) from the client computing device (<NUM>) was received at the second audio accessory device (<NUM>), wherein the second signal is related to the first signal as either carrying same or complementary audio signals, and wherein the status identification identifies the first device (<NUM>) as a primary device or a secondary device; and
operating (314a - 314c), by the one or more processors (<NUM>), the first audio accessory device (<NUM>) based on the determined status identification.