Class

SoundPool

stdgam.SoundPool()

音声ファイルから読み込んだ音声 (HTMLAudioElement) を管理するクラス. 事前に登録しておいた音声の再生・停止を行う (HTMLAudioElementオブジェクトを直接返す機能はない).

【注意】現在のブラウザでは, ユーザがそのページ内で何か操作をするまで 勝手に音声を鳴らすことができない! 何かしらの入力を受けてから使うこと.

Constructor

# new SoundPool()

空のインスタンスを作る.

View Source stdgam.js, line 861

Methods

# load(name, url) → {Promise.<HTMLAudioElement>}

音声をHTMLAudioElementとして読み込み, それを指定した名前で登録する. ただし, JavaScriptでは音声オブジェクトを作っても即座にロードが 完了するのではなく, バックグラウンドで読み込み処理を行う. そのため, 返却値は音声のロード待ちを行なっているPromiseオブジェクトである.

例)

const pool = new stdgam.SoundPool();
const promise = pool.load("BGM_01", "./my_bgm.wav");
promise.then((v) => {
    pool.play("BGM_01");
});

普通はこのPromiseオブジェクトを直接使うのではなく, readyメソッドを利用する (readyメソッドの例を参照のこと).

また, GameEngineオブジェクトがデフォルトで所持するSoundPoolに関しては, GameEngineのreadyメソッドによりロード待ちを行うほうが好ましい.

Parameters:
Name Type Description
name string

ロードした音声に付ける登録名

url string

読み込む音声のURL

View Source stdgam.js, line 897

音声のロード待ちを行うPromiseオブジェクト

Promise.<HTMLAudioElement>

# play(name, loopopt)

指定した名前で登録されている音声を再生する (存在しなければ何もしない). 既に再生中の場合, 最初に巻き戻して再生し直す.

Parameters:
Name Type Attributes Default Description
name string

再生する音声の登録名

loop boolean <optional>
false

ループ再生をするか

View Source stdgam.js, line 938

# ready() → {Promise.<Array.<HTMLAudioElement>>}

全ての音声のロードが完了するまで待機するためのPromiseを返す. 通常は次のようなコードを書く.

例)

const pool = new stdgam.SoundPool();
pool.load("BGM_01", "./bgm_01.wav");
pool.load("BGM_02", "./bgm_02.wav");

pool.ready().then((v) => {
   my_operation_with_sounds(pool);
});

ただし, GameEngineオブジェクトがデフォルトで所持するSoundPoolに関しては, GameEngineのreadyメソッドによりロード待ちを行うほうが好ましい.

View Source stdgam.js, line 928

全部の音声のロード待ちを行うPromiseオブジェクト

Promise.<Array.<HTMLAudioElement>>

# stop(name)

指定した名前で登録されている音声が再生中なら, 再生を停止する. 該当する音声がなかったり再生中でなければ何もしない.

Parameters:
Name Type Description
name string

停止するする音声の登録名

View Source stdgam.js, line 952

# stopAll()

登録されているすべての音声の再生を停止する. 再生中でなければ何もしない.

View Source stdgam.js, line 963