更新这个问题是因为我正在用合金而不是钛构建视图
我正在制作这个 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 之间切换?这么多的问题。但我希望你能帮助我。