最近在研究MCI如何编写多媒体应用程序,对其中的时间格式不是太明白,在网上找了很多资料,也没找到说的很详细的,于是只有啃MSDN了。MCI的时间格式大概有如下几种:MCI_FORMAT_MILLISECONDS 、 MCI_FORMAT_HMS 、 MCI_FORMAT_MSF、MCI_FORMAT_FRAMES 、MCI_FORMAT_SMPTE_24 、 MCI_FORMAT_SMPTE_25 、MCI_FORMAT_SMPTE_30 、 MCI_FORMAT_SMPTE_30DROP 、 MCI_FORMAT_BYTES 、MCI_FORMAT_SAMPLES 、MCI_FORMAT_TMSF 。
相关的宏如下:
对于HMS格式,MCI_HMS_HOUR、 MCI_HMS_MINUTE、MCI_HMS_SECOND,分别从一个HMS的数据中取得时、分、秒。而对于HMS格式,MSDN上是这样定义的:
HMS格式实际上是一个 DWORD 数据,它的最后一个字节代表 hours, 倒数第二个字节代表 minutes, 倒数第三个字节代表 seconds. 最后一个字节未使用。.使用MCI_MAKE_HMS ,可以组装一个HMS格式的数据。
MSF格式:MCI_MSF_MINUTE、MCI_MSF_SECOND、MCI_MSF_FRAME,分别从一个HMS的数据中取得分、秒、帧。该格式的定义和上面类似。使用MCI_MAKE_MSF可以得到一个MSF格式的数据。
对于TMSF格式:MCI_TMSF_TRACK、MCI_TMSF_MINUTE、MCI_TMSF_SECOND、MCI_TMSF_FRAME,分别从一个TMSF的数据中取得TRACK、分、秒、帧。该格式的数据也是一个DWORD ,低字节代表TRACK数,次字节代表分,其余的字节分别代表秒和帧,MCI_MAKE_TMSF用于构造一个TMSF数据。