2010-05-11 7 views
7

Je souhaite utiliser Scripting Bridge pour ajouter un film à iTunes. Et de préférence me laisser choisir entre une «vidéo musicale» et un «film». Je connais à la fois Objective-C et AppleScript, donc je pensais que ce ne serait pas si difficile mais je ne peux pas le comprendre. Je sais comment j'utiliserais NSAppleScript pour cela, mais je cible 10.5 ou plus tard et je lis que Scripting Bridge obsolète NSAppleScript. Est-ce correct?Ajouter un film à iTunes à l'aide de Scripting Bridge

Tout ce que je suis est

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

Ce qui est, comme vous pouvez le voir, pas grand-chose du tout.

Répondre

1

Vous devez utiliser le programme « processeur de définition de script » (sdp) pour générer un fichier d'en-tête de fichier de définition de script iTunes (.sdef) (que vous pouvez obtenir en utilisant le programme sdef):

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

Cette Je vais vous donner un fichier appelé iTunes.h. Ensuite, vous incluez cet en-tête dans votre projet et lisez-le pour voir ce que propose l'interface de script d'iTunes. S'il semble que vous ne pourrez pas faire cela avec le scripting bridge (c'est possible - tout ce qui peut être fait via l'interface AppleScript d'une application peut aussi être fait via le pont de script), allez-y et écrivez un AppleScript pour le faire à la place, puis exécutez cela dans votre programme avec NSAppleScript.

+0

J'ai déjà fait le truc sdp. Et je pense que la méthode dont j'ai besoin est d'ajouter: à:. Mais il n'y a pas de documentation à ce sujet. – Jeroen

+0

Si cela ne peut pas être fait via le pont de script, vous pouvez essayer [appscript] (http://appscript.sourceforge.net/) ou simplement un simple AppleScript à la place. – hasseg

+0

Ceci est certainement possible via le Scripting Bridge: J'ai fait des choses similaires plusieurs fois avec Python. – wbg

10

Étape 1. Générer iTunes.h fichier d'en-tête:

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

Étape 2. Le code pour ajouter un fichier multimédia se présente comme suit:

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

Pour le second paramètre, il faut une playlist objet (ou nul comme mentionné précédemment). Une fois que vous avez récupéré une instance d'un objet iTunesPlaylist * par certains moyens (il y en a plusieurs en fonction de vos besoins), vous pouvez le passer comme second paramètre.