public void playBGM(string fileName, int volume) { if (bgmTask != null) { if (Path.GetFileName(bgmTask.filePath) == fileName) { // case when only volume was changed if (bgmTask.volume != volume) { bgmVolume = volume; bgmTask.changeVolume(volume); } return; } bgmTask.stop(); bgmTask = null; } bgmFilePath = libraryManager.soundFilePath(libraryManager.soundIndex(fileName)); bgmVolume = volume; if (bgmFilePath != "") { try { bgmTask = new TSoundTask(bgmFilePath, volume, true, onBGMStopped); bgmTask.play(); } catch (Exception ex) { Console.WriteLine(ex.Message); bgmTask = null; } } }
public void stopBGM() { if (bgmTask != null) { bgmTask.stop(); bgmTask = null; } }
public void stopAllEffects() { lock (effectTasks) { for (int i = 0; i < effectTasks.Count; i++) { TSoundTask task = effectTasks[i]; task.stop(); } effectTasks.Clear(); } }
public void stopAllVoices() { lock (voiceTasks) { for (int i = 0; i < voiceTasks.Count; i++) { TSoundTask task = voiceTasks[i]; task.stop(); } voiceTasks.Clear(); } }
public void stopVoice(string fileName) { lock (voiceTasks) { for (int i = 0; i < voiceTasks.Count; i++) { TSoundTask task = voiceTasks[i]; if (Path.GetFileName(task.filePath) == fileName) { voiceTasks.Remove(task); task.stop(); } } } }
public void stopEffect(string fileName) { lock (effectTasks) { for (int i = 0; i < effectTasks.Count; i++) { TSoundTask task = effectTasks[i]; if (Path.GetFileName(task.filePath) == fileName) { effectTasks.Remove(task); task.stop(); } } } }
public void playVoice(string fileName, int volume, bool loop) { lock (voiceTasks) { string filePath = libraryManager.soundFilePath(libraryManager.soundIndex(fileName)); if (filePath != "") { try { TSoundTask task = new TSoundTask(filePath, volume, loop, onVoiceStopped); task.play(); voiceTasks.Add(task); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
public void playBGM() { if (bgmTask != null) { return; } if (bgmFilePath != "") { try { bgmTask = new TSoundTask(bgmFilePath, bgmVolume, true, onBGMStopped); bgmTask.play(); } catch (Exception ex) { Console.WriteLine(ex.Message); bgmTask = null; } } }
private void onEffectStopped(TSoundTask task) { lock (effectTasks) { effectTasks.Remove(task); } }
private void onBGMStopped(TSoundTask task) { bgmTask = null; }
private void onVoiceStopped(TSoundTask task) { lock (voiceTasks) { voiceTasks.Remove(task); } }