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);

 

是非、おためしあれ。