WinAPI: waveOutGetPosition - 获取输出设备当前的播放位置
WinAPI: waveOutGetPosition - 获取输出设备当前的播放位置
涂孟超 发表于3年前
WinAPI: waveOutGetPosition - 获取输出设备当前的播放位置
  • 发表于 3年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

//声明:
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;

 
 
 
 
 

 

 

  
//举例:
共有 人打赏支持
粉丝 13
博文 2004
码字总数 14107
×
涂孟超
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: