在IOS 9上使用AVPlayer和Swift反向播放video

我有一个录制的video剪辑,我想反向播放。

向前播放是好的,但只要我寻求video文件的结尾,并设置回放速度为-1.0的video剪辑寻求到剪辑的结尾(我看到这在video上方的时间线栏),但确实不能反向播放。

在我介绍播放器视图控制器之后,我检查它是否准备好使用:

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() 

如果我不追求最终目标,并试图改变比赛速度来使其反转,那么它就会起作用。

我在这里错过了什么?

我决定在启动video后添加一些日志logging,发现启动前的速率为-1,之后立即显示速率为1。

这可能是一个错误?

无论如何,在请求播放video之后立即设置费率具有期望的效果。

    Interesting Posts