how to generate a beep sound
-
Im developping for PPC with VS2005 and C#. how do we generate basic sounds like a beep in PPC? thank you Donkaiser
http://msdn.microsoft.com/msdnmag/issues/03/07/NET/ A man said to the universe: "Sir I exist!" "However," replied the Universe, "The fact has not created in me A sense of obligation." -- Stephen Crane
-
Im developping for PPC with VS2005 and C#. how do we generate basic sounds like a beep in PPC? thank you Donkaiser
-
http://msdn.microsoft.com/msdnmag/issues/03/07/NET/ A man said to the universe: "Sir I exist!" "However," replied the Universe, "The fact has not created in me A sense of obligation." -- Stephen Crane
I think I kinda get it how the process work to play a sound. I got this codes from VS2005 help. but when i passed my stream as a parameter a the button level, it doesn't find it. how do i get the right directory of the sounds sample? public class Sound { [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)] private extern static int WCE_PlaySoundBytes(byte[] szSound, IntPtr hMod, int flags); private byte[] m_soundBytes; private enum Flags { 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 */ } public Sound(Stream stream) { //read the data from the stream m_soundBytes = new byte[stream.Length]; stream.Read(m_soundBytes, 0, (int)stream.Length); } public void Play() { WCE_PlaySoundBytes(m_soundBytes, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_MEMORY)); } } private void btnEmbedded_Click(object sender, System.EventArgs e) { Sound sound = new Sound (Assembly.GetExecutingAssembly().GetManifestResourceStream("SoundSample.chimes.wav")); // null exception error sound.Play(); } Donkaiser
-
I think I kinda get it how the process work to play a sound. I got this codes from VS2005 help. but when i passed my stream as a parameter a the button level, it doesn't find it. how do i get the right directory of the sounds sample? public class Sound { [DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)] private extern static int WCE_PlaySoundBytes(byte[] szSound, IntPtr hMod, int flags); private byte[] m_soundBytes; private enum Flags { 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 */ } public Sound(Stream stream) { //read the data from the stream m_soundBytes = new byte[stream.Length]; stream.Read(m_soundBytes, 0, (int)stream.Length); } public void Play() { WCE_PlaySoundBytes(m_soundBytes, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_MEMORY)); } } private void btnEmbedded_Click(object sender, System.EventArgs e) { Sound sound = new Sound (Assembly.GetExecutingAssembly().GetManifestResourceStream("SoundSample.chimes.wav")); // null exception error sound.Play(); } Donkaiser
Application.StartupPath will give you the path GetManifestResourceStream requires that the file be compiled into the assembly. also use the namespace. SoundSample is likely the namespace of the MS project. Assembly.GetExecutingAssembly().GetManifestResourceStream("MyNamespaec.chimes.wav"); Another Method would be new FileStream(Application.StartupPath + "\\filename.wav", FileMode.Open, FileAccess.Read) to get the file from the machine in the path of the executable A man said to the universe: "Sir I exist!" "However," replied the Universe, "The fact has not created in me A sense of obligation." -- Stephen Crane