Web Audio API:Chrome 中没有声音

问题描述 投票:0回答:4

我使用的是 Chrome 22.0.1229.94,无法弄清楚为什么使用 Web Audio API 在任何页面上都没有音频。我已经检查了标志,但似乎没有启用 API 的标志,我需要做其他事情才能让它工作吗?

我尝试运行一个简单的脚本来获得一些音频,但没有声音。

<script type="text/javascript">
  var context = new webkitAudioContext(),
  oscillator = context.createOscillator();

  oscillator.type = 2;
  oscillator.frequency.value = 500;
  oscillator.connect(context.destination);
  oscillator.noteOn(0);
</script>
javascript google-chrome audio web-audio-api
4个回答
2
投票

根据最新规范,noteOn()已更改为start()。


1
投票

为了使用当前版本的 API,您需要使用 start() 代替 noteOn(),stop() 代替 noteOff(),并将振荡器类型指定为字符串。

<script type="text/javascript">

var context = new webkitAudioContext();
var oscillator = context.createOscillator();

oscillator.type = "square";
oscillator.frequency.value = 500;
oscillator.connect(context.destination);

var now = context.currentTime;
oscillator.start(now);
oscillator.stop(now + 1);

</script>

规范位于:http://webaudio.github.io/web-audio-api/


0
投票

你忘记添加 noteOn(0);

<script type="text/javascript">
var context = new webkitAudioContext(),
oscillator = context.createOscillator();

oscillator.type = 2;
oscillator.frequency.value = 500;
oscillator.connect(context.destination);
oscillator.noteOn(0);

</script>

0
投票

这可能是您的 Chrome 的问题,但无论如何我发现脚本有问题。您应该告诉它在使用 Web Audio API 之前等待窗口完全加载。这是执行此操作的脚本版本:

var init = function () {
    var context, oscillator;
    try {
        context = new webkitAudioContext();
    } catch (e) {
        alert("Your browser does not support Web Audio API!");
        return;
    }
    oscillator = context.createOscillator();

    oscillator.type = 2;
    oscillator.frequency.value = 500;
    oscillator.connect(context.destination);
    oscillator.noteOn(0);
    oscillator.noteOff(1);
}
window.addEventListener("load", init);
© www.soinside.com 2019 - 2024. All rights reserved.