简体   繁体   English

firebase 上传错误 Domain=NSItemProviderErrorDomain Code=-1000 "无法加载类型的表示

[英]firebase upload error Domain=NSItemProviderErrorDomain Code=-1000 "Cannot load representation of type

So I set up a PHPickerViewController , and it uploads the videos from the camera roll (slowly ugh, but it does it).所以我设置了一个PHPickerViewController ,它从相机胶卷上传视频(慢慢地,但它确实做到了)。 Sometimes, the video uploads.有时,视频会上传。 Other times, I get this error (especially with longer videos), and I'm unsure why:其他时候,我会收到此错误(尤其是较长的视频),我不确定原因:

Error Domain=NSItemProviderErrorDomain Code=-1000 "Cannot load representation of type com.apple.quicktime-movie" UserInfo={NSLocalizedDescription=Cannot load representation of type com.apple.quicktime-movie}错误域=NSItemProviderErrorDomain 代码=-1000“无法加载 com.apple.quicktime-movie 类型的表示” UserInfo={NSLocalizedDescription=无法加载 com.apple.quicktime-movie 类型的表示}

Here is my code:这是我的代码:

func uploadVideo(videoURL: URL)
    {
        let storage = Storage.storage()
        let storageRef = storage.reference()
        
        let videoRef = storageRef.child("rPosts/\(uid!)/\(fileID).mov")
        let metadata = StorageMetadata()
        metadata.contentType = "video/quicktime"
        
        var videoData: Data = Data()
        
        do
        {
            videoData = try Data(contentsOf: videoURL)
        }
        catch
        {
            print(error.localizedDescription)
            return
        }
        
        videoRef.putData(videoData, metadata: metadata)
        { (metaData, error) in
            guard error == nil else
            {
                self.errorLabel.text = error!.localizedDescription
                return
            }
            
            print("greenchecktimeebabyyyy AHHHH")
        }
    }

extension postingRViewController: PHPickerViewControllerDelegate
{
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
            picker.dismiss(animated: true, completion: nil)

            for result in results {
                
                print("made result")
                var went = false
                
                result.itemProvider.loadFileRepresentation(forTypeIdentifier: "com.apple.quicktime-movie")
                { videoURL, error in
                    result.itemProvider.loadFileRepresentation(forTypeIdentifier: "com.apple.quicktime-movie") { videoURL, error in
                        
                        assert(Thread.isMainThread == false)

                        let directory = NSTemporaryDirectory()
                        let fileName = NSUUID().uuidString.appending(".mov")
                        
                        print("loading")
                        went = true

                        if let videoURL = videoURL,
                           let copiedURLFile = NSURL.fileURL(withPathComponents: [directory, fileName]) {
                            try! FileManager.default.copyItem(at: videoURL, to: copiedURLFile)
                            DispatchQueue.main.async {
                                // the videourl is deleted. Only copiedURLFile exists
                                // upload_to_firebase(video url)
                                self.uploadVideo(videoURL: copiedURLFile)
                                print("uploaded to the cloud")

                                // after the video is presented or the file uploaded, delete copiedURLFile
                            }
                        }
                        else { print(error!) }
                }
            }
        }

The error is saying that NSItemProvider cannot load your video file.错误是说NSItemProvider无法加载您的视频文件。 When loading, you're setting the identifier to com.apple.quicktime-movie which refers to .mov files.加载时,您将标识符设置为com.apple.quicktime-movie引用.mov文件。

With that in mind, perhaps you're trying to load a .mp4 .考虑到这一点,也许您正在尝试加载.mp4 Try to use Apple's UniformTypeIdentifiers framework, so your identifier would be: UTType.movie.identifier .尝试使用Apple 的UniformTypeIdentifiers框架,因此您的标识符将是: UTType.movie.identifier

Note: don't forget to import UniformTypeIdentifiers注意:不要忘记import UniformTypeIdentifiers

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Firebase-iOS 存储错误代码 -13000:无法完成上传 - Firebase-iOS storage error code -13000: Cannot finalise upload 错误域=NSURLErrorDomain 代码=-1017 “无法解析响应” Firebase 存储 iOS - Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" Firebase Storage iOS Firebase存储上载错误:FIRStorageErrorDomain代码= -13000 - Firebase Storage Upload Error: FIRStorageErrorDomain Code=-13000 错误域= AVFoundationErrorDomain代码= -11835“无法打开” - Error Domain=AVFoundationErrorDomain Code=-11835 “Cannot Open” “无法转换类型的值”-Firebase Swift中的错误 - “cannot convert value of type” - error in Firebase Swift 无法加载启动URL并显示错误:错误Domain = TVMLKitErrorDomain Code = 3“(null)” - Failed to load launch URL with error: Error Domain=TVMLKitErrorDomain Code=3 “(null)” 错误域=NSCocoaErrorDomain 代码=257 无法打开文件“” - Firebase - Error Domain=NSCocoaErrorDomain Code=257 The fil “” could not be opened - Firebase 加载失败,错误为 Error Domain=NSURLErrorDomain Code=-999“已取消” - load failed with error Error Domain=NSURLErrorDomain Code=-999 "cancelled" FireBase存储下载错误域= FIRStorageErrorDomain代码= -13000 - FireBase Storage Download Error Domain=FIRStorageErrorDomain Code=-13000 Firebase错误:“无法分配用户类型? 输入用户名?” - Firebase error: “cannot assign type User? to type User?”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM