AppleScript で iTunes を動かす

と、言っても「play」「pause」「rwd」「fwd」だけなので簡単。
まずは、それぞれのコマンドをターミナルで動作確認してみた。

iMac-coreI3-27:~ paraches$ osascript -e 'tell app "iTunes" to play'
iMac-coreI3-27:~ paraches$ osascript -e 'tell app "iTunes" to stop'
iMac-coreI3-27:~ paraches$ osascript -e 'tell app "iTunes" to previous track'
iMac-coreI3-27:~ paraches$ osascript -e 'tell app "iTunes" to next track'

無事動作することを確認したら、今度は Cocoa からコマンドを飛ばす。
こんな感じのメソッドを用意。

- (void)doAppleScript:(NSString *)theScript {
    NSDictionary *errorDict;
    NSAppleEventDescriptor *returnDescripter = NULL;

    NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:theScript];
    returnDescripter = [scriptObject executeAndReturnError:&errorDict];
}

returnDescripter なんてわざわざ用意してるけど、エラーとかなんとか全く処理するつもり無し!


で、実際の AppleScript のコマンド文字列は、それぞれの動作のメソッド側で用意。

- (void)playerPlay {
    [self doAppleScript:@"tell app \"iTunes\" to play"];
}

というわけで、あれこれ調べながら 2時間程でやっつけたものなので色々と難はあるけど、ま、勉強会の前に触っておこうという目的は達成できたので OK!