AppleScriptObjC: невозможно создать объект AVMIDIPlayer
У меня возникли проблемы с небольшим количеством кода AppleScript ObjC. Проблемная строка, кажется, когда я инициализирую объект AVMIDIPlayer (3-я строка повтора). Возвращается с ошибкой -1 (AVAudioEngineManualRenderingStatusError). Следующая строка завершается неудачно, потому что у объекта Nil нет методов.
Вот соответствующие биты:
property NSURL : a reference to current application's NSURL
property AVMIDIPlayer : a reference to current application's AVMIDIPlayer
on open (filelist)
repeat with each_item in filelist
set myfile to quoted form of POSIX path of each_item as string
set myMIDIFile to (NSURL's fileURLWithPath:myfile)
set {myMIDIPlayer, theError} to (AVMIDIPlayer's alloc()'s initWithContentsOfURL:myMIDIFile soundBankURL:none |error|:(reference))
myMIDIPlayer's prepareToPlay()
myMIDIPlayer's play(myHandler)
1 ответ
Решение
Причиной проблемы является quoted form of
,
Используйте это только в do shell script
строки для экранирования строки, содержащей пробелы и специальные символы, больше нигде.
set myfile to POSIX path of each_item -- no coercion: POSIX path is string
И обрабатывать theError