Skip to content

libraryImport video example: can't define movieEvent hook #166

@jeremydouglass

Description

@jeremydouglass

I've tried using the importLibrary() function to create a second library example using the Processing Video library ("video"), and specifically its Loop.pde demo sketch.

I was successful -- video plays in a loop in Processing.R -- however I ran into a problem redefining the Video library's movieEvent function hook. My demo sketch works around this problem by dropping the framerate and reading the video each frame no matter what. This creates rough, choppy, low-framerate video. I wonder if there is a way to do this right.

To set up this test sketch, install the Video library in PDE, save the test sketch in Processing.R mode, then copy transit.mov from the video library example into the sketch /data folder.

settings <- function() {
    # Please install the video before you run the example.
    importLibrary("video")
    size(640, 360)
}

setup <- function() {
    frameRate(10) # hack -- drop the framerate to give video more time to load
    # copy transit.mov from video library example into sketch /data folder
    movie = Movie$new(processing, "transit.mov");
    movie$loop()
}

draw <- function() {
    background(0)
    movie$read() # hack -- reads regardless of whether the next frame is ready or not
    image(movie, 0, 0, width, height)
}

## The video library uses the movieEvent() function
## to manage when the movie object reads the next frame.
## However I'm not sure how to redefine this hook
## in R mode. For the original Java video library example, see:
##   /libraries/video/examples/Movie/Loop/Loop.pde

## doesn't work
# movieEvent <- function(m) {
#     m$read()
# }

## also doesn't work
# movieEvent <- function() {
#     movie$read()
# }

## also doesn't work
# Movie$movieEvent <- function(m) {
#     m$read()
# }

## also doesn't work
# Movie$movieEvent <- function() {
#     movie$read()
# }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions