2009-06-23 66 views
2

我已经P/Invoked the mciSendString method from WinMM.dll如何确定一首歌曲使用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中执行此操作?

+0

有你为什么使用MCI API,而不是DirectShow的任何原因? – 2009-06-23 16:12:13

回答

4

它很可能是这样的:

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

这个技巧。谢谢。顺便说一句,很棒的Stackoverflow/Serverfault边栏小工具。 – Kredns 2009-06-23 16:27:47

相关问题