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

Play video in reverse using AVPlayer and Swift on IOS 9

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

向前播放没问题,但是一旦我搜索到视频文件的结尾并将播放速率设置为 -1.0,视频剪辑就会搜索到剪辑的结尾(我在上面的时间轴栏中看到了这一点视频)但不反向播放。

呈现播放器视图控制器后,我检查它是否可以使用:

            print("readyForDisplay = \(playerViewController.readyForDisplay)")

这说明一切准备就绪,可以开始玩了。

我检查是否可以反向播放:

let reversePlay = playerViewController.player!.currentItem?.canPlayReverse
        print("reversePlay = \(reversePlay)")

这 returns 正确

然后我搜索到剪辑的末尾并将播放速率设置为 -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()

如果我不追到底并尝试更改速率设置为反向播放,它可以正常播放。

我在这里错过了什么?

我决定在启动视频后添加一些日志记录,发现启动前速率为 -1,启动后立即为 1,因此速率似乎重置为 1。

这可能是一个错误吗?

总之在请求播放视频后立即设置速率达到了想要的效果。