sound abspielen
-
Hallo,
ich habe da ein Problem, ich würde gern eine wave-Datei über C-Code abspielen, nur leider bekomme ich es überhaupt nicht hin. Ich habe schon sehr viel gelesen und sehr viel ausprobiert, aber es funktioniert nie, entweder bekomme ich eine Fehlermeldung mit der ich nichts anfangen kann oder es passiert einfach nichts!
Es wäre toll wenn ihr mir helfen könntet...
DankeMfg aqua5748
-
Welches Framework/Betriebssystem?
-
Windows 7 ultimate
-
Nutze einfach die WinAPI Funktion PlaySound.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
aqua5748 schrieb:
Hallo,
ich habe da ein Problem, ich würde gern eine wave-Datei über C-Code abspielen, nur leider bekomme ich es überhaupt nicht hin. Ich habe schon sehr viel gelesen ...
Petzold zum Nachschlagen besorgen. Winapidoku zum Nachschlagen besorgen. SDK und WDK nach Infos durchforsten, Directx und MPI Api nach Hinweisen abklappern, Google nach Audioprogrammierung mit C absuchen, auf Seiten wie Amazon Gameprogramming und Co - Bücher nach Audioprogrammierung im Inhaltsverzeichnis überprüfen, eventuell besorgen.
Ein Überblick über die Audioprogrammierung und erbrobte Herangehensweisen wäre natürlich ein guter Forumsmagazinartikel gewesen, wenn es den gegeben hätte, aber wieso über interessante Anwendungsfelder schreiben, wenn das Werkzeug doch an sich so wunderschön ist.
-
Ok, dass mit Playsound ist gut! aber ich bekomme es einfach nicht hin!
nehme ich das hier:
PlaySound(TEXT("tetris_melodie.wav"), NULL,SND_SYNC);
bleibt das Programm solange stehen bis das Lied fertig ist!ich will aber das das normale Programm weiterläuft während die Melodie abgespielt wird.
dann hab ich gedacht das geht so:
PlaySound(TEXT("tetris_melodie.wav"), NULL, SND_ASYNC);jetzt kommt aber keine Melodie mehr!
was mach ich falsch?
ich würde die Melodie auch gerne später wieder unterbrechen!
Dankemfg aqua5748
-
Hmm, pack mal noch SND_FILENAME dazu.
Ich würde auch relative Pfade vermeiden (bzw. zur Laufzeit den absoluten Pfad zusammenbauen)
-
ok danke, meinst du dann so ? :
PlaySound(TEXT("D:\6. Semester\Projekt\Mein Projekt\Programmierung\TEST\TEST\tetris_melodie.wav"), NULL, SND_FILENAME && SND_ASYNC);
mfg aqua5748
-
aqua5748 schrieb:
"D:\6. Semester\Projekt\Mein Projekt\Programmierung\TEST\TEST\tetris_melodie.wav"
geht gar nicht!
"D:\\6. Semester\\Projekt\\Mein Projekt\\Programmierung\\TEST\\TEST\\tetris_melodie.wav"
aqua5748 schrieb:
SND_FILENAME && SND_ASYNC
ebenfalls nicht richtig, sollte so aussehen (SND_FILENAME | SND_ASYNC)
Ob der Funktionsaufruf richtig ist, kann ich dir nicht sagen, das andere ist mir beim überfliegen so aufgefallen.
-
PlaySound(filename, NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT);
-
des funktioniert so leider nicht!!!
PlaySound(TEXT("D:\\6. Semester\\Projekt\\Mein Projekt\\Programmierung\\TEST\\TEST\\tetris_melodie.wav"), NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT);
also so hab ichs probiert, so geht es nicht!!!
habt ihr sonst noch eine idee?
Danke
mfg aqua5748
-
Was sagt denn der Rückgabewert?
-
also die funktion gibt eine 1 zurück !!!
-
kann das sein dass man diese Töne nur an bestimmten Ausgängen des PC's hört? den ich habe im Moment nur einen Kopfhörer über USB angeschlossen!
-
PlaySound gibt nur auf dem Standardwiedergabe Gerät aus.
Klick auf das Lautstäke Symbol in der Befehlsleiste mit der rechten Maus.
Gehe auf Wiedergabegeräte und schau was als Standard definiert ist.
-
ok also das ist es auch nicht, die kopfhörer sind standart!!!
-
Versuch mal bei Projekt -> Eigenschaften -> Linker -> Befehlszeile
die Winmm.lib bei weiteren Optionen hinzuzufügen....Und dann
PlaySoundA("D:\\...",NULL,SND_ASYNC | SND_FILENAME);
Ich hatte auch den Fehler aber dann hats geklappt^^
-
ja und wie kann ich die winmm.lib da einfügen ? habe dass doch schon mit der Befehlszeile:
#pragma comment(lib,"winmm.lib")
gemacht!
-
einfach winmm.lib reinschreiben ^^
#pragma comment(lib, "winmm.lib") kommt nur an den Anfang deiner .cpp datei