Turn byte array to sound

前端 未结 2 937
慢半拍i
慢半拍i 2021-01-01 03:18

I have an mp3 file as byte array. How to turn it back to a sound and play using javascript?

Thanks

相关标签:
2条回答
  • 2021-01-01 03:56

    As far as I know this is decidedly non trivial.

    1. You can turn the array into a data URI, and then play it back normally.
    2. You can post it back to a server to do the encoding and play it back normally.
    3. 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.

    0 讨论(0)
  • 2021-01-01 04:04

    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

    0 讨论(0)
提交回复
热议问题