iTunes Scripting Bridge - 如何播放特定曲目

时间:2010-08-27 21:43:26

标签: macos applescript itunes scripting-bridge

我正在编写一个使用脚本桥来控制iTunes的mac应用程序。我生成了头文件iTunes.h,SBApplication对象可以告诉我各种奇妙的事情。

然而,这些命令似乎非常有限。有一个'playpause'功能,但我认为没办法这样做

// iTunes是我的SBApplication对象 [iTunes play:@“Smoke On The Water”];

这样做的Applescript非常简单

告诉iTunes播放歌曲名称

这个Scripting桥应该是我在Objective C中控制脚本化对象的超酷和强大的方式,所以我在这里缺少什么?

2 个答案:

答案 0 :(得分:6)

您应该发送消息" playOnce:(BOOL)"在您的iTunesTrack对象上。这是一个例子:

iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
iTunesPlaylist *playlist = [iTunes currentPlaylist];
SBElementArray *tracks = [playlist tracks];
[[tracks objectAtIndex:0] playOnce:YES];

这将播放当前播放列表中的第一首曲目。适应你的情况。

答案 1 :(得分:1)

在网络上搜索等效的AppleScript代码段,或在AppleScript编辑器应用中查看iTune的脚本字典。然后将生成的脚本转换为脚本桥接命令。可能的AppleScript等价物是:

tell application "iTunes"
    play first item of (search first library playlist for "Smoke On The Water")
end tell

P.S。您可能会发现objc-appscript更容易使用(或者,如果不需要Objective C,它的表兄弟,py-appscript或rb-appscript)。