2010-08-27 51 views
2

我正在寫一個使用腳本橋來控制iTunes的Mac應用程序。我已經生成了頭文件iTunes.h,並且SBApplication對象可以告訴我各種奇妙的事情。iTunes Scripting Bridge - 如何播放特定曲目

但是,這些命令似乎非常有限。有一個'playpause'功能,但我看不到這樣做

// iTunes是我的SBApplication對象 [iTunes play:@「Smoke On The Water」];

的AppleScript的做到這一點是相當簡單的

告訴iTunes中播放SONGNAME

這個腳本橋被認爲是超級冷靜和強大的方式對我來說,控制目標C編寫腳本的對象,所以我在這裏錯過了什麼?

回答

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)。

+0

+1表示整理原始的AppleScript並從那裏移植。這是找到這些各種腳本橋(在該定義中包含py-appscript)問題的解決方案的最佳方式。 – 2010-08-29 14:50:08

+1

我不確定你的意思是「將結果腳本翻譯成腳本橋命令」。我瞭解示例applescript,我只是不知道如何使用腳本橋執行applescript。 – 2010-09-06 22:18:17

5

您只需在iTunesTrack對象上發送消息「playOnce:(BOOL)」即可。這裏有一個例子:

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

這將播放當前播放列表中的第一首曲目。適應你的情況。

相關問題