2009-06-23 8 views
2

J'ai P/Invoked the mciSendString method from WinMM.dll:Comment déterminer combien de temps une chanson utilise winmm.dll?

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

Je peux jouer, faire une pause, et arrêter des chansons (je peux aussi ouvrir/fermer le lecteur de CD, mais ce n'est pas important). Maintenant, je veux que mon utilisateur puisse passer à une certaine partie d'une chanson (par exemple 1:21). J'ai regardé le seek functions documentation et il semble assez simple sauf que je ne peux pas comprendre combien de temps une chanson est. Est-ce qu'une commande/méthode existe pour faire cela dans WinMM?

+0

Y at-il des raisons pour lesquelles vous utilisez l'API MCI et non DirectShow? –

Répondre

4

Il serait probablement quelque chose comme ceci:

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

Cela a fait l'affaire. Merci. BTW génial Stackoverflow/Serverfault sidebar gadget. – Kredns

Questions connexes