我正在处理10videos视频。 它正在使用arduino.Serial。 我早期测试的文件很小(每个都不到50MB。大约400MB) 代码工作得很好......但.. 当我使用一个大文件大小(每个超过50MB。大约1GB。特别是两个文件大约300MB)时,该程序不起作用。
视频效果很好......但是当我按下按键时。它没有用。 例如,我将z,x,c,v设置为speed; z:1,0 speed,x:2.0 c:3.0 v:4.0。当我玩小尺寸的文件时,它运作良好。但是对于大尺寸的文件,它不起作用。
你知道如何处理超过100MB的视频吗?
我附上没有arduino序列码的代码。
import ddf.minim.*;
import processing.video.*;
Minim minim = new Minim(this);
AudioPlayer player;
Movie earth, space;
Movie[][] effect = new Movie[2][2];
Ctrl ctrl;
void setup() {
size( 1280, 720);
// frameRate(36);
// Main Movie Load
earth = new Movie( this, "earth.mp4");
space = new Movie( this, "space.mp4");
// Effect Movie Load
for ( int i = 0; i < effect.length; i++ )
{
effect[i][0] = new Movie( this, "effect" +i+ "0.mp4"); //Up
effect[i][1] = new Movie( this, "effect" +i+ "1.mp4"); //Down
}
// Create Ctrl Object
ctrl = new Ctrl( earth);
}
void draw() {
rectMode(CORNER);
ctrl.display();
if (keyPressed)
{
//speed test
if (key == 'z')
{
ctrl.setSpped( 1.0);
}
if (key == 'x')
{
ctrl.setSpped( 2.0);
}
if (key == 'c')
{
ctrl.setSpped( 3.0);
}
if (key == 'v')
{
ctrl.setSpped( 4.0);
}
//
if (key == 'q')
{
ctrl.changeMainMovie(true); // true >
}
if (key == 'w')
{
ctrl.changeMainMovie(false); // false >
}
}
}
// Called every time a new frame is available to read
void movieEvent(Movie m) {
m.read();
}
类
class Ctrl {
Movie main, _effect;
PImage lastFrame;
int opacity = 0;
boolean isFadeIn = true;
boolean ing = true,
isEarth = true;
float lastTime;
Ctrl( Movie _movie ) {
main = _movie;
main.loop();
main.play();
}
void setSpped( float _speed)
{
main.speed( _speed);
}
void changeMainMovie( boolean isToSpace)
{ // Main Movie Setting
if( isToSpace != isEarth ) return;
if( ing == false ) return;
lastTime = main.time();
main.pause();
ing = false;
lastFrame = main;
if( isToSpace == true )
{
main = space;
isEarth = false;
}
else
{
main = earth;
isEarth = true;
}
main.play();
main.jump(lastTime);
main.pause();
// Effect Movie Setting
if( 0 <= lastTime && lastTime <= 3)
{
if( isToSpace == true )
_effect = effect[0][0];
else
_effect = effect[0][1];
}
// else if ( 3 < lastTime && lastTime <=6 )
// {
// }
else
{
if ( isToSpace == true )
_effect = effect[1][0];
else
_effect = effect[1][1];
}
_effect.play();
}
void display()
{
if( ing == true )
{
noTint();
image( main, 0, 0);
}
else
{ // effect movie Play
if( isFadeIn == true)
{ // Fade In
noTint();
image( lastFrame, 0, 0);
tint(255, opacity+=5);
image( _effect, 0, 0);
if( _effect.time() >= 5 )
{
opacity = 255;
isFadeIn = false;
}
}
else
{ // Fade Out
noTint();
image( main, 0, 0);
tint( 255, opacity-=5);
image( _effect, 0, 0);
if( _effect.duration() - _effect.time() <= 0.1 )
{
_effect.stop();
opacity = 0;
ing = true;
isFadeIn = true;
main.loop();
main.play();
}
}
}
}
}