Добавить фильм в iTunes, используя Scripting Bridge - PullRequest
7 голосов
/ 11 мая 2010

Я хочу использовать Scripting Bridge, чтобы добавить фильм в iTunes. И желательно позволить мне выбирать между «музыкальным видео» и «кино». Я знаю и Objective-C и AppleScript, поэтому я подумал, что это будет не так сложно, но я не могу понять это. Я знаю, как бы использовать для этого NSAppleScript, но я нацеливаюсь на 10.5 или более позднюю версию и читаю, что Scripting Bridge устарел NSAppleScript. Это верно?

Все, что я получил, это

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

Что, как видите, совсем немного.

Ответы [ 3 ]

10 голосов
/ 30 июня 2010

Шаг 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);
1 голос
/ 12 мая 2010

Вы должны использовать программу «Процессор определения сценариев» (sdp), чтобы создать файл заголовка из файла определения сценариев iTunes (.sdef) (который можно получить с помощью программы sdef):

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

Это даст вам файл с именем iTunes.h. Затем вы включаете этот заголовок в свой проект и читаете его, чтобы увидеть, что предлагает интерфейс моста сценариев iTunes.

Если кажется, что вы не сможете сделать это с помощью моста сценариев (это возможно - не все, что можно сделать через интерфейс AppleScript приложения, можно сделать и через мост сценариев), просто продолжайте и вместо этого напишите AppleScript, а затем выполните это в своей программе с помощью NSAppleScript.

0 голосов
/ 17 июля 2010

Для второго параметра требуется объект списка воспроизведения (или ноль, как упоминалось ранее). После того как вы извлекли экземпляр объекта iTunesPlaylist * с помощью некоторых средств (их может быть несколько в зависимости от ваших потребностей), вы можете передать его в качестве второго параметра.

...