0

一个月以来,我一直在尝试创建一个应用程序来检测 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 data ],我有一个 NSContreteData 和一个 iTunesItem 下面。但我不知道如何获得这个 iTunesItem (我尝试了一个演员......)并且我设法得到它,我能用它做什么来拥有一个 iTunesTrack 。

4

1 回答 1

0

在 applescript 和 obj-c 之间来回转换字符串很容易。所以我的建议是只来回传递字符串。例如,你不能用 cocoa 中的“轨道”做任何事情,所以不要把它传回去,因为你实际上并不需要它。而是传回曲目名称。或者将持久 id 作为文本传回。或者传回“真”意味着你找到它或“假”意味着你找不到它。

然后在可可中获取applescript结果的NSString,只需使用[result stringValue]。

于 2010-08-09T09:26:25.977 回答