我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中是否存在执行此操作的命令/方法?
答案 0 :(得分:4)
可能是这样的:
StringBuilder sb = new StringBuilder(128);
mciSendString("status mediafile length", sb, 128, IntPtr.Zero);
long songlength = Convert.ToUInt64(sb.ToString());