SoundJS 0.4.0: iOS6 でサウンドを再生する方法
SoundJS 0.4.0 にて iOS6 でサウンドを再生する方法です。
PreloadJS でサウンドファイルを読み込んだ後、以下の javascript 処理の記述を行なってください。
var canvas = document.getElementById('canvas'); canvas.addEventListener('touchstart', function(){ createjs.Sound.play('soundId'); this.removeEventListener('touchstart', arguments.callee); }, false);
'soundId'の箇所は任意に書き換えてください。
上記 touchstart イベントが実行されることで、'soundId' に指定したサウンドが再生され、同時に Web Audio API の音声ミュート状態が解除されます。以後は自由なタイミングで音声再生が可能になります。touchstart イベント内ではダミーの無音サウンド等を再生させたりするのが良いかもしれません。
iOS6 の Web Audio API での音声再生ですが、iPhone 3GS では結構な負荷がかかるようで、ものによっては処理速度がガタ落ちしてしまいます。むしろ音は鳴らさないほうが良い、なんて事もありそうです。
補足)Haxe では JQueryExtern の bind メソッドでタッチイベント定義を行えます。
private function test(){ new JQuery("#canvas").bind("touchstart", "", this.onTouchStart); } private function onTouchStart(event){ Sound.play('soundId'); new JQuery("#canvas").unbind("touchstart"); }
追記 2013/6/23)
Haxe サンプルコードを Haxe 3 バージョンに変更