Alternative der WinAPI zu PlaySound?
-
Hi,
ich möchte gerne eine Alternative zu PlaySound haben. Bei Playsound ist das Problem das es die Wave-Datei läd und direkt abspielt.
Ich möchte eine Wave direkt beim Start des Programmes laden, einen Handle bekommen (oder benutzen) und dann irgendwann im laufe des Programmes per Funktion abspielen.
Dabei möchte ich jedoch nur WinAPI Funktionen benutzen und Kein DirectX oder sonstige Libs.
Gibt es da eine Möglichkeit?
Tuts, sources und co. würde ich sehr gerne in empfang nehmen

bye

-
PlaySound kann doch vom RAM abspielen. => SND_MEMORY
-
Gibts keine andere möglichkeit?
-
Dann nimm doch die waveXXX Funktionen. Aber das wird bestimmt schön kompliziert.

-
RAM´´ schrieb:
Dann nimm doch die waveXXX Funktionen. Aber das wird bestimmt schön kompliziert.

naja dafür mehr funktionalität wie ich grade sehe, jedoch eine Frage:
Wie benutze ich die ohne aus einer resource zu laden? In der Doku gibbet nur ein sample um aus einer resource zu laden, aber nichts weiteres
Kennt jemand ein Tut oder einen source dafür?
-
Was brauchst du denn für Funktionalität, die dir PlaySound nicht bietet?!
-
flenders schrieb:
Was brauchst du denn für Funktionalität, die dir PlaySound nicht bietet?!
-lautstärkeregelung einer Wav-datei während andere laufen
-kontrolle einer wave-datei während andere laufen
-laden einer wave-datei für späteren ablauf im programmhalt alles für nen manager. Und PlaySound ist ungeeignet dafür.
-
*push*
sorry leutz ist leider wirklich wichtig.
-
-
@net:
DANKE!!! DU BIST EIN SCHATZ *KNUTSCH*
-
Noch eine frage:
Ich habe mir als Testwave ne datei aus dem ordner media von Windows NT genommen "The Microsoft sound" und wollte den abspielen, doch ich hör da irgendwie nur kratzen und rauschen??????
-
*pushing*
-
bestimmt spielst du's mit falschen parametern ab, samplingrate, 16/8bits pro sample etc.
-
net schrieb:
bestimmt spielst du's mit falschen parametern ab, samplingrate, 16/8bits pro sample etc.
Das sind die einstellungen:
wfx.nSamplesPerSec = 44100; /* sample rate */ wfx.wBitsPerSample = 16; /* sample size */ wfx.nChannels = 2; /* channels */ wfx.cbSize = 0; /* size of _extra_ info */ wfx.wFormatTag = WAVE_FORMAT_PCM; wfx.nBlockAlign = (wfx.wBitsPerSample * wfx.nChannels) >> 3; wfx.nAvgBytesPerSec = wfx.nBlockAlign * wfx.nSamplesPerSec;Gibt es eigentlich so ne art "waveheader" wo diese Daten drinstehen zum Rausladen?
-
------------ schrieb:
Das sind die einstellungen...
die müssen genau mit dem inhalt des wavefiles übereinstimmen, damit es klingt.
------------ schrieb:
Gibt es eigentlich so ne art "waveheader" wo diese Daten drinstehen...
der anfang eines wavefiles ist so aufgebaut:
BYTE wavehead[] = {'R','I','F','F', 0, 0, 0, 0, // DWORD: Filelaenge - 8 'W','A','V','E', 'f','m','t',' ', 16, 0, 0, 0, // Konstant 1, 0, // Konstant 0, 0, // WORD: Kanaele 0, 0, 0, 0, // DWORD: Sample Frequenz 0, 0, 0, 0, // DWORD: Average 0, 0, // WORD: Bytes pro Sample 0, 0, // WORD: format-specific 'd','a','t','a', 0, 0, 0, 0}; // DWORD: Laenge Samplingdatendanach folgen direkt die samplingdaten