Использование параметра для указания того, какой звуковой файл в Ресурсах воспроизводить

#c# #wpf #visual-studio

#c# #wpf #visual-studio

Вопрос:

У меня есть около 20 небольших файлов звуковых эффектов в разделе Ресурсов… Я хотел бы иметь метод, который воспроизводит определенный звуковой файл на основе переданного мне параметра … предполагая, что мои звуковые файлы называются sound01.wav, sound02.wav и т.д.

 public static void PlayMySound(string soundFile)
{
   SoundPlayer snd = new SoundPlayer(Properties.Resources.XXX);
   snd.Play()
}

PlayMySound(sound01);
PlayMySound(sound02);
etc.
  

В приведенном выше коде я хочу, чтобы XXX был строковым звуковым файлом

Я пытаюсь избежать чего-то подобного…

 public static void PlayMySound(string soundFile)
{
   if (soundFile == "sound01") { SoundPlayer snd = new SoundPlayer(Properties.Resources.sound01); }
   if (soundFile == "sound02") { SoundPlayer snd = new SoundPlayer(Properties.Resources.sound02); }
   if (soundFile == "sound03") { SoundPlayer snd = new SoundPlayer(Properties.Resources.sound03); }
   if (soundFile == "sound04") { SoundPlayer snd = new SoundPlayer(Properties.Resources.sound04); }
   if (soundFile == "sound05") { SoundPlayer snd = new SoundPlayer(Properties.Resources.sound05); }
   etc.etc.etc.
}
  

Комментарии:

1. итак, в чем ваш вопрос?

2. Вопрос по существу вращался вокруг утверждения «Я хочу, чтобы XXX был строковым звуковым файлом»… но я понял это…

Ответ №1:

Хорошо, ответ пришел ко мне вскоре после того, как я опубликовал это…

 public static void PlayMySound(Stream soundFile)
{
   SoundPlayer snd = new SoundPlayer(soundFile);
   snd.Play();
}

// Then I can just call it like this...
PlayMySound(Properties.Resources.sound01);
PlayMySound(Properties.Resources.sound02);