using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace GeneralLib { public class PLSound { class PlayForm { public string path = ""; public FrmPLSound frmSound = null; } private Dictionary KeyPath = null; public PLSound() { KeyPath = new Dictionary(); } public bool InitSound(Control owner) { return true; } public void LoadSound(string key, string filePath, int mixCount) { LoadSound(key, filePath); } public void LoadSound(string key, string filePath) { PlayForm playForm = new PlayForm(); playForm.path = filePath; //playForm.frmSound = new FrmPLSound(); KeyPath.Add(key, playForm); } public void RemoveSound(string key) { Stop(key); if (KeyPath.ContainsKey(key)) { if (KeyPath[key].frmSound != null) KeyPath[key].frmSound.Close(); KeyPath.Remove(key); } } public void RemoveSoundAll() { StopAll(); foreach (string key in KeyPath.Keys) { if (KeyPath[key].frmSound != null) KeyPath[key].frmSound.Close(); } KeyPath.Clear(); } private void PlayMusic(string key, bool isLoop) { try { string path = ""; if (KeyPath.ContainsKey(key)) path = KeyPath[key].path; else return; if (KeyPath[key].frmSound == null) KeyPath[key].frmSound = new FrmPLSound(); KeyPath[key].frmSound.Play(key, path, isLoop); } catch (Exception ex) { SystemLog.WriterLog(ex); } } public void Play(string key) { PlayMusic(key, false); } public void PlayLoop(string key) { PlayMusic(key, true); } public void Stop(string key) { if (KeyPath.ContainsKey(key)) { if (KeyPath[key].frmSound != null) KeyPath[key].frmSound.Stop(key); } } public void StopAll() { foreach (string key in KeyPath.Keys) { Stop(key); } } } }