【问题标题】:Document file path unreachable in swiftswift中无法访问的文档文件路径
【发布时间】:2016-07-07 21:15:43
【问题描述】:

我目前正在开发一个小型 swift 应用程序,我正在将一些视频记录存储在应用程序的文档文件夹中。我想稍后再取回这些。我已经得到了一个这样的文件位置数组:

file:///private/var/mobile/Containers/Data/Application/6C462C4E-05E2-436F-B2E6-F6D9AAAC9361/Documents/videorecords/196F9A75-28C4-4B65-A06B-6111AEF85F01.mov

现在我想使用这样的文件位置来创建带有第一帧的缩略图,并使用以下代码将其连接到我的 imageview:

func createVideoStills() {
    for video in directoryContents {
        print("\(video)")
        do {
            let asset = AVURLAsset(URL: NSURL(fileURLWithPath: "\(video)"), options: nil)
            let imgGenerator = AVAssetImageGenerator(asset: asset)
            imgGenerator.appliesPreferredTrackTransform = true
            let cgImage = try imgGenerator.copyCGImageAtTime(CMTimeMake(0, 1), actualTime: nil)
            let uiImage = UIImage(CGImage: cgImage)
            videoCell.imageView = UIImageView(image: uiImage)
            //let imageView = UIImageView(image: uiImage)
        } catch let error as NSError {
            print("Error generating thumbnail: \(error)")
        }
    }
}

第一次打印给了我如上所述的路径。但是 AVURLAsset 不喜欢这个路径,因为它会吐出以下错误:

生成缩略图时出错:Error Domain=NSURLErrorDomain Code=-1100 “在此服务器上找不到请求的 URL。” UserInfo={NSLocalizedDescription=未找到请求的 URL 此服务器。,NSUnderlyingError=0x14ee29170 {错误 Domain=NSPOSIXErrorDomain Code=2 "没有这样的文件或目录"}}

这很奇怪,因为它就在那里。有关如何修复/解决此问题的任何解决方案?

亲切的问候,

沃特

【问题讨论】:

    标签: swift documents video-thumbnails


    【解决方案1】:

    print("\(video)") 的输出不是文件 path,而是文件 URL 的字符串表示形式。您需要使用init(string:) 而不是init(fileURLWithPath:) of NSURL

    看看你得到了什么:

                let asset = AVURLAsset(URL: NSURL(string: video), options: nil)
    

    (不必要的字符串插值会产生一些没有错误的意外结果——比如得到“Optional(...)”,所以你应该避免。)

    【讨论】:

    • 啊现在对我来说很有意义。我不必要地转换它。我已经有了一个带有 NSURL 的数组。所以没必要投。我真傻。我知道我正在从 URL 中制作一个字符串表示形式。我所要做的就是:let asset = AVURLAsset(URL: video, options: nil) 感谢您为我指明正确的方向!
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多