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

时间:2015-11-26 23:42:32

标签: ios swift video reverse avplayer

我有一个录制的视频片段,我想要反向播放。

前进很好但是一旦我寻找到视频文件的结尾并将播放速率设置为-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()

如果我不寻求结束并尝试更改速率以将其设置为反向播放,则播放效果正常。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

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

这可能是个错误吗?

无论如何,在播放视频请求后立即设置速率会产生预期效果。