xaudio.load
xaudio.load は音声ファイルを取得・デコードして再生するトラックを作成します。play / pause で駆動し、パッケージ共有のオーディオバスへミックスされます。トラックの解放は現在のスコープに作られる unit に紐づくため、呼び出し元の unit(シーンなど)が破棄されると、確保していた Web Audio ノードも自動的に解放されます。
読み込みを意識する必要はありません。デコードが終わる前に play() を呼んでも、ロード完了まで再生を自動的に遅延します。
import { xnew, xaudio } from '@mulsense/xnew';
function Main(unit) {
const music = xaudio.load({ url: 'bgm.mp3', loop: true });
xnew('<button>', 'play').on('click', () => music.play({ fade: 1000 }));
xnew('<button>', 'pause').on('click', () => music.pause({ fade: 1000 }));
}
プロパティ(生成時)
xaudio.load(props) に渡すオプションです。
| プロパティ | 型 | 説明 |
|---|---|---|
url | string | 読み込む音声ファイルの URL(必須)。 |
volume | number | このトラックの音量。既定は 1.0。 |
loop | boolean | ループ再生するか。既定は false。 |
メソッド
play({ offset, fade, loop })
再生を開始します。引数はすべて省略可能です。
offset— 再生開始位置(ミリ秒)。省略時は前回pauseした位置から再開します(初回は先頭から)。play({ offset: 0 })で先頭から再生し直せます。fade— フェードインの時間(ミリ秒)。既定は0。loop— このタイミングでループ設定を上書きします。
デコード完了前に呼び出した場合は、ロード完了まで自動的に遅延されます。
pause({ fade })
再生を一時停止します。停止位置は保持され、次の play() はそこから再開します。
fade— フェードアウトの時間(ミリ秒)。既定は0。
アクセサ
status— 現在の状態('loading' | 'loaded' | 'playing' | 'paused'、読み取り専用)。デコード完了前は'loading'、再生中は'playing'、pause()による一時停止中は'paused'、それ以外(再生前・再生終了後)は'loaded'になります。volume— このトラックの音量(number、読み書き可能)。
注記
全体のマスター音量を扱いたい場合は xaudio.volume を読み書きします。すべての音源に共通する音量を制御できます。