我正在尝试一个月后创建一个应用程序来检测iTunes的当前曲目以标记歌曲并计算bpm(通过录音按钮)
当用户修改标签的其中一个字段时,该轨道将被锁定在应用程序中:这意味着:如果iTunes currentTrack发生更改,我的应用程序将保留在上一个轨道上。
我的问题:我有上一首曲目的持久ID。我创建了一个applescript来获取与此持久ID相对应的轨道。但我没有找到如何在应用程序的可可部分获得此轨道!!!!
这里是剧本:
on open param
tell application "iTunes"
set trackItems to (every track of playlist "Library" whose persistent ID is param)
repeat with aTrack in trackItems
return aTrack
end repeat
return null
end tell
end open
在可可方面,
NSAppleEventDescriptor *desc = [findTrackWithPersistentIDScript runWithParameters: [NSArray arrayWithObjects: lockPersistentID ,nil]];
我可以用NSAppleEventDescriptor做什么?我想要一个iTunesTrack或iTunesFileTrack。我通过显示对话框确认轨道已找到
感谢阅读和帮助!
PS:当我调试时,如果我做[desc数据],我有一个NSContreteData,在iTunesItem下面。但我不知道如何获得这个iTunesItem(我尝试了演员......)我设法得到它,我能用它做一个iTunesTrack。
答案 0 :(得分:0)
在applescript和obj-c之间来回转换字符串很容易。所以我的消化就是只来回传递弦乐。例如,你无法对可可的“轨道”做任何事情,所以不要把它传回去,因为你还是不需要它。改为回传曲目名称。或者将持久性id作为文本传回。或者传回“真实”意味着你发现它或“假”意味着你找不到它。
然后在cocoa中获取applescript结果的NSString只需使用[result stringValue]。