サウンド
サウンドコンポーネントは、エンティティをサウンドまたはオーディオのソースとして定義します。sound コンポーネントは位置情報であり、components-position の影響を受ける。
注: iOSでサウンドを再生するには - どのブラウザでも - 物理的なユーザーインタラクション が必要です。これはブラウザの制約であり、A-Frameの内部イベント(カーソルの融合など)はイン タラクションとしてカウントされません。この問題を解決するには、Begin Experienceボタンを 使ってアンビエントミュージックを開始したり、Howler.js (opens new window)などのライブラリを使ってオーディオ スプライトを作成したりする方法があります。
# 例
<a-entity id="river" geometry="primitive: plane" material="color: blue"
position="-10 0 0" sound="src: url(river.mp3); autoplay: true"></a-entity>
# プロパティ
Property | 概要 | デフォルト値 |
---|---|---|
autoplay | 一度設定したサウンドを自動的に再生するかどうか。 | false |
distanceModel | linear リニア, inverse インバース, or exponential 指数 | inverse |
loop | 音の再生が終了したらループさせるかどうか。 | false |
maxDistance | 音源からリスナーまでの最大距離で、それ以上音量を下げない。 | 10000 |
on | 音を再生する前にエンティティが聞くべきイベント。 | null |
poolSize | このサウンドを同時に再生できるインスタンスの数 | 1 |
positional | 音声が移動していくものか否か | true |
refDistance | 音源がリスナーから遠ざかるにつれて音量を減少させるための基準距離。 | 1 |
rolloffFactor | 音源がリスナーから遠ざかるにつれて、どの程度の速さで音量が減少するかを記述する。 | 1 |
src | アセット<audio> またはurl() で囲まれたサウンドファイルのパスへのセレクタ | null |
volume | 音を再生する音量。 | 1 |
# メソッド
イベント名 | 概要 |
---|---|
pauseSound | サウンドを一時停止する |
playSound | サウンドを再生する |
stopSound | サウンドを停止する |
# イベント
イベント名 | 概要 |
---|---|
sound-loaded | サウンドファイルがロードされたときにトリガーされる。イベントの詳細には、サウンドの名前とIDが含まれます。 |
sound-ended | サウンドの再生が終了したときにトリガーされる。イベントの詳細には、サウンドの名前とidが含まれます。 |
# イベントでサウンドを再生する
サウンドコンポーネントは、再生前にイベントをリッスンすることもできます。例えば、モンスターをクリックするたびに笑い声が再生されるようにすることもできます。
<a-entity cursor position="0 0 -5"></a-entity>
<a-entity id="elmo" geometry="primitive: box" material="src: elmo.png"
sound="src: url(ticklelaugh.mp3); on: click"></a-entity>
# サウンドアセットをプリロードしておく
パフォーマンスを向上させるために、サウンドアセット上のシーンをブロックし、プリロードとキャッシュを行うことをお勧めします。アセット管理システムを通してそうすることができます。
<a-scene>
<a-assets>
<audio id="river" src="river.mp3" preload="auto"></audio>
</a-assets>
<a-entity sound="src: #river"></a-entity>
</a-scene>
# 一時停止と再開
再生中のサウンドをプログラムで一時停止または再開するには、エンティティに一時停止または再開を指示します。
var entity = document.querySelector('[sound]');
entity.components.sound.stopSound();
サウンドを一時停止するには
entity.components.sound.pauseSound();
サウンドを再生するには
entity.components.sound.playSound();