sound dateien überlagern, gleichzeitig abspielen



  • hallo,
    ich habs so versucht:

    char* names[3]  = {"bumm1.wav", "bumm2.wav", "bumm3.wav"};
    	char buf[3][80000];
    	int i;
    	FILE* fp;
    
    	for ( i = 0; i <3; i++ )
    	{
    		fp	= fopen(names[i], "rb");
    		fread(buf[i], 1, 80000, fp);
    		fclose(fp);
    	}
    
    	for ( i=0; i<5; i++)
    		PlaySound ( buf[i], NULL, SND_ASYNC | SND_MEMORY | SND_NODEFAULT | SND_NOSTOP );
    

    funzt net, lässt sich nicht gleichzeitig abspielen.
    hab auch die zeile

    PlaySound ( buf[i], NULL, SND_ASYNC | SND_MEMORY |
    

    in extra thread ausgelagert, das selbe problem.
    wie kann ich mehrere sound-dateien auf einmal abspielen und auch hören?!
    danke.



  • Wartest du hinterher lange genug, bis der Sound fertig abgespielt ist?
    Zur not kannst Du die samples ja aufaddieren und durch n teilen, so als billig-mixer 😉



  • ja, ich warte lange genug.



  • Okay, PlaySound kann das einfach nicht. Ausgabe gibts nur einmal pro Prozess. Zumindest laut dem, was ich so online gefunden habe, durch eine google(tm)-Suche. In der MSDN habe ich das so aber nicht gefunden.


Anmelden zum Antworten