【问题标题】:Play audio file from string in JavaScript从 JavaScript 中的字符串播放音频文件
【发布时间】:2018-05-13 10:41:08
【问题描述】:

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

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

我已经对此进行了调查,但根据我的发现,这似乎无法做到。如果你们中的任何人有解决方案,我将不胜感激。

【问题讨论】:

  • 什么样的编码?
  • .mp3 文件是复杂编码的二进制文件,究竟如何将其存储为 javascript 中的字符串?只要有足够的时间,任何事情都可以完成,但如果您真的将 .mp3 作为字符串,您可能必须阅读 MP3 格式的规范,弄清楚如何获取标题和构成压缩音频的数十亿帧像这样的文件。

标签: javascript variables client html5-audio


【解决方案1】:

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

因为在这里的答案中提供 base64 编码的 MP3 是不切实际的,所以我将提供一个 Fiddle: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 的预期用途。

【讨论】:

    猜你喜欢
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多