WebGL のオーディオは他のプラットフォームとは異なります。他のプラットフォームでは、オーディオの再生やミキシングを行うために FMOD が内部で使用されています。ですが、WebGL ではスレッドがサポートされておらず、他の方法を取らざるを得ませんでした。そこで Web Audio API を内部ベースとして、ブラウザ側でオーディオの再生とミキシングを実装するようにしました。
残念ながら、WebGL では一般的な機能のみをサポートしており、一部のオーディオ機能に制限があります。このページでは、対応している機能について説明します。ここに記載されていないものは現在サポートされていません。
AudioSource では、オーディオ再生からの一時停止、再開、パニング、ロールオフ、ピッチ、ドップラー効果をサポートしています。
以下の AudioSource API はサポートされています。
プロパティー
clipdopplerLevelignoreListenerPauseignoreListenerVolumeisPlayingloopmaxDistanceminDistancemutepitch (ピッチに関しては、正の値のみがサポートされます。)playOnAwakerolloffModetimetimeSamplesvelocityUpdateModevolumeメソッド
PausePlayPlayDelayedPlayOneShotPlayScheduledSetScheduledEndTimeSetScheduledStartTimeStopUnPausePlayClipAtPointAudioListener の API はすべてサポートされています。
WebGL の AudioClip は、常に AAC フォーマットとしてインポートされます。これは、異なるブラウザで広くサポートしているフォーマットであるからです。
以下の AudioClip の API はすべてサポートされています。
サポートされているAPI
プロパティー
メソッド
Create AudioClip.Create は部分的にサポートされています。ストリーミングのパラメーターを false に、さらにオーディオサンプルが完全に読み込みされたときのみ AudioClip.Create を呼び出すことができます。呼び出すと、戻り値が返る前にクリップが作成され、すべてのサンプルが読み込まれます。SetData AudioClip.SetData は部分的にサポートされています。具体的には、 AudioClip の内容をすべて入れ替えることができるというものです。 offsetSamples パラメータは無視されます。SystemInfo.supportsAudio is not implemented on WebGL and always returns true.
WWW.audioClip は、ブラウザが対応している形式のオーディオクリップであれば動作します。各ブラウザが対応している形式はこのページで確認することができます。
Microphone クラスは WebGL ではサポートされていません。