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



我正在处理电影。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

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

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

不确定您正在使用什么类,但您不能做一个解决方法吗?应该如此之快,以至于用户不会注意到:

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

顺便说一句,反向可以写成(如果需要,没有):

reverse = !reverse;
playSpeed = -playSpeed;
movie.speed(playSpeed);
我知道

答案,我自己想办法。如果影片播放速度小于 0,则星形将小于停止。所以,如果播放速度小于0,正好*-1,让大于0,比跳跃,比*-1,让速度小于0。

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

最新更新