c++audiowasapiwinmm

How to access audio waveform buffer when recording using WASAPI in c++?


I've used winmm library to access the waveform information before with syntax like this waveInAddBuffer(hwi, &wh[i], sizeof(WAVEHDR)); So I've to pass the pointer that point to the memory block (&wh[i]) where I want to store the waveform data, In order to access it I just have do this wh[i].lpData
Are there a similar function like this in WASAPI?


Solution

  • It's IAudioCaptureClient::GetBuffer method:

    Retrieves a pointer to the next available packet of data in the capture endpoint buffer.

    […]

    BYTE **ppData

    Pointer to a pointer variable into which the method writes the starting address of the next data packet that is available for the client to read.

    See also:

    For a code example that calls the GetBuffer method, see Capturing a Stream.