How to play sound effect or Music in C?

1.1k Views Asked by At

I am making a game and I have to add some sounds effects and Music.

I Googled it and I found The flowing Code:

#include <conio.h>
#include "inc/fmod.h"

FSOUND_SAMPLE* handle;

int main ()
{
   // init FMOD sound system
   FSOUND_Init (44100, 32, 0);

   // load and play mp3
   handle=FSOUND_Sample_Load (0,"my.mp3",0, 0, 0);
   FSOUND_PlaySound (0,handle);

   // wait until the users hits a key to end the app
   while (!_kbhit())
   {
   }

   // clean up
   FSOUND_Sample_Free (handle);
   FSOUND_Close();
}

But when I compile it I got the flowing error:

➜  Desktop gcc main.c
main.c:1:10: fatal error: 'conio.h' file not found
#include <conio.h>
         ^~~~~~~~~
1 error generated.
1

There are 1 best solutions below

5
Giulio Marchesi On

Well, firstly <conio.h> is a C++ library and you're programming in C. It's different! Then, I remember a C code I wrote years ago, main.c has got the following code (comments are in italian because I am italian):

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "header.h"
int main(){
register unsigned char x='2';
printf("digitare tasti:\n");
while(1){
while(1){
if(x=='2'){/*blocco2*/ while(x!='1' && x!='3'){x=getch(); scala2(x);}}
if(x=='1'){/*blocco1*/ while(x!='2' && x!='3'){x=getch(); scala1(x);}}
if(x=='3'){/*blocco3*/ while(x!='1' && x!='2'){x=getch(); scala3(x);}}
}
}
system("PAUSE");
return 0;
}

Then, this is the other source file, called file.c:

 #include <stdio.h>
 #include <stdlib.h>
 #include <windows.h>
 #include "header.h"
 void scala1(unsigned char x){
 if(x=='a')beep(131,50);
 if(x=='s')beep(147,50);
 if(x=='d')beep(165,50);
 if(x=='f')beep(175,50);
 if(x=='g')beep(196,50);
 if(x=='h')beep(220,50);
 if(x=='j')beep(247,50);
 if(x=='k')beep(262,50);
 if(x=='l')beep(294,50);
 if(x=='w')beep(139,50);
 if(x=='e')beep(156,50);
 if(x=='r')beep(185,50);
 if(x=='t')beep(208,50);
 if(x=='y')beep(233,50);    
 }
 void scala2(unsigned char x){
 if(x=='a')beep(262,50);
 if(x=='s')beep(294,50);
 if(x=='d')beep(330,50);
 if(x=='f')beep(349,50);
 if(x=='g')beep(392,50);
 if(x=='h')beep(440,50);
 if(x=='j')beep(494,50);
 if(x=='k')beep(523,50);
 if(x=='l')beep(587,50);
 if(x=='w')beep(277,50);
 if(x=='e')beep(311,50);
 if(x=='r')beep(370,50);
 if(x=='t')beep(415,50);
 if(x=='y')beep(466,50); 
 }
 void scala3(unsigned char x){
 if(x=='a')beep(523,50);
 if(x=='s')beep(587,50);
 if(x=='d')beep(659,50);
 if(x=='f')beep(698,50);
 if(x=='g')beep(784,50);
 if(x=='h')beep(880,50);
 if(x=='j')beep(988,50);
 if(x=='k')beep(1046,50);
 if(x=='l')beep(1175,50);
 if(x=='w')beep(554,50);
 if(x=='e')beep(622,50);
 if(x=='r')beep(740,50);
 if(x=='t')beep(831,50);
 if(x=='y')beep(932,50);  
 }

The last one, the file header.h. It's code is the following one:

void scala1(unsigned char x);
void scala2(unsigned char x);
void scala3(unsigned char x);

All the source files must be in the same directory. You compile main.c and then, you just need to press a,s,d,..y and 1,2,3. Try! It works, of course if you want to change part of the code, you can do. I hope you enjoy my program, it's funny :)