我有一个录制的视频片段,我想要反向播放。
前进很好但是一旦我寻找到视频文件的结尾并将播放速率设置为-1.0,视频片段就会到达剪辑的末尾(我在视频上方的时间轴栏中看到了这一点)但是不会反向发挥。
在我呈现播放器视图控制器后,我会检查它是否可以使用:
print("readyForDisplay = \(playerViewController.readyForDisplay)")
这告诉我所有人都准备好准备比赛。
我检查是否可以进行反向播放:
let reversePlay = playerViewController.player!.currentItem?.canPlayReverse
print("reversePlay = \(reversePlay)")
返回TRUE
然后我寻找剪辑的结尾并将播放速率设置为-1.0以进行反向播放。
playerViewController.player!.seekToTime(playerViewController.player!.currentItem!.asset.duration)
playerViewController.player!.rate = -1.0
我相信我已经准备好了,因为如果我添加以下内容:
let status : AVPlayerItemStatus? = playerViewController.player!.currentItem?.status
if status == AVPlayerItemStatus.ReadyToPlay {
print("Ready to play")
}
它向我显示剪辑已准备好播放,所以我假设寻找到剪辑的结尾(只有2秒长)已经完成。
然后我播放剪辑: playerViewController.player!.play()
如果我不寻求结束并尝试更改速率以将其设置为反向播放,则播放效果正常。
我在这里缺少什么?
答案 0 :(得分:2)
我决定在启动视频后添加一些日志记录,发现启动前的速率为-1,紧接着后的速率为1,因此速率似乎重置为1.
这可能是个错误吗?
无论如何,在播放视频请求后立即设置速率会产生预期效果。