boombox.js のAndroid端末でのループ再生のずれ対策
最近、備忘も兼ねて小ネタを投稿中のnaosk8です。
スマホで音声の取り扱いをしている人であれば
もしかしたら知っているかもしれない boombox.js 。
ライブラリのサイズも小さく、
ブラウザの各音声ファイル形式への対応を見て
適切なファイル形式の音声ファイルのみを読み込んだり、
AudioSpriteとして音声の取り扱いを出来たりと優秀なのです。
が、しかし、Android端末でのループ再生で、以下の問題が。
■ 前提
* Android端末
* AudioSprite利用
* ループ再生の実行
■ 事象
ループ再生の実行時に
- 想定のstart, endのタイミングでSprite化した音声が再生されない(はみだす)
- 徐々にループがずれたり、ループタイミングがずれる。
■ 解決方法
ループ方式を、LOOP_NATIVEでなく、LOOP_ORIGINALにすると
内部的に呼ばれているonEndedイベントさんが働いてくれる為か、問題が解消されます。
boombox.get('sound').setLoop(boombox.LOOP_ORIGINAL);
是非、おためしあれ。