« HTML5 Video Guide provides tutorials on audio, plus testing code | Home | <audio> playback in Android »

May 14, 2012

Broken HTML5 audio labeled "an annoyance"

This article from last week calls out some of the issues developers face using HTML5 and the hurdles to achieving wider adoption.  The article has this to say about audio in HTML5:

Games without sound are usually no fun; therefore HTML5 must be able to handle all kinds of audio correctly and allow developers to work their magic. HTML5 sound works well in most browsers, but we have found limitations, especially where it comes to looping music. Another problem is that sound within an HTML5 application cannot be muted by the hardware volume buttons on the iPhone, forcing players to rely on onscreen software buttons. This will almost certainly be fixed in the near future, but for now it is an annoyance that can break user engagement with a game.

Anyone who has attempted to implement audio in HTML5 projects has certainly found that web audio is far more than "an annoyance".  It does not work well in most browsers as the article claims.  All major browsers do not support one audio codec among them (as noted in this previously linked post), playback & manipulation is absolutely broken and barely functional, iOS devices can play only one sound at a time, Android cannot play sound at all due to having no included codecs!  (Android users with the Ice Cream Sandwich version can now get Chrome for Android, which does play sound, but given that covers fewer than 4% of the active user base, it's not much help to developers.)  Unless all you want to do is make a simple music or single-shot sound player, HTML5 audio is a non-starter.

If you need to trigger multiple sounds in-sync with on-screen or user-controlled actions, you are likely to encounter both a big headache and severe limitations. Those limitations will probably leave you running back to Flash for its far more functional audio support, leaving mobile devices utterly stranded.

The article continues on though, discussing the problems developers must address when it comes to visual presentation:

While audio is certainly an issue, addressing different screen sizes and pixel shapes is much more pressing.

Imagine for a moment that you're a developer, working on the next awesome game that will set the world on fire. You've begun developing your game in HTML5 for desktop browsers because you've been told that adapting it to mobile is easy. Your code can quickly be taken to a mobile device by simply scaling down your graphics with little to no hassle. Turns out this is mostly wishful thinking.

By going this route, you'll end up with a game that looks terrible and requires a lot of extra work in order to make it run correctly.

Somehow, "a lot of extra work" is a terrible thing for visual elements, but "utterly broken audio" is nowhere near as severe.  Additionally, "almost certainly be fixed in the near future" — the article's assertion about the fixes necessary to make web audio more engaging — means waiting what will likely be a minimum of 12-24 months for adoption of the Web Audio API, browser updates, and feature parity across all platforms.

Given that the Web Audio API isn't even a completed nor adopted proposal, the possibility that functional audio support will exist in the next two years seems extremely unlikely, if not downright impossible.

Thanks to Julian Kwasneski from Bay Area Sound for submitting the gameindustry.biz article.