代码之家  ›  专栏  ›  技术社区  ›  Inigo Mantoya

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

  •  1
  • Inigo Mantoya  · 技术社区  · 6 年前

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

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

    我已经对此进行了调查,但从我发现的情况来看,这似乎是不可能做到的。如果你们有什么解决办法,我将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  5
  •   Norman Breau    6 年前

    这不太实际 ,因为您将在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();
    }
    

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