【问题标题】:Using Web Audio API to add silence to beginning of sound [closed]使用 Web Audio API 为声音的开头添加静音 [关闭]
【发布时间】:2016-10-07 13:57:00
【问题描述】:

我发现可以使用 Javascript (https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBuffer) 创建音频缓冲区。我仍然不确定这个 API 是做什么的,但我想知道是否有办法在 .ogg 文件前添加 x 秒的静音并在浏览器中播放?

编辑:

目的是创建一个即使长时间超时也能在移动浏览器上工作的计时器。如果手机进入睡眠状态,SetTimeoutSetInterval 将停止(以及其他 JavaScript 代码)。我的解决方法是创建一个声音文件,其中包含 40 分钟的静音,然后播放警铃(即使 JavaScript 不再在后台选项卡中执行,声音也会在后台继续播放)。但是创建这样的文件不是很灵活并且会消耗流量。我想使用这个 API 来完成我所描述的,而不用创建一个文件,并离线使用静音 + 铃声。

【问题讨论】:

  • @Kaiido 我已经更新了问题并添加了描述
  • 我建议更多地了解 JavaScript 及其在移动浏览器上的工作原理,并对 Web Audio API 进行更多研究。就目前的问题而言,听起来您是在要求 SO 上的志愿者为您编写大量代码……
  • @MikeMcCaughan 在我决定进入 Web API 之前,我只想知道是否可以做我想做的事。我不确定。
  • Stack Overflow 并不是真正的 "is it possible" questions go over well 站点。答案几乎总是“试试看”。如果你把问题改成“我是怎么做的”,显然我是无意识地这样做的,那么你可以看到它太宽泛了。

标签: javascript audio web html5-audio


【解决方案1】:

也许这也可以解决您的问题。我以另一种方式归档了这种行为。我只是在播放声音之前等待了 x 秒。

我的代码看起来像

var audio = new Audio('sound.mp3');

function start() {
    audio.play();
}

setTimeout(start, 2000);

您可以使用 x 来代替 2000,然后将其乘以 1000。

它对你有用还是我遗漏了一点?

【讨论】:

  • 鉴于当前问题的不明确,我会说这是一个聪明的解决方案;-)
  • 问题是这在手机处于睡眠状态时不起作用。我的问题可能不是很精确。正在编辑它。
猜你喜欢
  • 2014-01-22
  • 2013-02-24
  • 2015-09-14
  • 2013-01-03
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多