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);
     }
 }
Exemplo n.º 10
0
 private void onBGMStopped(TSoundTask task)
 {
     bgmTask = null;
 }
Exemplo n.º 11
0
 private void onVoiceStopped(TSoundTask task)
 {
     lock (voiceTasks) {
         voiceTasks.Remove(task);
     }
 }