You can turn the array into a data URI, and then play it back normally.
You can post it back to a server to do the encoding and play it back normally.
You can use a fancy API
2 seems inefficient, 3 requires browser specific support. So, use 1. I havent tried it, but check out http://www.bitsnbites.eu/?p=1. You should expect this to be way less efficient than native code.
"1" will probably work fine without any of the tricky stuff explained on the bitsnbites link. Since mp3 files are without header, you can pass on the data to the URL "as is", without WAVE header. So the way to go (modified from the bitsnbites page):
Construct the string to be played as a DATA URI:
Initialize a string with "data:audio/mpeg;base64,"
Append the mp3 byte array as a formatted string in base64 encoding using the btoa() function.
Then you can invoke this Data URI in order to play it.
As far as I know this is decidedly non trivial.
2 seems inefficient, 3 requires browser specific support. So, use 1. I havent tried it, but check out http://www.bitsnbites.eu/?p=1. You should expect this to be way less efficient than native code.
This is just a follow-up on Philip JF's answer:
"1" will probably work fine without any of the tricky stuff explained on the bitsnbites link. Since mp3 files are without header, you can pass on the data to the URL "as is", without WAVE header. So the way to go (modified from the bitsnbites page):
Construct the string to be played as a DATA URI: Initialize a string with "data:audio/mpeg;base64," Append the mp3 byte array as a formatted string in base64 encoding using the btoa() function. Then you can invoke this Data URI in order to play it.
References:
https://developer.mozilla.org/en/DOM/window.btoa
http://en.wikipedia.org/wiki/Data_URI_scheme