[modifier]
Ceci est le code de travail après les commentaires de Hans qui m'a aidé Passant à compiler et tester. Ce code compile et affiche la longueur du film.
using System;
using WMPLib;
namespace MediaPlayer
{
class Program
{
static WindowsMediaPlayer wmp = new WindowsMediaPlayer();
static void Main(string[] args)
{
wmp.URL = @"c:\Wildlife.wmv";
wmp.PlayStateChange += new _WMPOCXEvents_PlayStateChangeEventHandler(wmp_PlayStateChange);
Console.ReadKey();
}
static void wmp_PlayStateChange(int NewState)
{
if (NewState == 3)
{
Console.WriteLine("Duration = " + wmp.currentMedia.durationString);
}
}
}
}
[ancienne réponse]
Je ne sais rien de ce genre de choses, mais voici mon avis sur la question. L'état du lecteur n'est pas là où il peut encore se reporter sur le média. Le code ci-dessous est juste jeté ensemble ici et ne pourrait même pas compiler. De MSDN:
Pour récupérer la durée des fichiers qui ne sont pas dans la bibliothèque de l'utilisateur, vous devez attendre pour Windows Media Player pour ouvrir le fichier; c'est-à-dire que l'OpenState actuel doit être égal à MediaOpen. Vous pouvez le vérifier en manipulant l'événement Player.OpenStateChange ou en vérifiant périodiquement la valeur de Player.openState.
using WMPLib;
class Program
{
static void Main(string[] args)
{
// this file is called Interop.WMPLib.dll
WindowsMediaPlayer wmp = new WindowsMediaPlayer();
wmp.URL = @"c:\TORRENT.KG\Assault.girls.2009.DVDRip.Rus.Eng.avi";
wmp.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(wmp_PlayStateChange);
Console.ReadKey();
}
void wmp_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (e.newState == 3)
{
Console.WriteLine("Duration = " + wmp.currentMedia.durationString);
}
}
}
Kojomuratov poser des questions avec précaution) – sultan
@STW: peut-être, peut-être, il est sa copie d'archivage pour un usage personnel. :) – Joe
@Joe aha Assault.girls.2009 ... (: – sultan