sound effekte



  • hi leutz

    wo finde ich infos über sound effekte, und wie man die in c oder c++ umsetzt??
    habe jetzt schon ne stunde gegooglet aber ich finde nichts.

    wäre euch um jeden tipp sehr dankbar,, bis denne



  • Wenn ich dich richtig verstanden habe, dann möchtest du Sound in deine Datei mit einbinden. Also ich würde das so machen. 🙄

    #include <windows.h>
    #include <conio.h>
    #pragma comment(lib,"winmm.lib")
    
    BOOL play(char *name)
    {
      PlaySound(name, NULL, SND_FILENAME | SND_ASYNC);
      return 0;
    }
    
    int main()
    {  
      play("test.wav");   
      getch();
      return 0;
    }
    

    mfg tHe pHreak

    [ Dieser Beitrag wurde am 25.03.2003 um 22:02 Uhr von tHe pHreak editiert. ]



  • darf ich passend dazu eine handvoll Fragen stellen?

    So wie das in deinem Prog läuft, spielt er afaik den Sound ab und kommt anschließend zum getch(), oder?

    Geht das auch anders, ohne dass ich das ganze in einen thread packen muss? (hab mich noch nie mit multithreading befasst)

    Zweite Frage: wird die Soundausgabe hierbei blockiert, oder kann ich (per multithreading) mehrere wav's gleichzeitig abspielen?

    cya && thx
    DjR



  • @docjunior

    Zweite Frage: wird die Soundausgabe hierbei blockiert, oder kann ich (per multithreading) mehrere wav's gleichzeitig abspielen?

    hmmm, meiner Meinung nach unterstützt die Methode keine Multithreading, oder anders gesagt, es kann glaub ich immer nur ein Sound gleichzeitig ertönen. Zwar gibt's ja die beiden Flags SND_ASYNC und SND_SYNC, aber die bestimmen glaub ich nur, ob andere Prozesse während des Abspielens ablaufen dürfen.
    Wenn du mehrere Sounds auf einmal abspielen willst, musst du mit DirectSound für jeden Sound einen Buffer anlegen. Die verschiedenen Buffer werden dann gemischt, und daraus wird dann mehr oder weniger EIN Sound gemacht, der dann abgespielt wird. Das passiert natürlich alles in Echtzeit.
    So, das war's jetzt erstmal, was mir dazu eingefallen ist.
    Gruß
    e-the-real



  • hmm.. schade.

    Gibt's die Möglichkeit, einen Speicherbereich abzuspielen, so dass ich mir meine Sounds selber 'mixen' kann ??



  • tja, mir fällt da nix ein, ich bin aber in dem thema auch net so informiert, vielleicht weiss es irgendein profi hier ?!
    wenn nicht, musst du wohl auf dx zurückgreifen...
    gruß
    e-the-real



  • Original erstellt von ethereal:
    **Zwar gibt's ja die beiden Flags SND_ASYNC und SND_SYNC, aber die bestimmen glaub ich nur, ob andere Prozesse während des Abspielens ablaufen dürfen.
    **

    Nein, aus der Doku zu PlaySound:
    SND_ASYNC The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.

    Also mit einem Sound gehts definitiv ohne Threads. Was mehrere angeht, ich würde es einfahc mal ausprobieren 🙂


Anmelden zum Antworten