Sound abspielen!
-
HI
ich suche eine funktion in der mfc mit der ich einfache .wav sounds abspielen lassen.hierzu hatte ich bereits PlaySound verwendet, jedoch hat PlaySound das Wave file nur ca 10 sek abgespielt und dann abgebrochen.
Danke schon mal im voraus!
Ulath
-
Hast du es denn mal mit verschiedenen Flags versucht ?
-
jo zumindest die mir plausibel klingenden...
naja ich werd die noch mal der reihe nach durchtesten
-
hmm also wenn ich den sound asynchron apsppeiele, d.h. das er spielt und die applikation wwärend dessen weitergeht dann speilt er den ganzen ...
jedoch muss meine applikation darauf warten bis der sound abgespielt ist.
jemand ne ahnung wie ich herausbekomme wie lang ein wave file ist ?also die datenrate ist ja 16bit*44100 = 705600 bits/s
aber wie groß ist der header von so einem wave file und kann man da evtl acuh gleich samplerate usw auslesen ?
-
also ich habe volgendes durch googlen usw herausgefunden:
1. der Header einer Wave datei ist folgendermaßen aufgebaut:
struct Standard_Wave_Header { long Riff; // Sollte immer "RIFF" enthalten = 1179011410 long Rl; // Groesse des folgenden "Chunks" long Typ; // Typinformation 4 byte "WAVE" = 1163280727 long Fmt; // Muss "fmt " enthalten = 544501094 long CSize; // Chunksize int Tag; // Meist unbenutzt int nChan; // Zahl der Kanäle long sps; // Samples pro Sekunde long Bps; // Bytes pro Sekunde int Bla; // Blockalign (Byte pro Sample) int Sl; // Samplelänge long Data; // Muss "DATA" enthalten = 1096040772 long Dl; // Datenlänge };
2. ich habe den mal einfach eingelesen und dann Datenlänge / (samplelänge * samples/sek) gerechnet und dachte dabei sollte die länge des sounds rauskommen.
Standard_Wave_Header bla; char blub[100]; FILE *pFile; pFile = fopen("D:\\projekte\\FLB\\geräusche\\Luft_40.5dB(A)_10_Jet.wav", "rb"); fread(&bla, sizeof(Standard_Wave_Header), 1, pFile); long bla2 = bla.Dl/(bla.Sl*bla.sps); MessageBox(NULL, _itoa(bla2, blub, 10), "Bps", MB_OK); fclose(pFile);
-> leider ist irgendwie die Datenlänge immer 0.
vieleicht kann mir ja einer weiterhelfen !DANKE !
-
du könntest es statt mit der mci-lösung mal mit fmod versuchen.
hier is der link http://www.fmod.org
steht alles in der documentation und wenn du weitere fragen zum auslesen der soundlänge und so weiter in fmod hast: einfach mal mitteilen und dann werd ich dir beispielcode posten ok?