2

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

但是,这些命令似乎非常有限。有一个“播放暂停”功能,但我认为没有办法做到这一点

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

执行此操作的 Applescript 相当简单

告诉 iTunes 播放歌曲名称

这个脚本桥应该是我在Objective C中控制可编写脚本对象的超级酷和强大的方式,所以我在这里错过了什么?

4

2 回答 2

7

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

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

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

于 2011-01-13T00:19:07.287 回答
1

在网络上搜索等效的 AppleScript 片段或在 AppleScript Editor 应用程序中查看 iTune 的脚本字典。然后将生成的脚本翻译成脚本桥接命令。一个可能的 AppleScript 等效项是:

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

PS 您可能会发现objc-appscript更易于使用(或者,如果不需要 Objective C,它的表亲,py-appscript 或 rb-appscript)。

于 2010-08-27T22:02:23.720 回答