You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 6中AVPlayer添加periodicTimeObserver是否会引发内存泄漏?

AVPlayer周期性时间观察者的并发警告与内存泄漏问题
  • 应用基于AVPlayer实现播放进度监听,采用periodic time observer方案,代码参考苹果官方文档实现。
  • 开启「complete」并发检查后,player.addPeriodicTimeObserver调用处出现警告;若将包含该方法的类标记为@Sendable,会直接触发报错:
    并发报错截图
  • 应用存在严重内存泄漏问题,播放过程中内存占用大幅增长,怀疑该问题与periodic time observer的使用有关:
    内存增长截图

核心代码实现

private func addPeriodicTimeObserver() {
    guard let player = player else { return }
    let interval = CMTime(value: 1, timescale: 24)
    timeObserverToken = player.addPeriodicTimeObserver(forInterval: interval,
                                                      queue: .main) { [weak self] time in
        guard let self = self else { return }
        self.onTimeUpdate?(time)
    }
}

内容的提问来源于stack exchange,提问作者user1542125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:27:06