0

更新这个问题是因为我正在用合金而不是钛构建视图

我正在制作这个 iPhone 应用程序,我希望能够逐帧推进 240fps 视频。VideoPlayer 的 : 文档非常有帮助,但不幸的是,它只让我到目前为止。帧提前似乎实际上并没有提前,当我在调试日志中显示微秒计算时,似乎该currentPlaybackTime属性在设置后会返回。

这是合金:

<Alloy>
  <Window title="Player" id="vidPlayerWindow">
    <View class="container" id="view">
      <VideoPlayer id="theVideoPlayer" autoplay="false" />
      <View id="controlPanel">
        <Button id="btnPlay" />
        <Button id="btnFrameAdvance" />
      </View>
    </View>
  </Window>
</Alloy>

这是部分钛

var frameRate = 240.0; // frames per second
var msPerFrame = 1000.00 / frameRate; // how many MS per frame

Ti.API.debug ("Frame advance psuedo-code style string " + msPerFrame + "ms");

$.btnFrameAdvance.addEventListener('click',function(e){
    var currentTime = $.theVideoPlayer.getCurrentPlaybackTime();
    var numberOfFrames = 1; // I actually have code to advance by one or ten frames.
    var newTime = currentTime + (numberOfFrames * msPerFrame);
    Ti.API.debug('current Time ' + currentTime + 'ms to new time ' + newTime + 'ms');
    $.theVideoPlayer.setCurrentPlaybackTime(newTime);
});

// (In a similar function, I change `numberOfFrames` to -1 and it reverses a frame instead of advances.)

从理论上讲,这应该都可以正常工作,除非我尝试一下 - 好吧,这就是调试日志显示的内容

[DEBUG] Frame should advance by 4.166666666666667ms each press

我点击播放,然后大约一秒钟后点击暂停。然后我按下了前进按钮。

[DEBUG] current Time 1181.8333333333333ms to new time 1186ms
[DEBUG] current Time 1061.6666666666667ms to new time 1065.8333333333335ms
[DEBUG] current Time 1065ms to new time 1069.1666666666667ms
[DEBUG] current Time 1061.6666666666667ms to new time 1065.8333333333335ms
[DEBUG] current Time 1065ms to new time 1069.1666666666667ms
[DEBUG] current Time 1061.6666666666667ms to new time 1065.8333333333335ms

为什么这该死的东西无法停留在 1186ms 并从那里前进?为什么它坚持要一直回到 1061ms,然后只是在 1061ms 和 1065ms 之间切换?这么多的问题。但我希望你能帮助我。

4

0 回答 0