我想用 AVPlayer 显示 .m3u8 内容 .

它适用于视频长度<5分钟的情况 .

当视频长约1小时时,它会在 KVO 观察者中导致错误 .

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String: AnyObject]?, context: UnsafeMutablePointer<Void>)
{
    guard context == &playerViewControllerKVOContext else
    {
        super.observeValueForKeyPath(keyPath, ofObject: object, change: change, context: context)
        return
    }

    if keyPath == "player.currentItem.status"
    {
        var newStatus = AVPlayerItemStatus.Unknown

        if let newStatusAsNumber = change?[NSKeyValueChangeNewKey] as? NSNumber
        {
            newStatus = AVPlayerItemStatus(rawValue: newStatusAsNumber.integerValue)!
        }

        if newStatus == .Failed
        {
            // We are here when video is ≈1 hour long.
            print("\(avplayer.currentItem?.error)") // avplayer is an instance of AVPlayer
        }
    }
}

我收到以下错误文字:

可选(错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = {NSUnderlyingError = 0x60000065f980 ,NSLocalizedFailureReason =发生未知错误(-12643) ),NSLocalizedDescription =操作无法完成})

AVFoundationErrorDomain Code=-11800Unknown Error .

基本错误是 NSOSStatusErrorDomain Code=-12643 .

我找不到 -12643 错误的任何描述 .

有任何想法吗?