iOS6 の Web Audio API を使う
朝起きたら timbre.js が iOS6 で鳴らないやんけみたいなメールが来ていたので慌てて対応しました。スケールするマリオ も ホーミー も iPhone で、iPad で鳴ります!!
ただ、まだ不安定な感じで、すごくブチブチに鳴ってしまうときと、奇麗に鳴るときがある感じです。UIWebView だと確実にブチブチになる。
僕は JavaScriptNode でゼロから信号処理を行う派ですが、こんな感じにしたら使えるようになりました。 AudioBufferSourceNode を JavaScriptAudioNode に入力してあげないといけないみたいです。
追記
ちゃんと確認していないですが、画面読み込み後等に自動でスタートするのはダメっぽい。
ボタンとか画面をタッチしてから音を鳴らすとかしたほうが良さそうです。
ctx = new webkitAudioContext() src = ctx.createBufferSource() # ← これが必要!! node = ctx.createJavaScriptNode 1024, 1, 1 node.onaudioprocess = (e)-> out = e.outputBuffer.getChannelData 0 for i in [0...out.length] out[i] = Math.random() isPlaying = false $('#play').on 'click', -> if not isPlaying src.noteOn 0 # ← これが必要!!!! src.connect node # ← これが必要!!!!!! node.connect ctx.destination isPlaying = true else src.disconnect() node.disconnect() isPlaying = false