我正在关注这个 tutorial解释了如何创建 AVPlayer 并将其与 Swift UI 一起使用。我在搜索栏变成视频播放器进度条的部分。
因此,在该部分之后,我编写了教程中显示的代码,但在下面这行代码中,
player.addPeriodicTimeObserver(forInterval: CMTime(seconds: 0.5, preferredTimescale: 600), queue: nil) { time in
guard let item = self.player.currentItem else{
return
}
self.seekPos = time.seconds / item.duration.seconds
}
time in
之前的括号带有红色下划线,我收到以下错误:
Escaping closure captures mutating 'self' parameter
有办法解决这个问题吗?我希望 slider 成为视频进度条。 addPeriodicTimeObserver
位于我的 struct
内的 init
中。
编辑:我使用的教程是针对 iOS 的,但我正在为 macOS 开发。我刚刚进行了更改,因此该教程中的代码适用于 macOS。
最佳答案
试试这个
player.addPeriodicTimeObserver(forInterval: CMTime(seconds: 0.5, preferredTimescale: 600), queue: nil) {[self] time in
guard let item = self.player.currentItem else{
return
}
self.seekPos = time.seconds / item.duration.seconds
}
希望能帮到你。
关于swift - addPeriodicTimeObserver 生成一个转义闭包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56881562/