CocoonJS Support

Using the generic Audio type instead of relying on the DOM allows it to work in CocoonJS.