WebGL のオーディオは他のプラットフォームとは異なります。他のプラットフォームでは、オーディオの再生やミキシングを行うために FMOD が内部で使用されています。ですが、WebGL ではスレッドがサポートされておらず、他の方法を取らざるを得ませんでした。そこで Web Audio API を内部ベースとして、ブラウザ側でオーディオの再生とミキシングを実装するようにしました。
残念ながら、WebGL では一般的な機能のみをサポートしており、一部のオーディオ機能に制限があります。このページでは、動作すると期待されている機能についてドキュメント化を行います。ここに記載されていないものは現在サポートされていません。
AudioSource では、オーディオ再生からの一時停止、再開、パニング、ロールオフ、ピッチ、ドップラー効果をサポートしています。
以下の AudioSource
API はサポートされています。
プロパティー:
clip
dopplerLevel
ignoreListenerPause
ignoreListenerVolume
isPlaying
loop
maxDistance
minDistance
mute
pitch
playOnAwake
rolloffMode
time
timeSamples
velocityUpdateMode
volume
メソッド:
Pause
Play
PlayDelayed
PlayOneShot
PlayScheduled
SetScheduledEndTime
SetScheduledStartTime
Stop
UnPause
PlayClipAtPoint
AudioListener
の API はすべてサポートされています。
WebGL の AudioClip は、常に AAC フォーマットとしてインポートされます。これは、異なるブラウザで広くサポートしているフォーマットであるからです。
以下の AudioClip
の API はすべてサポートされています。
サポートされているAPI
プロパティー:
メソッド:
Create
。AudioClip.Create は部分的にサポートされています。ストリーミングのパラメーターを false に、さらにオーディオサンプルが完全にロードされたときのみ AudioClip.Create を呼び出すことができます。呼び出すと、戻り値が返る前にクリップが作成され、すべてのサンプルがロードされます。SetData
。 AudioClip.SetData
は部分的にサポートされています。具体的には、 AudioClip の内容をすべて入れ替えることはできるというものです。 offsetSamples
パラメータは無視されます。WWW.audioClip
は、ブラウザが対応しているフォーマットのオーディオクリップであれば動作します。各ブラウザが対応しているフォーマットはこのページで確認することができます。
Microphone
クラスは WebGL ではサポートされていません。