来自 String 的 NSURL 被截断,UIVideoEditorController 的视频路径上的点 Swift 2 iOS 8

Posted

技术标签:

【中文标题】来自 String 的 NSURL 被截断,UIVideoEditorController 的视频路径上的点 Swift 2 iOS 8【英文标题】:NSURL from String gets truncated, dots on the UIVideoEditorController's video path Swift 2 iOS 8 【发布时间】:2015-12-04 14:02:18 【问题描述】:

我无法获得已编辑视频路径的完整 NSURL,这是我的代码:

// GLOBAL VARIABLES
    var videoPath = String()
    var videoURL = NSURL()


// Video Editor delegate
func videoEditorController(editor: UIVideoEditorController, didSaveEditedVideoToPath editedVideoPath: String) 
        if saveToPhotoLibrary 
            if UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(editedVideoPath) 
                UISaveVideoAtPathToSavedPhotosAlbum(editedVideoPath, self, nil, nil)
            
            print("SAVED TO PHOTO LIBRARY AT: \(editedVideoPath)")
         

        videoPath = editedVideoPath
        videoURL = NSURL(string: editedVideoPath)!
        print("VIDEO PATH: \(videoPath)")
        print("VIDEO URL: \(videoURL)")
        dismissViewControllerAnimated(true, completion: nil)
    

问题是我无法从 videoPath 字符串中获取完整的 NSURL,这是 XCode 控制台打印的内容:

VIDEO PATH: /private/var/mobile/Containers/Data/Application/D7536AD4-353A-48CA-8F31-2D78F9F10730/tmp/trim.BFF7D20F-138A-46A2-A58E-76736AF7343E.MOV
VIDEO URL: /private/var/mobile/Containers/Data/Application/D7536AD4-353A-48CA-8F31-2D78F9F10730/tmp/trim.BFF7D20F-138A-46A2-A58E-76 ... 343E.MOV

如您所见,VIDEO URL 几乎在其末尾出现点,而 VideoPath 字符串是正确的。这是我在使用 NSURL 语句之前从未遇到过的一个非常连贯的问题:

    videoURL = NSURL(string: editedVideoPath)!

由于我需要将编辑后的视频上传到网络服务器,因此我需要其完整正确的网址。我认为是 print() 问题,但如果我尝试获取 videoURL XCode 告诉我它是 nil,所以 print()函数说实话:(

我在***上到处搜索,没有成功。

希望有人可以提供帮助, 谢谢!

【问题讨论】:

如果 URL 很长,这些点仅在打印时出现在 URL 的表示中。 URL 本身没问题。相关:***.com/a/32820623/2227743 这将是一个好消息,那么我不知道为什么,如果我尝试将 videoURL 转换为 NSData 它给了我 = nil let videoData = NSData(contentsOfUrl: videoURL)! 嗯...你试过NSURL(fileURLWithPath: editedVideoPath)吗?我刚刚意识到您使用的是文件路径,而不是网络路径。 是的,它有效。希望不是你对我的问题投了反对票,反正这是关键,谢谢! 没问题。 ;) 不客气。 【参考方案1】:

由于您使用的是文件路径,因此您想使用

NSURL(fileURLWithPath: editedVideoPath)

而不是

NSURL(string: editedVideoPath)

【讨论】:

以上是关于来自 String 的 NSURL 被截断,UIVideoEditorController 的视频路径上的点 Swift 2 iOS 8的主要内容,如果未能解决你的问题,请参考以下文章

字符串“abcdfghrdfthgywdcgrt”太长,将被截断

INUIAddVoiceShortcutButton 的文本被截断

来自字符串的 NSURL 不起作用

nginx 返回数据被截断

Twitter api 文本字段值被截断

来自 NSBundle 路径的 NSURL 返回 nil