2012-10-26 100 views
1

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

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

<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

我已经把范围缩小到铬在训练营在Windows中运行MAC – njorlsaga

+0

您可以考虑使用网络音频这样的库:HTTP://plugins.jquery .com/jWebAudio/ – Ovilia

回答

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

仍然无法正常工作,没有网页使用网络音频api为我工作... – njorlsaga

+0

我使用的是与您相同的版本。你有没有其他的信息?不要错误地采取这种方式,但是,你的电脑音量是否升起? – William

+0

我已经把它缩小到在训练营MAC中的windows上运行chrome – njorlsaga

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); 
2

按照latest spec,noteOn()已改为start()方法。

+0

这应该强调大量的教程,那里仍然指代depricated函数。 –

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/