我寻找窗户的PulseAudio的有些另类。 linux下有非常简单的方式来输出原始声音(带的PulseAudio):
pa_simple_write(pulse, data, bufferSize, &error);
它的工作完美的小缓冲区,我发在循环运行。
在windows下我用这样的:
void writeAudioBlock(HWAVEOUT hWaveOut, LPSTR block, DWORD size)
{
WAVEHDR header;
ZeroMemory(&header, sizeof(WAVEHDR));
header.dwBufferLength = size;
header.lpData = block;
waveOutPrepareHeader(hWaveOut, &header, sizeof(WAVEHDR));
ResetEvent(waveDone);
waveOutWrite(hWaveOut, &header, sizeof(WAVEHDR));
WaitForSingleObject(waveDone, INFINITE);
waveOutUnprepareHeader(
hWaveOut,
&header,
sizeof(WAVEHDR)
);
}
它的工作,但是当我送另一块的数据我听到片之间小的延迟。 任何其他方式的数据缓冲器的输出小块到声音设备?