A longer version of this article was originally published at our sister site SoundGuys.
Android and audio can’t seem to get along. Google has spent years slowing fixing the round-trip latency problem, yet some OEMs still haven’t gotten the memo. Worse still, the world’s most popular mobile OS isn’t addressing this looming problem for wireless headphones. Today, Bluetooth audio adoption is quickly growing, yet long latencies prevent these headphones from being suitable for real-time use cases. This can include taking video calls, streaming movies, and playing games.
In case you haven’t noticed (somehow), latency is that little delay you’ll hear between pressing pause and the music actually stopping. Or between seeing an opponent and only then hearing their footsteps in PUBG Mobile. At best, long latency is inconvenient, at worst it ruins the experience. Ideally, latency should be below 20ms where humans can’t notice it. Between 40ms and 80ms, it’s pretty hard to notice, but above 150ms and you’re into distraction territory.
Because of the extra wireless transmission and audio packaging delay, Bluetooth devices are particularly susceptible to lag, delay, or latency, or whatever you want to call it. Unfortunately, Android’s complex audio chain adds in its own share of delays, and some handset manufacturers are notably worse than others.
Some smartphones have lower latency than others
To test latencies on current Android devices, we grabbed a range of handsets, a Bluetooth receiver with support for all of today’s Bluetooth codecs, and a Teensy LC microcontroller to use with Google’s WALT latency testing app. We ran 100 tests on each handset for each Bluetooth codec, so our results produced 2,800 data points.
For starters, there’s a lot of variation between handsets and codecs. Google’s Pixel 3 XL offers the lowest overall latency and also the smallest variation between test runs. The OnePlus 6T produces similar results, although it shows a greater variance with AAC, SBC, and aptX HD. Even though these phones are, by far, the best I’ve tested, their average latency comes out to 244ms and 250ms respectively. Certainly not good enough for real-time content.
The Huawei Mate 20 Pro showcases the aforementioned Android software issues. Its average Bluetooth latency is a staggering 484ms, almost double that of the Google Pixel 3. It also shows considerable variance in Bluetooth latency, averaging 47ms between its fastest and slowest delay. The Samsung Galaxy S10 is certainly better but also exhibits a lack of consistency in its Bluetooth latency. All are pretty terrible for real-time content.
>250ms latency is very poor, and many phones have a very high latency variation too.
The explanation for these differences harkens back to the Android audio chain discussed earlier. There’s no way to enforce the use of the lower latency AAudio API over the more variable OpenSL ES APIs. The ALSA drivers, audio and Bluetooth HAL, and AudioFlinger buffer sizes are all variable depending on how the OEM implements them in its version of Android. Furthermore, aggressive CPU gating can require even longer buffers too. The bottom line is that Android does not offer a fast-track, low-latency audio path that is guaranteed to work on all phones.
Low latency matters if Bluetooth is to rival wired headphones
Wired headphones aren’t going anywhere anytime soon, but if Google and its partners are convinced about eventually moving to a wireless they have to get serious about Bluetooth audio. Not just in terms of music quality, but also matching the user experience for calls, films, and gaming. Wired headsets offer zero latency, and Bluetooth execution needs to close the gap to be considered viable. Part of this will have to come from changes to the Bluetooth standard itself, but it’s clear that Android and OEMs can do better too.
The bottom line is that Android’s Bluetooth audio latency remains highly unpredictable depending on the handset manufacturer. Google is leading the way by implementing its latest low latency signal routing, but other manufacturers are still slow on the uptake.
Android Bluetooth latency varies a lot by manufacturer, and that's a major problem.
Just like with Bluetooth audio quality, Huawei handsets appear to come out worse in latency too. Your best bet is to stick to smartphones that offer a stock or near stock Android experience. This includes phones from OnePlus, Google, and Nokia.
Unfortunately, there isn’t a common codec for customers to pick if they are after proper low latency (aptX Low Latency is obsolete). Qualcomm’s upcoming aptX Adaptive codec promises just 80ms of latency and could be the wireless solution for low-latency consumer needs. But we’ll have to wait to get products in our hands before making any judgment calls, as latency could well vary by device as well.