2009-06-23 4 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); 

Я могу играть, пауза, и остановить песни (я также можно открыть/закрыть дисковод компакт-дисков, но это не важно). Теперь я хочу, чтобы мой пользователь мог пропустить определенную часть песни (например, 1:21). Я посмотрел на seek functions documentation, и это кажется довольно удачным, за исключением того, что я не могу понять, как долго песня. Существует ли команда/метод для этого в WinMM?

+0

Есть ли причина, почему вы используете API MCI и не DirectShow? –

ответ

4

Это, вероятно, будет что-то вроде этого:

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

Это сделало трюк. Благодарю. BTW отличная гаджет боковой панели Stackoverflow/Serverfault. – Kredns