2010-05-11 15 views
7

iTunes'a film eklemek için Scripting Bridge kullanmak istiyorum. Ve tercihen bir 'müzik videosu' ve 'film' arasında seçim yapmama izin verin. Hem Objective-C hem de AppleScript'i biliyorum, o kadar zor olmayacağını düşündüm ama anlayamıyorum. NSAppleScript'i bunun için nasıl kullanacağımı biliyorum ama 10.5 veya daha sonra hedef alıyorum ve Scripting Bridge'in NSAppleScript'i göz ardı ettiğini okudum. Bu doğru mu? Komut Dosyası Köprüsünü kullanarak iTunes'a film ekleyin

Elimde sadece

sen çok tüm, gördüğünüz gibi, olduğu

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

olduğunu.

cevap

1

Sen (.sdef) dosyası (eğer sdef programını kullanarak alabilirsiniz olan) iTunes' komut dosyası tanımından bir başlık dosyası oluşturmak için "komut dosyası tanımı işlemci" (sdp) programı kullanmalısınız:

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

Bu Size iTunes.h adında bir dosya vereceğim. Ardından, bu başlığı projenize dahil edersiniz ve iTunes komut dosyası köprü arayüzünün ne sunduğunu görmek için bunu okuyun.

Eğer betik köprüsüyle bunu yapamayacakmış gibi görünüyorsanız (mümkün - bir uygulamanın AppleScript arabirimi üzerinden yapılabilecek her şey komut dosyası köprüsü üzerinden de yapılabilir), sadece devam edin ve bunun yerine bunu yapmak için bir AppleScript yazın ve sonra programınızda NSAppleScript ile yürütün.

+0

Ben zaten sdp şeyi yaptım. Ve bence ihtiyacım olan şey ekliyor: to:. Ancak bunun hakkında bir doküman yok. – Jeroen

+0

Komut dosyası köprüsü üzerinden yapılamazsa, [appscript] (http://appscript.sourceforge.net/) veya sadece eski bir AppleScript'i deneyebilirsiniz. – hasseg

+0

Bu kesinlikle Scripting Bridge ile mümkündür: Python ile birçok kez benzer şeyler yaptım. – wbg

10

Adım 1. iTunes.h başlık dosyası oluşturun: İkinci parametre için

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

, bu listeleri alır:

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

Adım 2. Bir medya dosyası eklemek için kod aşağıdaki gibi görünüyor nesne (veya daha önce belirtildiği gibi sıfır). Bir iTunesPlaylist * nesnesinin bir örneğini bazı yollarla getirdikten sonra (gereksinimlerinize bağlı olarak birkaç tane vardır), ikinci parametre olarak iletebilirsiniz.

İlgili konular