我在这里找到了一个简单的网络音频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分钟。 顺便说一下,我在网络服务器上运行我的本地示例(即使我怀疑我应该这样做)。
由于
答案 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实现?