AVPlayer removeTimeObserver 使应用程序崩溃 (swift 3)

AVPlayer removeTimeObserver crashes app (swift 3)

我将全局变量时间观察器设置为:

self.timeObserver = self.avPlayer?.addPeriodicTimeObserver(forInterval: CMTime(seconds: 0.5, preferredTimescale: CMTimeScale(NSEC_PER_SEC)), queue: DispatchQueue.main) { [weak self] time in
      guard let weakSelf = self else {
          return
      }
      // updating label with time
}

当视图关闭时,我调用:

if self.avPlayer != nil {
   self.avPlayer!.removeTimeObserver(self.timeObserver)
}

但这会使应用程序崩溃并提示:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'You did not supply a reference to an object returned by either -addPeriodicTimeObserverForInterval:queue:usingBlock: or -addBoundaryTimeObserverForTimes:queue:usingBlock:'

请告诉我我做错了什么?谢谢

您必须打开 self.timeObserver

removeTimeObserver() 接收 Any 对象,但您传入的是 Any?,这会导致崩溃。