スポンサーリンク

Safari 6 Web Audio API

先日のアップルWWDCで発表されたSafari 6がWeb Audio APIをサポートしているという話だったのですが、Developer Previewで確認したところ、微妙にChromeと挙動が違う部分があるようです。これに引っかかってWebModularがWeb Audio APIで動かなかったので、修正しました。

WebAudioAPIの存在を判定するために


if (typeof (webkitAudioContext) == "function") {
}

というような事をやっていたのですが、Safariでは “function”ではなく”object”になるようです。とりあえず、


if (typeof (webkitAudioContext) == "function" || typeof(webkitAudioContext) == "object") {
}

としましたけど、!=”undefined”で良いかも。

それからJavaScriptNodeを作る時、


audio.createJavaScriptNode(outbufsize, 0, 2);

だと駄目でオーディオ入力は使わなくても


audio.createJavaScriptNode(outbufsize, 2, 2);

とする必要があるみたいです。いまいち良くわかりませんが、このへんドキュメント的には 「It is invalid for both numberOfInputChannels and numberOfOutputChannels to be zero.」なんで同時に0にしちゃ駄目というだけだと思うのだけど解釈が違うのかな?

未分類
スポンサーリンク