iTunes 内部の情報
Cocoa で iTunes のステータス(現在再生中の曲名とか時間とか)を得るには Scripting Bridge をつかう。
Using Scripting Bridge
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ScriptingBridgeConcepts/UsingScriptingBridge/UsingScriptingBridge.html
ターミナルで
sdef /Applications/iTunes.app | sdp -fh --basename iTunes
ってやると iTunes.h
っていうヘッダーファイルができあがる。import
してごにょごにょ。
#import "iTunes.h"
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
double position = iTunes.playerPosition;
ちょーかんたん。
iTunes.currentTrack.artist
ってやればアーティストとれる。ほかにもいっぱいとれる情報ある。iTunes.h
みるよろし。
iTunes の動作イベント
再生開始したとか停止したとかのイベントを外から知るには、てきとうにとんでる Notification をつかまえればよい。
見えない通知を捕まえて通知駆動アプリケーションを作る - ザリガニが見ていた...。
http://d.hatena.ne.jp/zariganitosh/20120918/notification_driven_applescript
- (void)setup
{
[[NSDistributedNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateTrackInfoFromITunes:)
name:@"com.apple.iTunes.playerInfo"
object:nil];
}
- (void)updateTrackInfoFromITunes:(NSNotification *)notification
{
NSLog(@"%@", notification.userInfo);
}
再生開始・停止のタイミングで通知とんでくる。userInfo
にいろいろ情報はいってる。
Plugin にする
Example の Simplest Plugin を参考に↑のいろいろをまとめる。ARC が使えないのでメモリ管理ちゃんとやらないとすぐに Unity 落ちる。。。