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)を読み込みます。

void LoadBGM(string path, string name, string contentId = "Default", float baseVolume = 1.0f)

BGMを読み込みます。

void PlayBGM(string bgmName, float fadeSeconds = 0.0f, float volume = 1.0f)

BGMを再生します。既に再生中のBGMは停止し、新しいBGMへ切り替わります。
直前に StopBGM(..., true) で停止されていたBGMを指定した場合、自動的に続きから再生します。

void StopBGM(float fadeSeconds = 0.0f, bool bPause = false)
void StopBGM(bool bPause)
void StopBGM(float fadeSeconds)

現在再生中のBGMを停止します。

void PlaySE(string seName, float volume = 1.0f)

効果音を再生します。

void Unload(string contentId)

指定したコンテンツグループのリソースをすべて解放します。
※"Default"グループは解放できません。

void UnloadAll()

すべてのサウンドリソース(BGM/SE)を停止し、メモリから解放します。

void SetMasterVolume(float volume)

全体の音量を設定します。

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);