Speicherbereich als Wave
-
Wie man per mci im Speicher liegende Wavefiles abspielt ist ja relativ klar (PlaySound im Simpelsten Falle)
Nun stelle man sich aber mal die Frage, wie kann ich im Speicher eigene Wavefiles zusammenbauen? gibbet da vielleicht nen Text zu? (wenn möglich als .pdf)
-
Mit WinAPI sollte sowas per waveOutWrite gehen - kannst ja mal damit suchen.
-
WinAPI-Referenz PlaySound(); Parameter für fdwSound (Parameter 3):
...
SND_MEMORY
A sound event's file is loaded in RAM. The Parameter specified by pszSound must point to an image of a sound in memory.
...pszSound ist Parameter 1.
Wie muss der Speicherbereich nun aussehen, damit mein Device das Ganze spielt?
-
One caveat is that the memory buffer you pass to PlaySound() must contain the image of a complete WAVE File Format file. It can't just be raw waveform data.
Wie ein Wave-File aufgebaut ist findest du hier oder bei Wotsit

Ich denke aber es ist einfacher, du machst es so, wie z.B. in diesem Beispiel
-
Hallo zusammen,
also ich habe das jetzt auch mal versucht.
Habe ein char-Array das ich gerne abspielen lassen würde.Mittels Playsound (..., SND_MEMORY) funzt es net.
Habe mir mal die Links von flenders angesehen, aber daraus werde ich irgendwie nicht so schlau.Mittels waveOutWrite muss ich wohl zuerst im Speicher ein Array bilden auf das ich dann mittels Playsound zugreifen kann.
Das Beispiel aus http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_example_of_writing_waveform_data.asp lässt sich zwar compilieren aber wo kann ich da jetzt mein Datenpaket "einflechten"?
Was muss ich als dann als 1. und 2. Parameter in Playsound angeben?Danke der Hilfe!!!!1
Gruß
Susi
-
Hallo Susi,
wo genau(!) liegt Dein Problem?
Kannst Du uns mal ein paar Code-Schnipsel zeigen?Gruß
Horschd
-
Susi78 schrieb:
Hallo zusammen,
also ich habe das jetzt auch mal versucht.
Habe ein char-Array das ich gerne abspielen lassen würde.Mittels Playsound (..., SND_MEMORY) funzt es net.
Habe mir mal die Links von flenders angesehen, aber daraus werde ich irgendwie nicht so schlau.Mittels waveOutWrite muss ich wohl zuerst im Speicher ein Array bilden auf das ich dann mittels Playsound zugreifen kann.
Das Beispiel aus http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_example_of_writing_waveform_data.asp lässt sich zwar compilieren aber wo kann ich da jetzt mein Datenpaket "einflechten"?
Was muss ich als dann als 1. und 2. Parameter in Playsound angeben?Danke der Hilfe!!!!1
Gruß
Susihier bringst du aber gerade ein paar dinge mächtig durcheinander.
waveOutWrite() gehört zur low-level wave-api und hat nichts mit PlaySound() zu tun. wenn du ein im speicher liegendes wave-file mittels PlaySound() spielen willst, sollte der call in etwa so aussehen:
char cWave[1024]; // hier stehen die wave daten
PlaySound( &cWave[0], NULL, SND_MEMORY);rocknix ///