void RemoveMusic(string path) { if (musics.TryGetValue(path, out object playerObj)) { Type playerType = playerObj.GetType(); if (playerType == typeof(SoundPlayer)) { SoundPlayer player = (SoundPlayer)playerObj; player.Stop(); player.Dispose(); } else if (playerType == typeof(MciPlayer)) { MciPlayer player = (MciPlayer)playerObj; player.Pause(); player.Dispose(); } else if (playerType == typeof(WaveOut)) { WaveOut player = (WaveOut)playerObj; player.Pause(); player.Dispose(); } musics.Remove(path); SyncListItems(); } }