Чтение разрешения WMV в C # - PullRequest
2 голосов
/ 19 июня 2010

Я пытаюсь прочитать размер изображения WMV-файла в C #.
Я пытался использовать то, что описано здесь:
Как узнать продолжительность видеофайла с помощью C #?
но единственным атрибутом, имеющим значение, является Продолжительность.

Есть идеи?
Спасибо.

Ответы [ 3 ]

1 голос
/ 10 августа 2010

Единственный способ, которым я видел это, - это воспроизвести его и прикрепить к событию open:

    static WindowsMediaPlayerClass player;

    static void Main()
    {
        player = new WindowsMediaPlayerClass();  
        IWMPMedia mediaInfo = player.newMedia("test.wmv");
        player.OpenStateChange += new _WMPOCXEvents_OpenStateChangeEventHandler(player_OpenStateChange);
        player.currentMedia = mediaInfo;

        //...

        Console.WriteLine("Done.");
        Console.ReadKey();
    }

    private static void player_OpenStateChange(int state)
    {
        if (state == (int)WMPOpenState.wmposMediaOpen)
        {
            Console.WriteLine( "height = " + player.currentMedia.imageSourceHeight);
            Console.WriteLine( "width = " + player.currentMedia.imageSourceWidth);
        }
    }

Вы захотите избавиться от любых ресурсов перед выходом.

0 голосов
/ 01 июля 2016

Я предпочитаю использовать бесплатный NReco.VideoInfo.dll. Главным образом потому, что я ненавижу проигрыватель Windows Media. Я обнаружил, что WMP ненадежен.

Вот ссылка для скачивания: http://www.nrecosite.com/video_info_net.aspx Это полезно и для других вещей.

var ffProbe = new NReco.VideoInfo.FFProbe();
var videoInfo = ffProbe.GetMediaInfo(pathToFile);
Int32 tmpHeight = videoInfo.Streams[0].Height;
Int32 tmpWidth = videoInfo.Streams[0].Width;
0 голосов
/ 19 июня 2010

Вы используете код из связанного примера, но явно выполняете вызов функции, чтобы получить значения height и width .

Пример:

using WMPLib; // this file is called Interop.WMPLib.dll

WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
IWMPMedia mediaInfo = wmp.newMedia("myfile.wmv"); 

long height, width;
mediaInfo.get_imageSourceHeight(height);
mediaInfo.get_imageSourceWidth(width);
...