Class: TonSound
BGMとSE(効果音)の再生を管理します。
※BGM名、SE名などのリソースキーは大文字小文字を区別しません。
Properties
long TotalSoundMemory
現在ロードされているSE(効果音)の推定メモリ使用量(バイト)を取得します。BGMはストリーミング再生のため含まれません。
Methods
void LoadSound(string path, string name, string contentId = "Default", float
baseVolume = 1.0f)
効果音(SE)を読み込みます。
path: コンテンツパス(Content/sound/se/からの相対パス、拡張子なし)name: 登録名(必須)contentId: コンテンツグループID。指定したIDごとにリソースがグループ化されます。"Default"グループは自動解放されません。(既定値 "Default")baseVolume: ベース音量(0.0~1.0)。再生時の音量に乗算されます。(既定値 1.0f)
void LoadBGM(string path, string name, string contentId = "Default", float
baseVolume = 1.0f)
BGMを読み込みます。
path: コンテンツパス(Content/sound/bgm/からの相対パス、拡張子なし)name: 登録名(必須)contentId: コンテンツグループID。指定したIDごとにリソースがグループ化されます。"Default"グループは自動解放されません。(既定値 "Default")baseVolume: ベース音量(0.0~1.0)。再生時の音量に乗算されます。(既定値 1.0f)
void PlayBGM(string bgmName, float fadeSeconds = 0.0f, float
volume = 1.0f)
BGMを再生します。既に再生中のBGMは停止し、新しいBGMへ切り替わります。
直前に StopBGM(..., true) で停止されていたBGMを指定した場合、自動的に続きから再生します。
bgmName: BGMリソース名(Content/sound/bgm/フォルダ内)fadeSeconds: フェードインにかける時間(秒)volume: 再生音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
void StopBGM(float fadeSeconds = 0.0f, bool bPause = false)
void StopBGM(bool bPause)
void StopBGM(float fadeSeconds)
現在再生中のBGMを停止します。
fadeSeconds: フェードアウトにかける時間(秒)bPause: trueの場合、現在の曲情報を一時保存します(PlayBGMでのResume用)。
void PlaySE(string seName, float volume = 1.0f)
効果音を再生します。
seName: SEリソース名(Content/sound/se/フォルダ内)volume: 再生音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
void Unload(string contentId)
指定したコンテンツグループのリソースをすべて解放します。
※"Default"グループは解放できません。
contentId: アンロード対象のコンテンツグループID
void UnloadAll()
すべてのサウンドリソース(BGM/SE)を停止し、メモリから解放します。
void SetMasterVolume(float volume)
全体の音量を設定します。
volume: マスター音量(0.0~1.0)。範囲外の値は自動的にクリップされます。
float GetMasterVolume()
現在のマスター音量を取得します。
TimeSpan GetBGMPosition()
現在再生中のBGMの再生位置を取得します。再生中でない場合はZeroを返します。
TimeSpan GetBGMLength()
現在再生中のBGMの長さ(Duration)を取得します。再生中でない場合はZeroを返します。
Sample Code
// In Initialize()
// Preload BGM into "Stage1" group
Ton.Sound.LoadBGM("bgm/battle_theme", "battle_theme", "Stage1");
// Preload SE
Ton.Sound.LoadSound("se/explosion", "explosion", "Stage1");
// In Update() (or Event Handler)
if (Ton.Input.IsTrigger(Keys.Z))
{
// Play Sound Effect
Ton.Sound.PlaySE("explosion");
}
if (Ton.Input.IsTrigger(Keys.B))
{
// Play BGM (Using registered name "battle_theme")
// 1.0f volume, 2.0f seconds fade-in
Ton.Sound.PlayBGM("battle_theme", 2.0f, 1.0f);
}
// Volume Control
if (Ton.Input.IsTrigger(Keys.Up))
{
// Adjust Master Volume (0.0 to 1.0)
Ton.Sound.SetMasterVolume(0.8f);
}
// In Scene Change or Cleanup
// Unload all resources in "Stage1" group
Ton.Sound.Unload("Stage1");
// Stop BGM with 1 second fade-out
Ton.Sound.StopBGM(1.0f);