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!