Поиск в файле .avi с использованием С#

Прежде всего, я новичок в C#, так что терпите меня.

Я делаю приложение, которое показывает файл .avi в проигрывателе Windows Media следующим образом:

private void button1_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.URL = @"C:BlaBla\Family Guy\Season 10\S10E16.HDTV.x264-LOL.avi";
    }

Я обнаружил, что вы не можете использовать быструю перемотку вперед или назад в файле .avi, потому что он не проиндексирован. Но с помощью WMP-слайдера axWindowsMediaPlayer1 можно настроить воспроизведение файла в определенном месте. Например, запустите фильм, а затем перетащите ползунок на 05:00, чтобы пропустить первые 5 минут.

Я хочу сделать это программно, но я понятия не имею, как это сделать?


person user1285334    schedule 07.06.2012    source источник
comment
Точно так же, как вы устанавливаете свойство URL в COM, вам нужно будет сделать то же самое для установки времени начала. Если есть собственность, это вопрос   -  person Quintium    schedule 07.06.2012


Ответы (1)


Отказ от ответственности: я никогда не использовал это раньше.

Однако это выглядит из документации что вы можете установить положение в видео следующим образом:

axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 300d;

(Где значение — это количество секунд от начала видео, к которому вы хотите перейти — я установил его на 5 минут в соответствии с запросом).

Редактировать: Из комментариев ниже - для быстрой перемотки вперед есть способ сделать это для вас. Вы можете сначала проверить, можете ли вы это сделать, в документации есть пример здесь, который я изменил для вас:

if (axWindowsMediaPlayer1.Ctlcontrols.get_isAvailable("fastForward"))
{
   axWindowsMediaPlayer1.Ctlcontrols.fastForward();
}

Это проверяет, может ли он перемотать вперед, затем воспроизводится с 5-кратной нормальной скоростью, пока вы не скажете ему сделать что-то еще, или, я думаю, он не дойдет до конца видео!

person Bridge    schedule 07.06.2012
comment
Я на самом деле нашел это за пару секунд до того, как вы ответили, но вы правы, это работает! За исключением того, что в двойном, в миллисекундах. Итак: axWindowsMediaPlayer1.Ctlcontrols.currentPosition = 10.745329; - person user1285334; 07.06.2012
comment
Спасибо Мост. Я знаю об этих функциях, но они работают только с моими файлами .mp4, а не с .avi (как я уже сказал, потому что они не индексируются), НО вместо этого вы можете сделать это: axWindowsMediaPlayer1.Ctlcontrols.currentPosition += 5.0; и запустить это в цикле. Спасибо за помощь человеку! - person user1285334; 07.06.2012