在JavaScript中播放字符串中的音频文件
我将mp3文件的内容另存为变量(这不是为了实用,只是为了我的一个小项目),我希望将该变量的内容作为音频文件播放。这将是一个使用类似node的简单任务,但不幸的是,我必须完全在客户端完成这项工作。
请注意,我不能将字符串内容保存为mp3文件,我需要能够从变量播放它。
我对此进行了调查,但从我发现的情况来看,这似乎是做不到的。如果你们中有谁有解决方案,我将不胜感激。解决方案
这不太实际,因为您将在JS引擎中获得非常高的内存占用,并可能导致不必要的垃圾收集.但是可以使用Base64对MP3进行编码,然后可以将其提供给<audio>
标记的src
属性。
因为在这里的答案中提供base64编码的MP3是不切实际的,所以我将提供一个FIDELL: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();
}
显然,更好的做法是改为提供音频源的URL,因为这是Audio API的预期用途。
相关文章