将字节数组转换为声音
我有一个 mp3 文件作为字节数组。如何使用 javascript 将其转回声音并播放?
谢谢
I have an mp3 file as byte array. How to turn it back to a sound and play using javascript?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我所知,这绝对不是一件小事。
2 似乎效率低下,3 需要浏览器特定的支持。所以,使用 1。我还没有尝试过,但请查看 http://www.bitsnbites.eu/? p=1。您应该期望这比本机代码效率低得多。
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.
这只是 Philip JF 答案的后续:
“1”可能会正常工作,而不需要任何在 Bitsnbites 链接上解释的棘手内容。由于 mp3 文件没有标头,因此您可以“按原样”将数据传递到 URL,无需 WAVE 标头。所以要走的路(从bitsnbites页面修改):
构造要作为DATA URI播放的字符串:
使用“data:audio/mpeg;base64,”初始化字符串
使用 btoa() 函数将 mp3 字节数组附加为采用 Base64 编码的格式化字符串。
然后您可以调用此数据 URI 来播放它。
参考文献:
https://developer.mozilla.org/en/DOM/window.btoa
http://en.wikipedia.org/wiki/Data_URI_scheme
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