DirectSound StreamingBuffer



  • Hallo zusammen,

    ich erhalte kein 'IDirectSoundNotify8 interface'

    Ich habs ersmal mit einem StaticBuffer probiert - funktioniert alles. Dann wollte ich das Programm auf StreamingBuffer umstricken und dabei habe ich obiges Problem. Was mache ich falsch?

    LPDIRECTSOUND8 lpds;
    DirectSoundCreate8(&DSDEVID_DefaultPlayback, &lpds, NULL);
    
    DSBUFFERDESC dsbdesc;
    memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); 
    dsbdesc.dwSize  = sizeof(DSBUFFERDESC); 
    dsbdesc.dwFlags = DSBCAPS_CTRLFREQUENCY | DSBCAPS_STICKYFOCUS | DSBCAPS_GETCURRENTPOSITION2;
    dsbdesc.dwBufferBytes   = waveFile.GetSize(); 
    dsbdesc.lpwfxFormat     = waveFile.m_pwfx;
    
    LPDIRECTSOUNDBUFFER m_lpdsbStatic;
    lpds->CreateSoundBuffer(&dsbdesc, &m_lpdsbStatic, NULL);
    
    //Kopiere Wave in m_lpdsbStatic
    //bis hier hat alles funktioniert
    
    LPDIRECTSOUNDNOTIFY8 lpDsNotify;
    HRESULT hr = m_lpdsbStatic->QueryInterface(IID_IDirectSoundNotify8, (LPVOID *)&lpDsNotify);
    

    Für hr bekomme ich 'E_NOINTERFACE' zurück Was mach ich denn nur Falsch?



  • Erstmal: Sind alle Pointer gültig? Einfach mal den Debugger benutzen...

    cya 🙂



  • Pointer sind gültig, habs nochmal geprüft. Außerdem konnte ich ja schon wav's abspielen mit nem Static Buffer und sonst würde ja auch der QueryInterface Aufruf crashen. Die Pointer sind OK.

    😕

    [ Dieser Beitrag wurde am 17.01.2003 um 17:33 Uhr von mathi editiert. ]



  • Hallo zusammen,

    😞 Niemand eine Ahnung?

    Kennt ihr denn ein anderes Forum, wo ich das mal fragen kann? Am besten eins, was sich hauptsächlich mit DX beschäftigt?

    Gruß mathi



  • Habs gefunden, es fehlt das Flag DSBCAPS_CTRLPOSITIONNOTIFY für den Buffer.


Anmelden zum Antworten