如何确定歌曲使用winmm.dll的时间长短?

时间:2009-06-23 16:04:54

标签: c# windows winforms pinvoke media

P/Invoked the mciSendString method from WinMM.dll

[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand, StringBuilder strReturn,
                                         int iReturnLength, IntPtr hwndCallback);

我可以播放,暂停和停止歌曲(我也可以打开/关闭CD驱动器,但这并不重要)。现在我希望我的用户能够跳到歌曲中的某个部分(例如1:21)。我看过seek functions documentation并且看起来非常明确,除了我无法弄清楚一首歌有多长。在WinMM中是否存在执行此操作的命令/方法?

1 个答案:

答案 0 :(得分:4)

可能是这样的:

StringBuilder sb = new StringBuilder(128);
mciSendString("status mediafile length", sb, 128, IntPtr.Zero);
long songlength = Convert.ToUInt64(sb.ToString());