Jump to content
xisto Community
turbopowerdmaxsteel

Playing Two Wav Files Simultaneously In C#

Recommended Posts

I have reached a dead-end, in trying to code the Audio Engine for the game - Bomber Man. The current engine uses the native functions(waveOutOpen, waveOutWrite, etc) declared in Winmm.dll file. While this allows me to play two sounds together (the Background music and the sound effects), it causes frequent memory corruptions. For instance, it changes the value of an integer variable located in a different and unrelated class. I spent hours trying to find out why the value was constantly changing. When I disabled all the sounds, the problem didn't occur. I used a modifed version of the code given in this example. The problem is not due to these modifications because it does not occur in a Console Application.

Is there a library for .NET that I can use for playing two or more sounds simultaneously? Also, the above example does a lot of low level handling, which I do not require. All I need is the ability to play WAV files.

Share this post


Link to post
Share on other sites

I have reached a dead-end, in trying to code the Audio Engine for the game - Bomber Man. The current engine uses the native functions(waveOutOpen, waveOutWrite, etc) declared in Winmm.dll file. While this allows me to play two sounds together (the Background music and the sound effects), it causes frequent memory corruptions. For instance, it changes the value of an integer variable located in a different and unrelated class. I spent hours trying to find out why the value was constantly changing. When I disabled all the sounds, the problem didn't occur. I used a modifed version of the code given in this example. The problem is not due to these modifications because it does not occur in a Console Application.
Is there a library for .NET that I can use for playing two or more sounds simultaneously? Also, the above example does a lot of low level handling, which I do not require. All I need is the ability to play WAV files.

I've 2 suggestion.

1. DirectSound - it's meant for game and microsoft has a managed version for directx 9.0c called MDX 1.1. It's written with .Net 1.1. It's quite old but serve the purpose. It can run on .Net 2.0 also. You can look into their documentation. I'm currently using that too for my mutltimedia project. MDX 2.0 was in beta but never release and microsoft moved over to XNA. It's too bulky if you just want to play sound. Btw, what engine did you use for your graphic/sprite?

2. Quick and easy exe - Look for commandline wav player online. Then simply issue "Process.Start()" to have it play your wav files. Normal wav player should allow playing of multiple wav at the same time.

Share this post


Link to post
Share on other sites

I am building the game for a contest. More info. Initially, I was going through a tutorial of Managed DirectX at Coding4Fun. In my opinion, using DirectX would be unfair against the likes of the other languages in the contest (J2ME & Flash).

I did think about using an external program. The game being entirely rendered in GDI+, executing such processes would further deteriorate the performance. Although, I haven't given it a try.

Thankfully though, I came across an excellent library named irrKlang for playing 2D/3D sounds. It also supports MP3 which is a major plus point because the final project must be zipped within 2 MBs.

Share this post


Link to post
Share on other sites

Thankfully though, I came across an excellent library named irrKlangFor playing 2D/3D sounds. It also supports MP3 video which is a major plusPoint because the final project must be zipped within 2 MBs.

-reply by great video

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.