Главная » Processing » Проигрывание видео в Processing

0

Этот пример будет самым простым в этой главе. Вы узнаете, как загружать видеофайлы с жесткого диска и проигрывать их на экране.

Приступим

Создайте новый скетч Processing и сохраните его под именем playing_video.pde. Добавьте видеофайл в папку data вашего скетча путем перетаскивания видеофайла в окно Processing. Для этих примеров я использовал файл marbles.mov; если хотите, вы тоже можете его использовать. Этот видеофайл должен находиться в папке data вашего скетча Processing. Вы можете добавить его, перетащив в PDE.

Как это делается

Начать нужно с импорта библиотеки video. Для этого откройте меню Sketch | Import Library | video. Также нужно объявить объект класса Movie перед функцией setup(). В функции setup() мы загрузим видеофайл с жесткого диска и запустим видео в режиме повторения.

import processing.video.*; Movie m;

void setup()

{

size( 640, 480 );

m = new Movie( this, "marbles.mov" ); m.loop();

}

Следующее, что мы сделаем – напишем функцию movieEvent() для чтения кадров с видеофайла.

void movieEvent( Movie m )

{

m.read();

}

Последнее, что мы сделаем – выведем на экран текущий кадр с помощью функции

image().

void draw()

{

background( 0 );

image( m, 0, 0, width, height );

}

В результате, если вы использовали тот же видеофайл, на экране вы увидите это:

Как это работает

Первое, что мы сделали – объявили объект типа Movie. Это нужно сделать перед функцией setup(). В функции setup() с помощью метода new Movie() мы загрузили видеофайл из папки data нашего скетча в объект. Этот конструктор имеет два параметра. Первый – это ключевое слово this. Оно передает ссылку из главного объекта PApplet в объект new Movie. Второй параметр – это строка с именем видеофайла. Для непрерывного проигрывания видео я использовал метод loop() класса Movie.

Функция movieEvent() автоматически вызывается каждый раз, когда доступен новый кадр. Для захвата кадра нужно использовать метод read() класса Movie. Вывести этот кадр на экран можно с помощью функции image().

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии