Sounds
-
Hi ich hab ein hangman spiel geschrieben uns wollte wissem wie man mp3 sounds in das spiel einbinden kann kann mir da einer eine funktion oda so sagen???
-
Mit Standard-Mitteln: GAR NICHT
(C hat keine Ahnung von MP3's oder Soundkarten-Ansteuerung)Mit Systemfunktionen: Das hängt davon ab, wo du dich befindest. In der WinAPI-FAQ habe ich z.B. diesen Beitrag gefunden - kannst mal sehen, ob du das für dich anpassen kannst.
-
Das hat mich jetzt zwar nicht wirklich weiter gebracht aber trizdem danke.
-
Für dich etwas einfacher ausgedrückt: Willst du das unter Windows, unter Linux oder unter Foo machen?
-
Wieso nicht? Er hat dir doch alles gesagt.
Sound ausgeben ist kein C-Standard, sondern hängt von deiner Umgebung ab.
Wenn dir der Link nicht weiterhilft kannst du zum Beispiel Funktionen aus der WinAPI (unter MS) dafür benutzen. Da musst du halt selber mal schauen, welche Funktionen man benötigt:
http://www.msdn.comOder du suchst hier mal nach nem Beispiel:
http://www.codeproject.com/
-
dafuer schaust du am besten mal ins directx-sdk unter "directsound". alternativ kannst du auch den wave-mapper benutzen (waveoutopen, waveoutwrite, etc), was inter n eigentlich kein unterschied mehr ist.
beide apis gehen davon aus, dass du bereits pcm (also unkomprimierte) sound-daten im speicher hast. um das eigentliche mp3 zu dekodieren kannst du entweder den entsprechenden acm-codec oder libs wie mpg123/mad nutzen.
alternativ kann man natuerlich auch ein fertiges sound-system verwenden, zb dieses:
http://www.fmod.org/
-
an deiner stelle würde ich für soundeffekte wav anstelle von mp3 verwenden. wav-dateien kannst du unter windows sehr einfach mit der funktion PlaySound() abspielen: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcewave/html/_wcesdk_win32_playsound.asp
mp3-dateien nach wave konvertieren kannst du mit dem winamp. dazu gehst du im winamp unter preferences->plug-ins->output und wählst wave_out.dll. danach die mp3 einfach abspielen. das wav-ergebnis wird dann im hauptverzeichnis der platte gespeichert.