BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース オーディオライブラリHowler.js 2.0リリース

オーディオライブラリHowler.js 2.0リリース

ブックマーク

原文(投稿日:2016/07/26)へのリンク

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

また、非推奨のfadeInfadeOutメソッドが削除され、代わりに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

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT