2009-06-23 70 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

相關問題