iTunes Scripting Bridge - Как воспроизвести конкретный трек - PullRequest
2 голосов
/ 28 августа 2010

Я пишу приложение для Mac, которое использует скриптовый мост для управления iTunes.Я сгенерировал заголовочный файл iTunes.h, и объект SBApplication может рассказать мне о множестве замечательных вещей.

Однако команды кажутся очень ограниченными.Существует функция «playpause», но я не вижу способа сделать это

// iTunes - это мой объект SBApplication [iTunes play: @ "Smoke On The Water"];

The Applescriptсделать это довольно просто

, чтобы сообщить iTunes play songName

, и этот мост сценариев должен быть для меня очень крутым и мощным способом управления объектами, доступными для сценариев в Objective C, так чтоЯ здесь скучаю?

Ответы [ 2 ]

6 голосов
/ 13 января 2011

Вам просто нужно отправить сообщение «playOnce: (BOOL)» на ваш объект iTunesTrack. Вот пример:

iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
iTunesPlaylist *playlist = [iTunes currentPlaylist];
SBElementArray *tracks = [playlist tracks];
[[tracks objectAtIndex:0] playOnce:YES];

Будет воспроизведена первая дорожка в текущем списке воспроизведения. Приспособьтесь к вашей ситуации.

1 голос
/ 28 августа 2010

Поиск в Интернете эквивалентных фрагментов AppleScript или просмотр словаря сценариев iTune в приложении AppleScript Editor.Затем переведите полученный сценарий в команды сценариев моста.Возможный эквивалент AppleScript:

tell application "iTunes"
    play first item of (search first library playlist for "Smoke On The Water")
end tell

PS. Возможно, вам будет проще работать с objc-appscript (или, если Objective C не является обязательным требованием, его кузены, пиappscript или rb-appscript).

...