Главная » Processing » Управление скоростью видео в Processing

0

Проигрывание видео с нормальной скоростью может быть неинтересно. В этом примере мы займемся этим. Вы научитесь увеличивать скорость видео, замедлять его и даже проигрывать его в обратном порядке.

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

Начнем с того же кода, что и в первом примере этой главы, добавив к нему перед функцией setup() переменную типа float под именем s. С помощью этой переменной мы будем управлять скоростью видео, поэтому присвоим ей значение равное 1.0 в функции setup().

import processing.video.*;

Movie m; float s;

void setup()

{

size( 640, 480 );

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

s = 1.0;

}

В функции draw мы выведем на экран текущий кадр с помощью функции image(). Мы выведем на экран значение переменной Speed с помощью функции text(). Функцию movieEvent() возьмем без изменений.

void draw()

{

background( 0 );

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

fill( 0 );

text( "Speed: " + s, 20, 20 );

}

void movieEvent( Movie m )

{

m.read();

}

Функция mousePressed() будет устанавливать скорость видео. Мы преобразуем значие переменной mouseX до диапазона от v-2 до 2. Для установки скорости проигрывания согласно этой величине мы используем метод speed() класса Movie.

void mousePressed()

{

s = map( mouseX, 0, width, -2, 2 ); m.speed( s );

}

Запустите скетч, кликните на экран и вы увидите следующее:

Метод speed() класса Movie используется для установки скорости проигрывания видео. Если вы укажете скорость 1.0, видео будет проигрываться с нормальной скоростью. Если скорость будет равна 0.5, видео будет проигрываться с половинной скоростью. Для ускорения видео установите скорость больше 1.0. Отрицательное значение запустит проигрывание в обратном порядке.

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

По теме:

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