OpenAL - alBufferData() liefert fehler zurück



  • Hallo,

    ich versuche mich gerade an eine Klasse zum laden und verwalten von Audiodaten. Nur leider liefert die Funktion alBufferData() den Fehler AL_OUT_OF_MEMORY zurück.

    Das steht in der Header Datei

    bool LoadWAVFile(TCHAR *sFilename, TCHAR *sLocationPath, int *iBufferIndex);
    
    struct	struct_Bufferdata{ TCHAR sAudiofilename[100]; ALuint iBuffer; }pBufferdata;		
    vector<struct_Bufferdata>vBufferdata;
    

    Und das steht in der LoadWAVFile(), sSoundfilepath ist der absolute Pfad zur Datei die auch existiert

    //... Diverse Prüfungen und das zusammensetzen des Pfades
    
    int iNewBufferIndex = (int)vBufferdata.size();
    vBufferdata.push_back(pBufferdata);
    
    alGenBuffers(1, &vBufferdata[iNewBufferIndex].iBuffer);
    
    ALenum		iFormat; 
    ALsizei		iSize;
    ALsizei		iFrequence; 
    ALvoid*		pData;
    ALboolean	bLoop;
    
    alutLoadWAVFile((ALbyte *)sSoundfilepath, &iFormat, &pData, &iSize, &iFrequence, &bLoop); 
    alBufferData(vBufferdata[iNewBufferIndex].iBuffer, iFormat, pData, iSize, iFrequence); 
    alutUnloadWAV(iFormat, pData, iSize, iFrequence);
    

    Ich bin mir nicht sicher ob das so richtig ist mit alutLoadWAVFile((ALbyte *)... Auf diversen Seiten wird was von const char geschrieben aber er will bei mir ALbyte haben. alutLoadWAVFile() verursacht soweit keine Fehler, wobei ich nicht weiss ob da alles richtig läuft und deshalb bei alBufferData() was schief läuft.



  • hab das problem gelöst.

    anstatt alutLoadWAVFile() hab ich alutCreateBufferFromFile() genommen und brauchte damit auch kein alBufferData(). ist nur doof das ich den TCHAR pfad in CHAR konvertieren muss.


Anmelden zum Antworten