2010-05-11 60 views
7

我想使用Scripting Bridge將影片添加到iTunes。最好讓我在「音樂視頻」和「電影」之間進行選擇。我知道Objective-C和AppleScript,所以我認爲它不會那麼難,但我無法弄清楚。我知道我將如何使用NSAppleScript,但我的目標是10.5或更高版本,並閱讀Scripting Bridge廢棄NSAppleScript。是對的嗎?使用Scripting Bridge將影片添加到iTunes

我的一切是

iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier: @"com.apple.iTunes"]; 

這是,你可以看到,沒有多少可言。

回答

1

你應該使用「腳本定義處理器」(sdp)程序來生成來自iTunes的腳本定義一個頭文件(.sdef)文件(你可以開始使用sdef程序):

sdef /Applications/iTunes.app | sdp -fh --basename "iTunes" 

這會給你一個叫做iTunes.h的文件。然後,將該標題包含到項目中,並通讀它以查看iTunes腳本橋接器提供的內容。

如果看起來您無法通過腳本橋執行此操作(有可能 - 並非所有可通過應用程序的AppleScript界面​​完成的操作都可以通過腳本橋完成),那麼繼續並寫一個AppleScript來代替它,然後在你的程序中用NSAppleScript執行它。

+0

我已經做了sdp的事情。我認爲我需要的方法是:添加:。但是沒有關於它的文檔。 – Jeroen 2010-05-12 07:08:28

+0

如果不能通過腳本橋完成,可以嘗試[appscript](http://appscript.sourceforge.net/)或者只是一個普通的舊AppleScript代替。 – hasseg 2010-05-12 11:14:35

+0

這絕對可以通過腳本橋:我用Python做了很多次類似的事情。 – wbg 2010-06-05 21:38:07

10

步驟1.生成iTunes.h頭文件:

sdef /Applications/iTunes.app | sdp -fh --basename "iTunes" 

步驟2.添加媒體文件的代碼如下所示:

NSString* sourceMediaFile = ...; 
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"]; 
iTunesTrack * track = [iTunes add:[NSArray arrayWithObject:[NSURL fileURLWithPath:sourceMediaFile]] to:nil]; 
NSLog(@"Added %@ to track: %@",sourceMediaFile,track); 
0

對於第二個參數,它需要一個播放列表對象(或前面提到的零)。一旦你通過某種方式(取決於你的需要有幾個)獲取了一個iTunesPlaylist *對象的實例,你可以將它作爲第二個參數傳遞。

相關問題