错误:此媒体不支持该操作 - Swift

时间:2017-08-20 04:12:06

标签: swift nsfilemanager avasset avassetexportsession

我正在尝试使用此代码在Apple TV上保存视频:

func playerItemDidReachEnd(_ notification: Notification) {

    if notification.object as? AVPlayerItem  == player.currentItem {
        player.seek(to: kCMTimeZero)
        let exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)
        let filename = "video.mp4"
        let documentsDirectory = FileManager.default.urls(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last!

        let outputURL = documentsDirectory.appendingPathComponent(filename)
        exporter?.outputURL = NSURL.fileURL(withPath: outputURL.path)
        exporter?.outputFileType = AVFileTypeMPEG4
        let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
        let url = NSURL(fileURLWithPath: path)
        let filePath = url.appendingPathComponent(filename)?.path
        let fileManager = FileManager.default

        if fileManager.fileExists(atPath: filePath!) {

        } else {
            exporter?.exportAsynchronously(completionHandler: {

                print(exporter?.status.rawValue)
                print(exporter?.error)
            })
        }
    }
}

我也将此作为资产使用,并且不想更改资产:

lazy var asset: AVURLAsset = {

         var asset: AVURLAsset = AVURLAsset(url: self.url)

         asset.resourceLoader.setDelegate(self as? AVAssetResourceLoaderDelegate, queue: DispatchQueue.main)

         return asset
         }()

但是我收到了这个错误。它是什么意思,我该如何解决?谢谢:))

Optional(Error Domain=AVFoundationErrorDomain Code=-11838 "Operation Stopped" UserInfo={NSUnderlyingError=0x608000443300 {Error Domain=NSOSStatusErrorDomain Code=-12109 "(null)"}, NSLocalizedFailureReason=The operation is not supported for this media., NSLocalizedDescription=Operation Stopped})

0 个答案:

没有答案