So a few days back I got my hands a bit dirty with HTML5’s CANVAS tag. And some number of weeks ago I got into the history object and HTML5’s improvements to that. Today I got my feet a little wet with the AUDIO tag.
It’s an interesting concept, really. This most recent journey has been within the context of the home audio system, and I was just just just remarking to myself that development was at a virtual standstill for a number of months – and here it is that HTML5 is enabling a new coding push with real-world usability.
Well, that’s the theory.
The truth is that HTML5 and embedded media consumption are themselves strange bedfellows, and as a result, I find myself in the same position in my relationship with HTML5.
So forget about the abstracts. My music collection is overwhelmingly encoded in the MP3 format. And when I say overwhelmingly, I really mean completely – with the exception of perhaps 20 tracks, vs. the other 35,064 which are MP3’s. The problem with MP3 – besides its lossy, yesteryear compression – is that it’s not in the public domain. This doesn’t really mesh well with HTML5 – specifically, the AUDIO tag of HTML5 – which wants to work with open standards and hence is at odds with MP3.
So how does this affect me and my home audio system? Glad you asked.
You may recall that the system consists of 2 physical zones, 4 general-purpose streaming zones and one special-purpose streaming zone. It’s the general-purpose streaming zones that I use extensively when I’m not at home – ie, at work or in the car. And despite advancements in the manner by which my intranet resources are made publicly “available”, the real truth is that using the streaming zones has always been a two-part affair; part one is to interact with the system using a browser, part two is to connect to the zone using a program on the client device.
Granted, quite often I can eschew part one, as the zone is loaded and good-to-go as soon as the client connects. But one thing that really dogged me incessantly – besides security considerations that I won’t go into here – is the absence of any ability to play a single track without having to leave the web browser.
Yes, I’m talking about a desire to implement an audio client within the browser itself.
Now, Flash is capable of doing this. And while Shelly’s phone doesn’t support Flash (argh), the truth is that Flash isn’t completely suited to the next logical step in this thought process – which is, replacing the streaming zones with a webpage and embedded player. I mean, I could code a Flash app, but trust me when I say that that’s not going to happen.
But would could happen – and indeed, what I really, really, really want to happen – is to code an HTML5 “app” that can do this. This would actually solve all sorts of niggling problems, like the issue of transport control that I talked about here. The truth is that it could actually serve as a bonafied mobile music app, optimally designed for the small screen.
It could, if… MP3 and HTML5 played nicely together in all modern browsers.
And that’s the problem I’m having right now. I’ve worked out the interaction, I’ve figured out that the current home audio system can easily support the types of XHR calls I’d need to make, I’ve got some working knowledge of JSON… heck, I’ve even got a working implementation now of an embedded player for playing single tracks. But to make this all work I need HTML5 and it’s DOM-accessible AUDIO element, and I need cross-browser support of MP3 files via that same AUDIO element.
Desktop support is sketchy – as is mobile support. I find it strange that Opera on Windows doesn’t support MP3 but Opera on Android does…? And the native Android browser is supposed to support MP3 but it actually doesn’t. <sigh> The truth is that there’s no point burning the proverbial midnight oil on an HTML5 music player app for my audio system if support is hit-and-miss – across the devices that I actually use.
So as much as I’d love to cuddle up close to HTML5, the unfortunate truth is that it’s playing hard to get.
So I’ve been using Google Chrome for my browsing needs. Again, that’s neither here nor there. The real message… which is quite selfish really… is that I’ve been using Chrome with the Whole Home Audio web interface and it’s quite a slick experience. Which is to say – in a very, very, very long-winded way – that I’ve come a long way from Firefox-dependence with respect to said interface.