在IOS 9上使用AVPlayer和Swift反向播放视频
我有一个录制的视频剪辑,我想反向播放 向前播放可以,但只要我搜索到视频文件的结尾并将播放速率设置为-1.0,视频剪辑就会搜索到剪辑的结尾(我在视频上方的时间线栏中看到),但不会反向播放 在我展示播放器视图控制器后,我检查它是否准备好使用:在IOS 9上使用AVPlayer和Swift反向播放视频,ios,swift,video,reverse,avplayer,Ios,Swift,Video,Reverse,Avplayer,我有一个录制的视频剪辑,我想反向播放 向前播放可以,但只要我搜索到视频文件的结尾并将播放速率设置为-1.0,视频剪辑就会搜索到剪辑的结尾(我在视频上方的时间线栏中看到),但不会反向播放 在我展示播放器视图控制器后,我检查它是否准备好使用: print("readyForDisplay = \(playerViewController.readyForDisplay)") 这告诉我,一切都准备好了 我检查是否可以反向播放: let reversePlay = player
print("readyForDisplay = \(playerViewController.readyForDisplay)")
这告诉我,一切都准备好了
我检查是否可以反向播放:
let reversePlay = playerViewController.player!.currentItem?.canPlayReverse
print("reversePlay = \(reversePlay)")
这是真的
然后,我寻找到剪辑的结尾,并将播放速率设置为-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()
如果我不寻求结束并尝试更改速率以将其设置为反向播放,则播放效果很好
playerViewController.player!.seekToTime(playerViewController.player!.currentItem!.asset.duration)
playerViewController.player!.rate = -1.0
我在这里遗漏了什么?我决定在启动视频后添加一些日志记录,发现启动前的速率为-1,启动后的速率为1,因此速率似乎重置为1 这可能是一只虫子吗
无论如何,在请求播放视频后立即设置速率会产生渴望的效果。它是否会因为结束而立即被忽略?你试过