Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中从字符串播放音频文件_Javascript_Variables_Client_Html5 Audio - Fatal编程技术网

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

在JavaScript中从字符串播放音频文件,javascript,variables,client,html5-audio,Javascript,Variables,Client,Html5 Audio,我有一个mp3文件的内容保存为一个变量,(这不是为了实用,只是为了我的一个小项目),我希望把这个变量的内容作为音频文件播放。这将是一个类似node的简单任务,但不幸的是,我必须完全在客户端完成这项任务 请注意,我不能仅仅将字符串的内容保存为mp3文件,我需要能够从变量中播放它 我已经研究过这一点,但从我发现的情况来看,这似乎是不可能做到的。如果你们有什么解决办法的话,我会很高兴听到的 这不太实际,因为您将在JS引擎中获得非常高的内存占用,并可能导致不必要的垃圾收集。。。但是可以使用base64对

我有一个mp3文件的内容保存为一个变量,(这不是为了实用,只是为了我的一个小项目),我希望把这个变量的内容作为音频文件播放。这将是一个类似node的简单任务,但不幸的是,我必须完全在客户端完成这项任务

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


我已经研究过这一点,但从我发现的情况来看,这似乎是不可能做到的。如果你们有什么解决办法的话,我会很高兴听到的

这不太实际,因为您将在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格式的规范,找出如何获取头文件和数十亿帧来组成这样的压缩音频文件。