1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

C++ wav

Discussion in 'Programmieren' started by Godofkills, Jan 6, 2009.

Thread Status:
Not open for further replies.
  1. Godofkills

    Godofkills Byte

    Hallo,
    Ich möchte gerne ein wav Datei als Resource abspielen können, damit ich sie nicht die ganze Zeit "rumtragen" muss.
    Wenn ich die wav Datei abspielen indem sie in dem Ordner liegt funktioniert alles.
    Aber als Resource mit dem gleichen Befehl geht es nicht.
    Ich bräuchte dringen Hilfe :bitte:.
    Sitze schon länger daran das zum laufen zubekommen.
    Mfg godofkills
     
  2. Fettbemme

    Fettbemme Halbes Megabyte

    Last edited: Jan 6, 2009
  3. Godofkills

    Godofkills Byte

    also als resource hab ich sie schon aber er spielt sie nicht ab...aber ich schaue mir das ma an vielen dank.
     
  4. Godofkills

    Godofkills Byte

    Also ich benutze jetzt folgende funktion um eine wav Datei abzuspielen
    PlaySound (TEXT ( "recycle.wav"), NULL, SND_FILENAME);
    Doch sobald ich die wav Datei aus dem Verzeichnis nehme funktioniert es nicht mehr.
    So sieht es aus:

    [​IMG]
     
  5. kazhar

    kazhar Viertel Gigabyte

    liest du eigentlich was man dir verlinkt?

    PlaySound (TEXT ( "recycle.wav"), NULL, SND_FILENAME);
    versucht die datei recycle.wav abzuspielen. auch erkennbar an dem SND_FILENAME.

    wenn du eine sound ressource abspielen willst solltest du das der funktion mittels SND_RESOURCE verklicken.
    PlaySound(MAKEINTRESOURCE(IDR_WAVE1), GetModuleHandle(NULL), SND_RESOURCE);
     
  6. Godofkills

    Godofkills Byte

    Immer direkt so agressiv.
    Es tut mir leid ich lerne ers seit 4 Monaten c++ in der Schule ich kenn mich da jetzt noch nicht so gut aus.
    So ich benutze jetzt diese Funktion

    PlaySound(MAKEINTRESOURCE(IDR_WAVE1), GetModuleHandle(NULL), SND_RESOURCE);

    Aber wo füge ich jetzt da denn Soundname ein?
    (Ich Entschuldige mich nochmal für die dumme Frage. Ich würde ja auch in der Schule nachfragen aber da weiß unser Lehrer auch nicht so bescheid, den wir Programmieren dann eher Matrizten und so ein Kack.)
     
    Last edited: Jan 7, 2009
  7. kazhar

    kazhar Viertel Gigabyte

    statt IDR_WAVE1 musst du den ressource identifier eintragen. wenn du den nicht kennst (oder die sache etwas flexibler schreiben willst) such ihn dir per

    FindResource(hInstance, TEXT("wave_name"), TEXT("WAVE"));

    wenn du windows-programme schreiben willst kommst du um das msdn nicht herum. setze ein lesezeichen drauf :rolleyes:
     
  8. Godofkills

    Godofkills Byte

    Naja mit Windows-Proframme dauert das noch^^. Ne ich schreibe gerade so ein kleines Spiel und da kommt man ja um Sounds eigentlich nicht herum.

    So ich habe das jetzt so.

    #include <iostream>
    #include <windows.h>
    #include <stdio.h>
    using namespace std;
    #pragma comment(lib,"winmm.lib")
    main()
    {
    FindResource(hInstance, TEXT("ateam.wav"), TEXT("WAVE"));
    }

    Das ist bestimmt falsch, wie ich es habe, denn da kommt eine Fehlermeldung.
     
    Last edited: Jan 7, 2009
  9. kazhar

    kazhar Viertel Gigabyte

    ich hab da mal etwas herumgespielt...

    ein problem ist mir aufgefallen: wave ist kein vordefinierter ressourcen-typ.
    daher funktionierte die FindResource-geschichte (bei mir) nicht so wirklich. ich hab daher testweise sowohl im ressourcen script als auch im programm aus dem wave rcdata gemacht (ein standard ressourcen typ für "rohe" bzw binäre daten)

    hResInfo=FindResource(0, "nureinwave", RT_RCDATA);
    hRes=LoadResource(0, hResInfo);
    lpRes=LockResource(hRes);
    bRtn=sndPlaySound(lpRes, SND_MEMORY | SND_SYNC);
    FreeResource(hRes);

    hat mir schön brav die als rcdata getarnte wave ressource mit dem namen "nureinwave" abgespielt.

    ps: eine fehlermeldung ist ziemlich nichtssagend. es kommen ja nur 4294967296 verschiedene in frage ;)
     
    Last edited: Jan 7, 2009
Thread Status:
Not open for further replies.

Share This Page