나는 작은 버퍼 (각각 80ms)를 작성하기 위해 waveOutWrite
을 사용하고 있습니다. 여기waveOutGetPosition은 항상 0을 반환합니다.
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은 항상 0입니다. MSDN은 "재생 위치"가 상대적인지에 대해 명확하지 않습니다. 다만 waveOutOpen 및 waveOutReset에서 재설정됩니다. 그러나 항상 여러 waveOutWrite() 호출에서 계속 증가합니까? 나에게 항상 제로를 돌려주는 이유에 대한 아이디어가 있습니까?