JavaScriptオーディオライブラリのHowler.jsがバージョン2.0になった。今回のアップデートには「多数の機能追加と改善」が含まれている。
Howler.jsの作者でゲーム開発スタジオGoldfire Studiosの創設者でもあるJames Simpson氏によると、今回のリリースはHowlerの「完全な書き直し」で、HTML5およびWeb Audioと完全互換になるという。このリリースは何十人ものコントリビューターのおかげだ。
Simpson氏はブログ記事「Howler.js v2.0 Released」において、howler.jsは「モジュラーライブラリ」になると説明した。その無駄のないcoreは、大きなWeb Audio APIで利用できる各種ツール(空間音響、フィルターなど)のような高度な機能の追加拡張を可能にする。
「Howler.jsはモジュール化されました。そのcoreはhowler.jsの当初の目標を表しています」とSimpson氏は語る。また、そのspatialプラグインはWeb Audio APIによる空間およびステレオ音響をサポートする。
バージョン2.0における最大の変更は、1.xにあった大きな苦痛の解決にある。3層構造を導入することで、複数サウンドの再生における混乱を解消する。
howler.jsにおけるオーディオの考え方の変更について、Simpson氏はこう語る。
グローバル(Howler)
、グループ(Howl)
、単一サウンド(Sound)
という概念があります。再生される各サウンドは、再生制御やスプライトの使用有無のオプションを指定して、操作可能なSoundオブジェクトを取得します。Howlメソッド呼び出しは、グループ内の1つもしくはすべてのサウンドに適用することができます。
Howler (global) ->
Howl (group) ->
Sound (single)
さらに、今回のメジャーアップグレードの新しいメソッドには、発火時に自動的に自らを削除するイベントリスナーを設定するためのonce
、指定したサウンドが再生中であればtrue
を返すplaying
、オーディオソースの長さを返すduration
、Howlのロード状態を返すstate
、すべてのアクティブなHowlをアンロードし、AudioContextをリセットしてメモリをクリアする新しいグローバルなunload
メソッドなどがある。
Howlerの2.0リリースには、待ち望まれたDolby AudioとCAFFオーディオファイルの再生サポートや、.webaに加えて.webm拡張子のサポートも含まれる。
また多数のバグ修正も含まれている。ext
オプションが改善され、ストリーム再生(SoundCloudが例として挙げられている)に使えるようになる。unload
メソッド使用時の潜在的なメモリリークも修正されており、HTTPSページにおけるHTTPファイルロード時には、HTML5 Audioにフォールバックされるようになる。
2.0には破壊的変更も含まれている。play
メソッドはもはやコールバックを受け取らず、即座に再生サウンドidを返すようになる。Simpson氏によると、これによりplay
メソッドはチェーンできなくなるが、それ以外はすべて同じように動くという。
// 特定の再生サウンドidを取得する
var id = sound.play();
// 再生をポーズする
sound.pause(id);
また、非推奨のfadeIn
とfadeOut
メソッドが削除され、代わりにfade
メソッドを使うようになる。
// フェードインする
sound.fade(0, 1, 1000);
// 前のフェードインが終了したらフェードアウト
sound.once('fade', function(){
sound.fade(1, 0, 1000);
});
howler.js 2.0の変更一覧はここにある。Howler.jsはMITライセンスでリリースされており、Google、Disney、Lego、Mozilla、NASAなどで使われている。
Rate this Article
- Editor Review
- Chief Editor Action