Я использую waveOutWrite
для записи нескольких небольших буферов (по 80 мс каждый). Как они играют, я звоню эту функцию, чтобы получить позицию воспроизведения:waveOutGetPosition всегда возвращает ноль
uint GetWaveOutPosInMS()
{
WinMM.MMTIME mmtime = new WinMM.MMTIME();
mmtime.wType = 1;
WinMM.MMRESULT ret = WinMM.waveOutGetPosition(WaveOut, ref mmtime, (uint)Marshal.SizeOf(typeof(WinMM.MMTIME)));
return (mmtime.val);
}
Ниже приведены относительные дополнения, а также:
waveOutGetPosition возвращает 0 (нет ошибки), но mmtime .val всегда равно нулю. MSDN не совсем понятна, с чем «позиция воспроизведения» относительно того, что она сбрасывается на waveOutOpen и waveOutReset .. но всегда ли она продолжает увеличиваться через несколько вызовов waveOutWrite()? Любые идеи относительно того, почему это всегда будет для меня нулевым?