在 JavaScript 中从字符串播放音频文件

Ini*_*oya 1 javascript variables client html5-audio

我将 mp3 文件的内容保存为变量(这并不意味着实用,只是为了我的一个小项目),并且我希望将此变量的内容作为音频文件播放。对于像节点这样的东西来说,这将是一个简单的任务,但不幸的是我必须完全在客户端完成此任务。

请注意,我不能只将字符串的内容保存为 mp3 文件,我需要能够从变量播放它。

我已经调查过这一点,但从我发现的情况来看,这似乎是不可能做到的。如果你们中有人有解决方案,我将不胜感激。

Nor*_*eau 8

这不是很实用,因为您将在 JS 引擎中获得非常高的内存占用,并且可能会导致不必要的垃圾收集...但是可以对 MP3 进行 Base64 编码,然后将其输入到属性src中一个<audio>标签。

因为在这里的答案中提供 base64 编码的 MP3 是不现实的,所以我将提供一个小提琴: https: //jsfiddle.net/4t6bg95z/1/

但代码的要点可能是这样的:

var audio = document.getElementById('audio');
audio.src = "data:audio/mp3;base64,..."; //This is a base64 encoded string of an MP3 file

window.beep = function() {
    audio.play();
}
Run Code Online (Sandbox Code Playgroud)

显然,提供音频源的 URL 是更好的做法,因为这是音频 API 的预期用途。