gpt4 book ai didi

swift - 在 AVPlayer.play() 之前使用 AVPlayer.seek() 时更新 AVPlayer 的显示帧

转载 作者:行者123 更新时间:2023-12-04 13:53:41 27 4
gpt4 key购买 nike

我有一个 AVPlayer当我到达持续时间结束时,我想回到开始,但我不想重新启动AVPlayer .

//Do something when video ended
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(note:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)

@objc func playerDidFinishPlaying(note: Notification) {
self.restartVideo()
}

func restartVideo() {
self.player.seek(to: .zero, toleranceBefore: .zero, toleranceAfter: .zero)
}
从这里,我可以简单地 .play() AVPlayer它会从头开始播放。但是,在我之前 .play() , .seek()功能不会向用户表明它已重置回开始。在我执行 .play() 之前,AVPlayer 帧实际上不会转换回第一帧。 .
问题:
我如何获得 AVPlayer更改使用 .seek() 时向用户显示的实际帧功能?

最佳答案

这部分代码是正确的。可能是别的什么东西叫它寻求结束?
您可以使用完成处理程序来查看搜索是否被中断。并设置一个断点以查看您所在的队列,以确保您在主线程上。如果发生第二次搜索操作,您将在完成处理程序中得到一个错误的结果。此外,尝试在搜索后设置断点以检查 UI 是否响应。

    self.player.seek(to: .zero, toleranceBefore: .zero, toleranceAfter: .zero) { success in
print("seek finished success = ", success)
}

关于swift - 在 AVPlayer.play() 之前使用 AVPlayer.seek() 时更新 AVPlayer 的显示帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66413918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com