Synchronizing playback between nearby devices
Broadcast messages are received at a device from other devices. Each broadcast message includes a respective audio synchronization value. The device and the other devices are joined to a conference. An audio frame of an audio stream of the conference is identified at the device based on the audio synchronization values. The audio frame is output at the device.
1. A method, comprising:
receiving an audio stream associated with a conference at a device joined to the conference;
receiving, at the device and from two or more devices joined to the conference, respective broadcast messages, wherein each broadcast message of the respective broadcast messages received from a respective device of the two or more devices includes a respective audio synchronization value that indicates an audio frame number output at the respective device and ignoring broadcast messages that do not include respective conference identifiers that do not match a conference identifier of the conference;
identifying, at the device and based on the audio synchronization values received from the two or more devices, an audio frame of the audio stream of the conference; and
outputting, at the device, the audio frame of the audio stream.
2. The method of claim 1 , wherein each of the two or more devices identifies a same audio frame, and wherein each of the two or more devices and the device outputs the audio frame.
3. The method of claim 1 ,
wherein the audio stream is received over a first network, and
wherein the respective broadcast messages are received over a second network that is different from the first network.
4. The method of claim 1 , wherein the respective broadcast messages are received over a Bluetooth Low Energy (BLE) network.
5. The method of claim 1 , wherein the respective broadcast messages are received using a one-way communication protocol.
6. The method of claim 1 , wherein the device is physically co-located with the two or more devices.
7. The method of claim 1 , wherein the respective audio synchronization value is an audio frame number.
8. The method of claim 1 , further comprising:
transmitting, using a one-way communication protocol, a broadcast message that includes an audio synchronization value of the device.
9. The method of claim 1 , wherein receiving, at the device and from the two or more devices, the respective broadcast messages comprises:
monitoring for the respective broadcast messages within a clock receipt interval.
10. A device, comprising:
a memory; and
a processor, the processor configured to execute instructions stored in the memory to:
receive an audio stream associated with a conference at the device joined to the conference;
receive, at the device and from two or more devices joined to the conference, respective broadcast messages, wherein each broadcast message of the respective broadcast messages received from a respective device of the two or more devices includes a respective audio synchronization value that indicates an audio frame number output at the respective device and ignore broadcast messages that include respective conference identifiers that do not match a conference identifier of the conference;
identify, at the device and based on the audio synchronization values received from the two or more devices, an audio frame of the audio stream of the conference; and
output, at the device, the audio frame of the audio stream.
11. The device of claim 10 ,
wherein the audio stream is received over a first network, and
wherein the respective broadcast messages are received over a second network that is different from the first network.
12. The device of claim 10 , wherein the respective broadcast messages are received over a Bluetooth Low Energy (BLE) network.
13. The device of claim 10 , wherein the respective broadcast messages are received using a one-way communication protocol.
14. The device of claim 10 , wherein each of the respective broadcast messages includes a conference identifier of the conference.
15. A non-transitory computer-readable storage medium storing instructions operable to cause one or more processors to perform operations comprising:
receiving an audio stream associated with a conference at a device joined to the conference;
receiving, at the device and from two or more devices joined to the conference, respective broadcast messages, wherein each broadcast message of the respective broadcast messages received from a respective device of the two or more devices includes a respective audio synchronization value that indicates an audio frame number output at the respective device and ignoring broadcast messages that include respective conference identifiers that do not match a conference identifier of the conference;
identifying, at the device and based on the audio synchronization values received from the two or more devices, an audio frame of the audio stream of the conference; and
outputting, at the device, the audio frame of the audio stream.
16. The non-transitory computer-readable storage medium of claim 15 ,
wherein the audio stream is received over a first network, and
wherein the respective broadcast messages are received over a second network that is different from the first network.
17. The non-transitory computer-readable storage medium of claim 15 , wherein the respective broadcast messages are received using a one-way communication protocol.
18. The non-transitory computer-readable storage medium of claim 15 , wherein each of the respective broadcast messages includes a conference identifier of the conference.