简单的Web Audio API示例在JsFiddle中播放,但不在本地播放

时间:2012-07-23 09:42:15

标签: api audio web

我在这里找到了一个简单的网络音频API示例: http://jsfiddle.net/stuartmemo/xMruN/

当我在JsFiddle中运行它时,它完美(在Chrome中)但是当我在本地复制代码时它不起作用。这是我在本地使用的代码:

<!DOCTYPE html >
<meta charset="UTF-8">
<title>Test</title>

<script type="text/javascript">
var context = new webkitAudioContext(),
oscillator = context.createOscillator();
oscillator.type = 3;
oscillator.frequency.value = 500;
oscillator.connect(context.destination);
oscillator.noteOn(0);​
</script>

我觉得这有一个简单的解决方案,我忽略了,但我已经在这里呆了20分钟。 顺便说一下,我在网络服务器上运行我的本地示例(即使我怀疑我应该这样做)。

由于

3 个答案:

答案 0 :(得分:0)

删除了这一行并且有效。

oscillator.noteOn(0);

答案 1 :(得分:0)

  

删除了这一行并且有效。

oscillator.noteOn(0);​

在Web Audio API中不推荐使用noteOn方法。您可以将该行更改为:

oscillator.start(0);

......它应该按原定的目的运作。

  

BTW我在网络服务器上运行我的本地示例(尽管如此   我怀疑我应该这样做。

实际上,除非您从服务器运行,否则某些Web Audio API内容将无效。所以你通过运行本地服务器做正确的事情。

答案 2 :(得分:0)

不再使用整数指定振荡器类型。请改用字符串,例如

oscillator.type = 'sawtooth';

我不知道这是否是造成您问题的原因。也许JsFiddle使用了较早的web音频api实现?