WinAPI: waveOutGetPosition - 获取输出设备当前的播放位置


//声明:

waveOutGetPosition(

  hWaveOut: HWAVEOUT; {设备句柄}

  lpInfo: PMMTime;    {TMMTime 结构的指针, 用于返回播放位置}

  uSize: UINT         {TMMTime 结构的大小, 以字节为单位}

): MMRESULT;          {成功返回 0; 可能的错误值见下:}



MMSYSERR_INVALHANDLE  = 5;  {设备句柄无效}

MMSYSERR_HANDLEBUSY   = 12; {设备已被另一线程使用}



//TMMTime 是 mmtime_tag 结构的重定义:

mmtime_tag = record

  case wType: UINT of

   TIME_MS:     (ms: DWORD);         {毫米}

   TIME_SAMPLES:(sample: DWORD);     {波形音频取样数}

   TIME_BYTES:  (cb: DWORD);         {波形音频字节数(字节偏移量)}

   TIME_TICKS:  (ticks: DWORD);      {TICK 数}

   TIME_SMPTE:(                      {动画及电视协会的 SMPTE 时间, 是个内嵌结构}

      hour: Byte;                {时}

      min: Byte;                 {分}

      sec: Byte;                 {秒}

      frame: Byte;               {帧}

      fps: Byte;                 {每秒帧数}

      dummy: Byte;               {填充字节(为对齐而用)}                  

      pad: array[0..1] of Byte); {}

    TIME_MIDI : (songptrpos: DWORD); {MIDI 时间}

end;



//使用 TMMTime 结构前, 应先指定 TMMTime.wType :

TIME_MS      = $0001; {默认; 打开或复位时将回到此状态}

TIME_SAMPLES = $0002;

TIME_BYTES   = $0004;

TIME_SMPTE   = $0008;

TIME_MIDI    = $0010;

TIME_TICKS   = $0020;


 
   
//举例:

你可能感兴趣的:(position)