CreateJSでゲーム作ってたので、SoundJSで音を鳴らそうと思ったら鳴らなかったんです!
やりたかったこと
- ページを開きます
- Canvasで動くゲームが起動します
- BGMが鳴ります
PCとかChrome for Androidでは普通にOK。
でもSafari for iOSだとBGMが鳴らない。なぜなんだぜ?
音を鳴らす前に画面をタッチさせよう
こことかに(たぶん)書いてある
http://www.createjs.com/tutorials/Mobile%20Safe%20Approach/
つまり、ページを開いただけでいきなり爆音が鳴り響くページは作れないとのこと。
ユーザの操作(タッチとか)に紐づくイベントを起点にしないと音を流し始められないらしい。
ぼくのとった方法
- BGM再生予定リスト的な配列にSoundJSのインスタンスを突っ込む
- JS内でbodyタグにtouchstartイベントを仕込む
- touchstartイベントが発火したら予定リストの音を鳴らす
もっと簡単だった方法
タイトル画面に「GAME START」のボタンをつける