Swift 3 Mac OS Скопируйте аудиофайл в NSPsteboard

Я пытаюсь скопировать аудиофайл на NSPasteboard, чтобы его можно было вставить в другое место на компьютере или в другую программу, например Ableton или Pro Tools. Вот как я получаю URL-адрес файла. (Пример URL-адреса d после приведения к строке: file:///Users/ben/Music/Ableton/User%20Library/Vox.wav )

let url = directoryItems?[tableview.selectedRow].url
let urlString = (url?.absoluteString)! as String

let pb = NSPasteboard.general()
let pasted = pb.writeFileContents(urlString)

Он не копируется на монтажный стол (для вставки установлено значение false), и я не могу найти никаких ресурсов, в которых говорится о записи аудиофайлов на NSPasteboard. Любая помощь будет принята с благодарностью.

Редактировать:

Я также попытался использовать URL-адрес вместо строки и получил тот же результат.

    let pb = NSPasteboard.general()
    let pasted = pb.writeObjects([url as! NSPasteboardWriting])

person Benjamin Porter    schedule 20.03.2017    source источник


Ответы (1)


Чтобы скопировать файл таким образом, чтобы его можно было вставить в Finder, вам нужен URL-адрес файла, а не строка.

Что касается копирования музыки в музыкальный редактор, вероятно, вам потребуется загрузить музыкальный файл в какой-либо формат волновой формы, который можно будет вставить в этот редактор.

person matt    schedule 20.03.2017
comment
Мое последнее изменение касается вашего предложения относительно URL-адреса. - person Benjamin Porter; 20.03.2017
comment
Что ж, я попробовал (то, что я сказал в первом абзаце), и это сработало. Я смог переключиться на Finder и нажать «Правка» > «Вставить», и файл, URL-адрес которого я поместил на монтажный стол, был скопирован в текущую папку. Разве ты не этого хотел? - person matt; 20.03.2017
comment
Кстати, я заметил, что вы забыли сказать clearContents(). - person matt; 20.03.2017
comment
Я просто забыл очистить содержимое, теперь это работает. Спасибо! - person Benjamin Porter; 21.03.2017