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

问题描述 投票:0回答:2

我有一个录制的视频剪辑,我想倒放。

向前播放没问题,但一旦我搜索到视频文件的末尾并将播放速率设置为 -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()

如果我不寻找到最后并尝试更改速率以将其设置为反向播放,那么它会播放得很好。

我在这里缺少什么?

ios swift video reverse avplayer
2个回答
2
投票

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

这可能是一个错误吗?

无论如何,在请求播放视频后立即设置速率具有理想的效果。


0
投票

您应该将

defaultRate
设置为 1

© www.soinside.com 2019 - 2024. All rights reserved.