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
パラメータは無視されます。SystemInfo.supportsAudio
is not implemented on WebGL and always returns true.
WWW.audioClip
は、ブラウザが対応している形式のオーディオクリップであれば動作します。各ブラウザが対応している形式はこのページで確認することができます。
Microphone
クラスは WebGL ではサポートされていません。