来自 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”太长,将被截断