このページでは、WebGL のオーディオ機能に関する情報のみを提供しています。Unity プロジェクトでオーディオを使用する方法については、オーディオの概要 を参照してください。
Unity WebGL のオーディオ機能は限られており、基本的な機能しかサポートしていません。これは、Unity が通常、プラットフォームのオーディオ管理に FMOD を使用しているためです。ただし、FMOD はスレッドに依存しており、WebGL はこれをサポートしていません。このため、Unity では、内部の Web Audio API に基づいた実装を採用し、ブラウザーでオーディオの再生やミキシングを処理できるようにしています。
Unity WebGL は以下の API クラスをサポートしています。
| クラス | WebGL サポート状況 | 
|---|---|
| AudioSouce | WebGL はいくつかの API をサポートしています。具体的なサポート内容については、AudioSource を参照してください。 | 
| AudioListener | すべての API に対応しています。 | 
| AudioClip | WebGL はいくつかの API をサポートしています。具体的なサポート内容については、AudioClip を参照してください。 | 
| SystemInfo.supportsAudio | ブラウザーは WebGL のオーディオサポートを提供しています。このため、 SystemInfo.supportsAudio は常に true です。 | 
| Microphone | 不対応。 | 
AudioSource API は、以下のような基本的な位置に関するオーディオ再生をサポートしています。
Unity WebGL は、以下の AudioSource API をサポートします。
| Properties | 説明 | 
|---|---|
| Clip | 次に再生するオーディオクリップを決定します。 | 
| dopplerLevel | AudioSource のドップラースケールを設定します。 | 
| ignoreListenerPause | AudioSource が、AudioListener.pause を無視して、オーディオの再生を継続できるようにします。 | 
| ignoreListenerVolume | エンドユーザーの AudioSource の音量を無視します。 | 
| isPlaying | 
AudioSource.clip が再生されている場合に true を返します。 | 
| loop | アプリケーションで AudioSource.clip をループさせることができます。 | 
| maxDistance | 
AudioSource.clip の減衰が止まる、または聞き取れなくなる最大距離を設定します。 | 
| minDistance | AudioSource.clip の音量がこれ以上上がらなくなる最小距離を設定します。最小距離を超えると、音が減衰し始めます。 | 
| mute | AudioSource をミュートします。 | 
| pitch | 
AudioSource.clip のピッチを設定します。WebGL は正のピッチ値のみをサポートしています。 | 
| playOnAwake | Awakeで AudioSource を再生します。 | 
| rolloffMode | 距離による AudioSource の減衰量を設定します。 | 
| time | 再生位置を秒単位で設定します。 | 
| timeSamples | 再生位置をパルス符号変調 (PCM) サンプルで設定します。 | 
| velocityUpdateMode | AudioSource の更新を固定更新ループで行うか、動的更新ループで行うかを設定します。 | 
| volume | オーディオソースの音量を設定します (0.0 - 1.0)。 | 
| メソッド | 説明 | 
|---|---|
| Pause | 
AudioSource.clip を一時停止します。 | 
| Play | 
AudioSource.clip を再生します。 | 
| PlayDelayed | 
AudioSource.clip を、秒単位で指定した遅延時間を付けて再生します。 | 
| PlayOneShot | AudioClip を再生し、AudioSource の音量を volumeScale でスケールします。 | 
| PlayScheduled | 指定した時間にオーディオソースを再生します。 | 
| SetScheduledEndTime | スケジュールされた AudioSource.clip が終了する時間を設定します。 | 
| SetScheduledStartTime | スケジュールされた AudioSource.clip の開始時間を設定します。 | 
| Stop | 
AudioSource.clip の再生を停止します。 | 
| UnPause | 一時停止した AudioSource.clip を解除します。 | 
| PlayClipAtPoint | 
AudioSource.clip をワールド空間の指定された位置で再生します。 | 
Unity WebGL は、広くブラウザでサポートされている AAC 形式の AudioClip ファイルをインポートします。Unity WebGL は、以下の AudioClip API をサポートします。
| Properties | 説明 | 
|---|---|
| length | オーディオの長さ (秒単位)。 | 
| loadState | AudioClip に関連付けられたオーディオデータの現在の読み込み状況を返します。 | 
| samples | サンプルの AudioClip の長さ。 | 
| loadType | クリップのロードタイプです。AudioClip のロードタイプは、Inspector で設定できます。 | 
| メソッド | 説明 | 追加情報 | 
|---|---|---|
| AudioClip.Create | 指定した名前と長さの AudioClip を作成します。 | Unity WebGL は、AudioClip.Create を部分的にサポートしています。ブラウザーは動的ストリーミングをサポートしていません。そのため、AudioClip.Create を使用するには、Stream を false に設定してください。 | 
| AudioClip.SetData | AudioSource.Clip のサンプルデータを設定します。 | Unity WebGL は、 AudioClip.SetData を部分的にサポートしています。このメソッドは、AudioClip のコンテンツを置き換えるためにのみ使用できます。WebGL では、Unity は offsetSample パラメーターを無視します。 | 
Unity WebGL は圧縮オーディオに対応していません。
セキュリティ上の理由から、ブラウザーは、エンドユーザーがマウスのクリック、タッチイベント、キーの押下などでアプリケーションのウェブページを操作するまで、オーディオの再生を許可しません。ローディングスクリーンを使用して、エンドユーザーがアプリケーションと相互作用できるようにし、主要コンテンツが始まる前にオーディオ再生を開始します。