AVPlayer removeTimeObserver崩溃app(swift 3)

vir*_*ss8 1 key-value-observing ios avplayer swift swift3

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

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
}
Run Code Online (Sandbox Code Playgroud)

当视图关闭时,我打电话给:

if self.avPlayer != nil {
   self.avPlayer!.removeTimeObserver(self.timeObserver)
}
Run Code Online (Sandbox Code Playgroud)

但是那个应用程序崩溃说:

***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'您没有提供对-addPeriodicTimeObserverForInterval返回的对象的引用:queue:usingBlock:或-addBoundaryTimeObserverForTimes:queue:usingBlock:'

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

小智 8

你必须打开包装self.timeObserver.

removeTimeObserver()接收Any对象,但是你传入Any?,导致崩溃.