Wave Dateien verbinden und abspielen aus einem C-Programm heraus (winmm.dll)
-
Hallo,
ich möchte aus einer C-Applikation auf meinem Windows Rechner heraus 2 lokale wav Dateien hintereinander abspielen.
Ich kann zwar bis jetzt abspielen, doch müsste ich die Wartezeiten (Abspieldauer) zwischen den Files berechnen und in der Sleep-Funktion verbringen.
Darum suche ich eine Möglichkeit, wie ich meiner Applikation mitteilen kann, erst das File A und dann das File B abzuspielen.
Ich dachte hier daran die winmm.dll einzubinden. Doch ich scheitere hier schon am importieren der benötigten Funktionen.
Wäre über einen Tipp dankbar!
-
Ist es immer noch das Problem: http://www.mikrocontroller.net/topic/347537 ?
Da du hier in früheren Post auch nur eine C-ähnlich Sprache hattest, solltest du gleich alle Infos rausrücken.
Und falsches Unterforum.
Windowskram gehört in WinAPI.
-
Ups, wie kann ich den Beitrag verschieben?
Ja, der Betrag gehört zu mir. Es hilft doch nichts wenn ich sage, dass die Software xyz heißt. Es gibt nichts darüber im Internet zu finden und bis auf ca. 40 extra Schlüsselwörter, die noch dazukommen, ist sie mit C vergleichbar.
Es gibt dort die Möglichkeit eine Wav-Datei abzuspielen, aber dort geht es gleich weiter. D.h. sage ich
PlaySound(FileA);
PlaySound(FileB);so würde ich vom File A nichts hören, da sofort File B abgespielt wird.
Wenn ich Sleep(4000); dazwischen einfügen würde, geht's wieder, aber ich kann ja nicht den halben Tag verschlafen
-
Wenn du die winmm-Funktion PlaySound benutzt, dann wartet diese Funktion standardmäßig solange bis der Sound komplett abgespielt wurde (außer es wird ASYNC als Flag angegeben).
-
Ich habe nun folgendes versucht
PlaySoundA(StringConcatenate(Path(), "\\Sounds\\sound1.wav"), 0, 0);
PlaySoundA(StringConcatenate(Path(), "\\Sounds\\sound2.wav"), 0, 0);Es wird aber nur die gleiche Sounddatei 2x aufgerufen. Muss ich den Sound irgendwie leeren aus dem Speicher löschen?
-
...ach ja, ich hatte vorher testweise
PlaySoundA(StringConcatenate(Path(), "\\Sounds\\sound1.wav"), 0, 9);
= SND_ASNC & SND_LOOPausgeführt. Habe es zwar mit
PlaySoundW(0,0,0);
wieder gestoppt, aber vielleicht liegt es daran?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) 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.
-
Oje, das Programm kann leider noch gar kein Soundfile abspielen bzw. er gibt einen Ton aus, aber ich weiß nicht woher der kommt.
Wenn ich die Pfadangabe allerdings absichtlich einen Fehler einbaue, so erhalte ich den gleichen Ton und auch der Rückgabewert ist "true"!???
-
Hast du dir mal die Seite durchgelesen, die Th69 verlinkt hat?
Gerade die Flags vom dritten Parameter, die Angeben was der erste Parameter bedeutet.