2010-05-11 10 views
7

Desidero utilizzare Scripting Bridge per aggiungere un filmato a iTunes. E preferibilmente lasciandomi scegliere tra un "video musicale" e un "film". Conosco sia Objective-C che AppleScript, quindi ho pensato che non sarebbe stato difficile ma non riesco a capirlo. So come usare NSAppleScript ma ho scelto come target 10.5 o successivo e ho letto che NSAppleScript di Scripting Bridge è obsoleto. È giusto?Aggiungi filmato a iTunes utilizzando Scripting Bridge

Tutto quello che ho è

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

Che è, come si può vedere, non molto a tutti.

risposta

1

Si dovrebbe usare il "processore definizione di scripting" del programma (sdp) per generare un file di intestazione dalla definizione di scripting iTunes' (.sdef) file (che si può ottenere utilizzando il programma sdef):

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

Questo Ti darò un file chiamato iTunes.h. Quindi includi quell'intestazione nel tuo progetto e la leggi per vedere cosa offre l'interfaccia del bridge di scripting di iTunes.

Se sembra che non sia possibile farlo con il bridge di scripting (è possibile - non tutto ciò che può essere fatto tramite l'interfaccia AppleScript di un'applicazione può anche essere fatto tramite il bridge di scripting), basta andare avanti e scrivi un AppleScript per farlo, e poi eseguilo nel tuo programma con NSAppleScript.

+0

Ho già fatto la cosa sdp. E penso che il metodo che mi serve sia aggiungere: a:. Ma non c'è documentazione a riguardo. – Jeroen

+0

Se non può essere eseguito tramite il bridge di scripting, puoi provare [appscript] (http://appscript.sourceforge.net/) o semplicemente un semplice vecchio AppleScript. – hasseg

+0

Questo è sicuramente possibile tramite lo Scripting Bridge: ho fatto cose simili molte volte con Python. – wbg

10

Fase 1. Generare iTunes.h file di intestazione:

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

Fase 2. Il codice per aggiungere un file multimediale è simile al seguente:

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

Per il secondo parametro, ci vuole una playlist oggetto (o nulla come precedentemente menzionato). Dopo aver recuperato un'istanza di un oggetto iTunesPlaylist * con alcuni mezzi (ce ne sono diversi a seconda delle esigenze), puoi passarlo come secondo parametro.

Problemi correlati