如何将视频作为文件从本地URL(macOS)复制到NSPasteboard



我有一个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)
}
}

最新更新