问题描述
我在文件夹中保存了一个 mp4 视频。
如何将视频从我的应用程序复制为文件,以便将其粘贴到 Telegram 或 Finder 等其他平台中以将其粘贴为新文件?
目前这是我编写的函数,但它仅将视频粘贴到 iMessage 文本字段中。
func copyVideo() {
guard let url = TaskManager.shared.lastVideoURL else { return }
do {
let data = try Data(contentsOf: url)
let pasteboard = NSPasteboard.general
pasteboard.declareTypes([kUTTypeMPEG4 as NSPasteboard.PasteboardType],owner: nil)
print(pasteboard.setData(data,forType: kUTTypeMPEG4 as NSPasteboard.PasteboardType))
} catch {
print("error getting data from video \(error)")
}
}
我做错了什么?
解决方法
经过一些测试,我找到了解决方案。
此方法将视频复制为文件:
func copyVideo() {
guard let url = TaskManager.shared.lastVideoURL else { return }
if let fileRefURL = (url as NSURL).fileReferenceURL() as NSURL? {
print(fileRefURL)
let pasteboard = NSPasteboard.general
pasteboard.clearContents()
pasteboard.writeObjects([fileRefURL])
pasteboard.setString(fileRefURL.relativeString,forType: .fileURL)
}
}