没有看到你的实现很难说。无论如何,这是我可以根据我对 FairPlay 的经验分享的内容。我假设你的游戏可以播放非加密视频,所以它很好地实施和工作。
如果你成功进入“finishLoading”部分,在另一边(在所有这些发生之前),你需要在播放器上注册为“currentItem.status”的观察者。就像是:
player.addObserver(self, forKeyPath: "currentItem.status", options: NSKeyValueObservingOptions.new, context: nil);
因此,在某个阶段,您将收到 observeValueForKeyPath 回调,您需要检查发生了什么:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
// Do any other KVO-related checks... and the following:
if let status = self.player.currentItem?.status {
switch (status) {
case .failed:
// Something went wrong!
self.itemFailed()
case .readyToPlay:
// Item is ready to play, so just .play() it!
self.itemReadyToPlay()
case .unknown:
// Oh-oh.
self.itemUnknown()
}
}
}
如果您已经处于此阶段,请告诉我,您会遇到什么错误。
(这里分享的内容不是关于 FairPlay 的具体内容,而是关于加载资产的更笼统的内容,它不会违反任何许可协议)