mirror of
https://github.com/processing/processing4.git
synced 2026-02-11 09:39:19 +01:00
52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
/**
|
|
* Reverse playback example.
|
|
*
|
|
* The Movie.speed() method allows to
|
|
* change the playback speed. Use negative
|
|
* values for backwards playback. Note that
|
|
* not all video formats support backwards
|
|
* playback. This depends on the underlying
|
|
* gstreamer plugins used by gsvideo. For
|
|
* example, the theora codec does support
|
|
* backward playback, but not so the H264
|
|
* codec, at least in its current version.
|
|
*
|
|
*/
|
|
|
|
import processing.video.*;
|
|
|
|
Movie mov;
|
|
boolean speedSet = false;
|
|
boolean once = true;
|
|
|
|
void setup() {
|
|
size(640, 360);
|
|
background(0);
|
|
mov = new Movie(this, "transit.mkv");
|
|
mov.play();
|
|
}
|
|
|
|
void movieEvent(Movie m) {
|
|
m.read();
|
|
if (speedSet == true) {
|
|
speedSet = false;
|
|
}
|
|
}
|
|
|
|
void draw() {
|
|
if (speedSet == false && once == true) {
|
|
// Setting the speed should be done only once,
|
|
// this is the reason for the if statement.
|
|
speedSet = true;
|
|
once = false;
|
|
mov.jump(mov.duration());
|
|
// -1 means backward playback at normal speed.
|
|
mov.speed(-1.0);
|
|
// Setting to play again, since the movie stop
|
|
// playback once it reached the end.
|
|
mov.play();
|
|
}
|
|
image(mov, 0, 0, width, height);
|
|
}
|
|
|