我正在编写一个使用脚本桥来控制iTunes的mac应用程序。我生成了头文件iTunes.h,SBApplication对象可以告诉我各种奇妙的事情。
然而,这些命令似乎非常有限。有一个'playpause'功能,但我认为没办法这样做
// iTunes是我的SBApplication对象 [iTunes play:@“Smoke On The Water”];
这样做的Applescript非常简单
告诉iTunes播放歌曲名称
这个Scripting桥应该是我在Objective C中控制脚本化对象的超酷和强大的方式,所以我在这里缺少什么?
答案 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)。