在JavaScript中从字符串播放音频文件
我有一个mp3文件的内容保存为一个变量,(这不是为了实用,只是为了我的一个小项目),我希望把这个变量的内容作为音频文件播放。这将是一个类似node的简单任务,但不幸的是,我必须完全在客户端完成这项任务 请注意,我不能仅仅将字符串的内容保存为mp3文件,我需要能够从变量中播放它在JavaScript中从字符串播放音频文件,javascript,variables,client,html5-audio,Javascript,Variables,Client,Html5 Audio,我有一个mp3文件的内容保存为一个变量,(这不是为了实用,只是为了我的一个小项目),我希望把这个变量的内容作为音频文件播放。这将是一个类似node的简单任务,但不幸的是,我必须完全在客户端完成这项任务 请注意,我不能仅仅将字符串的内容保存为mp3文件,我需要能够从变量中播放它 我已经研究过这一点,但从我发现的情况来看,这似乎是不可能做到的。如果你们有什么解决办法的话,我会很高兴听到的 这不太实际,因为您将在JS引擎中获得非常高的内存占用,并可能导致不必要的垃圾收集。。。但是可以使用base64对
我已经研究过这一点,但从我发现的情况来看,这似乎是不可能做到的。如果你们有什么解决办法的话,我会很高兴听到的 这不太实际,因为您将在JS引擎中获得非常高的内存占用,并可能导致不必要的垃圾收集。。。但是可以使用base64对MP3进行编码,然后将其输入到
但代码的要点可以是:
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,因为这是音频API的预期用途。这不太实际,因为您将在JS引擎中获得非常高的内存占用,并可能导致不必要的垃圾收集。。。但是可以使用base64对MP3进行编码,然后将其输入到
但代码的要点可以是:
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,因为这是音频API的预期用途。什么类型的编码?。mp3文件是复杂编码的二进制文件,如何在javascript中将其存储为字符串?任何事情都可以在足够的时间内完成,但是如果你真的把.mp3作为一个字符串,你可能需要阅读mp3格式的规范,找出如何获取头和数十亿帧来组成这样的压缩音频文件。什么样的编码?.mp3文件是复杂的编码二进制文件,如何在javascript中将其存储为字符串?任何事情都可以在足够的时间内完成,但是如果你真的把.mp3作为一个字符串,你可能需要阅读mp3格式的规范,找出如何获取头文件和数十亿帧来组成这样的压缩音频文件。