在处理中,为什么movie.jump()函数在电影反转期间不起作用?

时间:2015-04-14 03:15:57

标签: processing movie

我正在处理电影。在电影反向播放期间,move.jump()函数无法正常工作。我有反向代码: (reverse是全局布尔变量)

float playSpeed = 1.0;
//After click reverse button
if(reverse == false){
    playSpeed = playSpeed * -1; 
    movie.speed(playSpeed);
    reverse = true;
}
else{
      playSpeed = playSpeed * -1;
      movie.speed(playSpeed);
      reverse = false;
    }  

reverse == true期间,我单击某个按钮,然后跳转到某个时间,例如5.0,代码如下所示:

//after click button
if(reverse == true){
   movie.jump(5.0);
}

这个跳转功能不起作用。它不会跳到5.0秒的电影帧。并显示一些错误:

ast_segment_set_seek: assertion 'start <= stop' failed

有人可以告诉我为什么跳转功能不起作用以及如何修复它? 谢谢。

2 个答案:

答案 0 :(得分:1)

编辑:更合理的答案:跳转是否可以计算相对于帧率的位置,当向后播放然后结束在开始之前变为负值?在这种情况下,我的解决方法应该有效。

不确定您正在使用哪些课程,但是您不能只是制定解决方法吗?应该如此之快,用户不会注意到:

if (reverse) {
    movie.speed(1f);
    // jump();
    movie.speed(playSpeed);
} else {
    // jump();
}

顺便说一下反转可写为(如果需要,则为否):

reverse = !reverse;
playSpeed = -playSpeed;
movie.speed(playSpeed);

答案 1 :(得分:-1)

我知道答案,我自己弄明白了。 如果电影播放速度低于0,那么明星将不会停止。 所以,如果播放速度小于0,只要* -1,大于0,比跳跃大于* -1,让速度小于0。

if(reverse == true){
          m.speed(playSpeed*-1);
          m.jump(5.0);
          m.speed(playSpeed*-1);
        }