Android's Audio Annoyances

For a long time, the main difference between Android and iOS was polish. Both systems offered roughly the same basic features, but iOS just did them better. Scrolling was smoother, the visual design was more consistent, the keyboard worked way better, and so on. While the difference is still there today, it is much less noticeable than it once was. But there are still pockets of awfulness in Android, and one of these pockets is how it deals with audio.

Let's first look at how this works on iOS. Audio is integrated into the OS extremely well. Regardless of the application that plays the audio, you get lock screen controls, and headphone controls. Swipe up to get a media control UI that works with whichever app is currently playing audio.

Control Center in iOS

Want to pick where audio is sent to, whether it's sent to an AirPlay device, a bluetooth headset, or the built-in speakers? There's a single UI element that unifies all of these features, and works consistently across apps.

None of these things are true on Android.1

Lock Screen

Controlling audio from the Lock Screen is hit-or-miss. Sometimes, apps manage to put controls on lock screens. Other times, they don't. On my Note 3, this even depends on which lock screen it is. If my case is open, lock screen controls sometimes work. If the case is closed, and a smaller lock screen is available through the case's window, only Samsung's own audio app can be controlled.

Of course, sometimes the audio controls don't show up at all. Sometimes, the lock screen shows an image of the audio that's playing, sometimes it doesn't. Oh, and sometimes it does everything at once, with multiple different apps seeming to struggle for control of the lock screen, which results in this:

Flickering Android Lock Screen

Yep, I made a looping animated GIF to help you get an impression of how incredibly annoying this is.

Controlling Output

There's no real output control. If the phone is connected to a Bluetooth device, audio comes out of that device. Otherwise, it seems to be completely up to the app. Some applications support things like Chromecast, others don't. Because there seems to be no unified way of dealing with audio output in Android, every app handles it differently, and every app supports different features at different levels of reliability.

Play and Pause

Android supports wired headphones with play/pause buttons in principle, but for me, they've never worked reliably. Sometimes, I'm listening to a podcast, hit pause, wait a few minutes, hit play, and nothing happens. Android has completely forgotten about the fact that I just listened to a podcast a few minutes ago.

Or it starts audio from a different app. Listen to The Skeptic's Guide to the Universe in Pocket Casts, pause, play, now I'm listening to The Girl with All the Gifts in Audible. Uhm... thanks? At least that's better than hitting play/pause, and, instead of pausing the current app, another app starts to play, so that I now have two different apps playing audio concurrently. Yes, that has also happened.

The controls on one of my two Bluetooth headphones don't really work. Play and pause never works, at all. Forward and backward only work sometimes. Other times, they don't register, or have seconds of lag.

The controls on another pair of headphones, weirdly, seem to work better, as I can usually play and pause. But even with that one, they're not reliable.

Notifications

Since there seems to be no unified, OS-supplied way of controlling audio in Android, every app pushes its own controls into Android's notifications. So you'll end up with situations where you have three (or more) different audio controls on screen at the same time, all of which behave differently. Which can be nice for switching between different audio sources — except that some of them only show up when their app is already playing audio, while others can't be removed at all.

Notification overload, with lots of audio apps showing their controls in Android's notifications

Either way, you can easily end up with a full screen just showing different audio players, and that's on a Note 3. I pity the fool with a smaller screen.

More Bugs

Other, non-audio Bluetooth devices interfere with music playback. Music pauses whenever my Withings step tracker auto-sends data to the phone. It also pauses when my phone connects to the Pebble or loses connection to it, which happens almost every time I leave the house or come back.

One final annoyance: I usually use my Bluetooth headphones to listen to Podcasts. When I have to talk to somebody, the easiest thing to do is to just turn off the headphones; that also preserves its batteries. However, when I do that, Android doesn't immediately stop the audio when the headphones turn off. Instead, suddenly, a tiny John Siracusa is in my pocket, loudly complaining about HFS+ for five or six seconds, until Android finally figures out that something is wrong and turns him off.

I really love a lot of the things Android offers, and in many ways, its user experience is now so close to what iOS offers that the UX differences between the two are really a matter of taste. I'm also happy about where Android is heading in the future.2 But the way audio works in Android right now is just abhorrently broken. Playing audio is a basic feature that should just work. As of right now, in Android, it does not.

Obligatory Defensive Note

This is the obligatory defensive note acknowledging that my experience with audio on Android may not be representative of other people's experiences, particularly if they are running a different version of Android. I'm sure that there are a lot of people who have no issues with how Android handles audio, and I'm happy for them. I'm just not one of them.

Addendum: Android 5 has new APIs that might fix at least some of these issues, once people actually have phones with that system, and the apps are updated for the new APIs.


  1. The issues described in this post occurred with a Samsung Galaxy Note 3 with the Samsung-supplied Android build, and the Samsung-supplied lock screen. I've had similar (but different, in general slightly less severe) issues with Cyanogenmod in the past. I'm not sure what the current state of stock Android is — but the fact that this works differently across different Androids is part of the problem. ↩︎

  2. As a related aside, Google's Google Now powered vision for smart watches, where the watch automatically shows contextual information like the show times for the cinema you're standing next to, or the bus schedule for the bus station you're currently at, or location-based reminders, or the gate number for your next flight, seems much more compelling and focused than Apple's "everything but the kitchen sink zoomable app page with dozens of apps" approach. If you hadn't know that these would be what the two companies would do, wouldn't you have guessed that Google would throw in every feature they could think of without explaining why you'd want any of it, while Apple would offer a focused product with a clear, compelling story?
    And while it's easy to make fun of Moto 360's "flat tire", what Apple has to offer — a thick square that lacks battery power despite of it sheer size — doesn't really seem any better, particularly if it's hanging from somebody's wrist, rather than positioned perfectly a pristinely designed keynote slide.
    This is not to say that the Apple Watch won't sell well; just that it seems more compelling as a status symbol or a fashion item, rather than as a truly useful device that can stand on its own, based just on its utility. And I think Apple knows this, as evidenced by the way they market their watch. ↩︎

If you require a short url to link to this article, please use http://ignco.de/613

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.