Einfach Sound wiedergeben

JJB

Cogito ergo brumm
Tach !

Kann mir da jemand helfen ?
Ich möchte einfach ein paar Sounds während eines C# Programms wiedergeben (mehrere gleichzeitig). Sowas wie explode.wav oder beep.mp3 oder was so üblich ist bei kurzen Tonsequenzen.

Allerdings möchte ich keine 300 MB Runtime Sonstnochwas oder 2 GB SDK Ichbinganzwichtig in mein 200 KB Programm einbinden. Der spätere Anwender sollte dies nach möglichkeit einfach anklicken und ausführen, ohne dass dabei irgendeine Systemveränderung nötig wird.

Ich hab etwas gefunden, doch ich brachte es bislang in keine sinnvolle Konstellation.
Kann mir jemand sagen, wie ich am unkompliziertesten an eine Wiedergabe komme ?

Code:
using System.Runtime.InteropServices;
const string FILE_NAME = "\\Windows\\mysound.wav";

   private void button1_Click(object sender, System.EventArgs e)
   {
      Sound.Play(FILE_NAME);
   }

   internal class Helpers 
   {
      [Flags]
         public enum PlaySoundFlags : int 
      {
         SND_SYNC = 0x0000,  /* play synchronously (default) */
         SND_ASYNC = 0x0001,  /* play asynchronously */
         SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
         SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
         SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
         SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
         SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
         SND_ALIAS = 0x00010000, /* name is a registry alias */
         SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
         SND_FILENAME = 0x00020000, /* name is file name */
         SND_RESOURCE = 0x00040004  /* name is resource name or atom */
      }

      [DllImport("coredll")]
      public static extern bool PlaySound( string szSound, IntPtr hMod, PlaySoundFlags flags );
   }

   public class Sound 
   {
      public static void Play( string strFileName )
      {
         Helpers.PlaySound( strFileName, IntPtr.Zero, Helpers.PlaySoundFlags.SND_FILENAME | Helpers.PlaySoundFlags.SND_ASYNC );
      }
   }

Dürfen die Sound nur im Windows Ordner liegen ?
Und ist das so alle komplett oder fehlt da was ?
(und was zum Geier ist IntPtr.Zero)

Danke
 
Etwas verspätet... hab ich wohl irgendwie übersehen.
Hab ich schon anders umgesetzt (glaube ich).

Trotzdem Danke !
 
Jein... ich weiß es nicht mehr so genau, aber da gab es diverse Schwierigkeiten.
Es ging auch nicht allein um wavs.

Mit der winmm.dll und mciSendString geht es auf jeden Fall. Auch mit mp3 und anderem.
Da sollte sogar eine Lautstärkeregelung drin sein, aber das habe ich nicht genutzt.
 
Zurück