BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Howler.js、モダンなWebのためのオーディオライブラリ

Howler.js、モダンなWebのためのオーディオライブラリ

ブックマーク

原文(投稿日:2018/11/22)へのリンク

Howler.jsは、Web Audio APIのサポートとHTML5 Audioへのフォールバックメカニズムを備えたモダンなオーディオライブラリを提供する。このプロジェクトが目指しているのは、JavaScriptにおけるオーディオを用いたクロスプラットフォーム開発を簡単にすることだ。

Howler.jsはJavaScriptでオーディオを扱うための一貫したAPIを提供し、再生、停止、シーク、フェード、ループなど、よくあるオーディオパターンを制御する。再生性能を向上させるため、可能な場合はオーディオファイルを自動的にキャッシュする。

<script src="/path/to/howler.js"></script>
<script>
    var sound = new Howl({
      src: ['sound.webm', 'sound.mp3']
    });
</script>

あるいはES modulesを利用して、依存関係としてHowler.jsをインポートすることができる。

import {Howl, Howler} from 'howler';

const {Howl, Howler} = require('howler');

var sound = new Howl({
  src: ['sound.mp3']
});

sound.play();

Howler.jsはオーディオを扱うための2つのハイレベルな構成概念を提供する。

  • オーディオスプライト - 正確な再生とより小さなリソースのために、スプライトを用いてオーディオファイルのセグメントを定義・制御する。
  • 空間オーディオ - ステレオパンや3Dゲームオーディオなどの音場を提供する。

オーディオで大きな問題になるのはコーデックのサポートだ。Howler.jsは現在ブラウザで利用可能な、MP3、OPUS、OGG、WEBMなど14種類の形式をサポートしている。

Howler.jsは全てのモダンなWebブラウザをサポートし、Internet Explorer 9もサポートする。また、Cordovaを用いたハイブリッドモバイルアプリとHTML5ベースのFacebook Instant Gamesプラットフォーム内での使用もサポートする。

Web Audio APIは、現在の実装に複数の課題があることがわかっている。仕様は複数の重要な機能を廃止しつつ、5年以上にわたり着実に変化している。最近の作業では、AudioWorkletsによって、オーディオ処理をWebワーカーに似た別スレッドに移している。Web Audioのブラウザサポートは依然として一貫性がなく、開発者がこれら問題を回避するのにHowler.jsは役に立つ。

最も最近の課題は、特定のWebサイトの自動再生を承認する仕組みを必要とすることなく、オーディオクリップが再生可能になる前にユーザーインタラクションを要求することだ。

Howler.jsとWeb Audioの現在および将来について、SitePenのシニアソフトウェアエンジニアであるPaul Shannon氏はInfoQにこう語った。

Web AudioはサウンドにとってのCanvasのようなもので、サウンドにローレベルアクセスを提供します。そのロジックに従うと、Web Audioに対するHowler.jsは、3Dグラフィックスに対するThreejsのようなものです。Web Audioが広く導入されればきっと、オーディオにもInstagramのようなフィルターが登場するでしょう!

Google、Disney、Mozilla、Legoを含む複数の大手テクノロジおよびメディア企業が、Howler.jsを利用している。

Howler.jsはモジュラーアーキテクチャをとっており、それ自体はgzip圧縮で7KBしかない。Howler.jsはMITオープンソースライセンスで利用可能だ。Howler.js GitHubプロジェクト経由のコントリビューションは大歓迎だ。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT