メインコンテンツまでスキップ

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) に渡すオプションです。

プロパティ型説明
urlstring読み込む音声ファイルの URL(必須)。
volumenumberこのトラックの音量。既定は 1.0。
loopbooleanループ再生するか。既定は 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 を読み書きします。すべての音源に共通する音量を制御できます。

デモ​