Ich arbeite an einer Cocoa-Applikation, die überwacht, was man in iTunes hört, und da ich Mac OS 10.5 und höher anvisiere, habe ich mich für die Verwendung von Skripting-Brücke .
Wenn ich versuche, iTunes zu kurz vor dem Zeitpunkt zu schließen, an dem meine App den aktuellen Titel abfragt, wird iTunes sofort neu gestartet! Die einzige Möglichkeit, dieses Verhalten zuverlässig zu verhindern, besteht darin, zuerst meine App zu beenden und dann iTunes zu schließen.
Umschalten auf EyeTunes löst das Problem, aber es ist eine ziemlich alte Codebasis und ich hatte gehofft, dass ich dies ohne eine externe Bibliothek erreichen könnte. Sicherlich mache ich etwas falsch, das den Neustart verursacht?
Hier ist ein Beispielcode; dieser Ausschnitt wird alle paar Sekunden ausgeführt, ausgelöst durch eine NSTimer
.
#import "iTunesBridge.h" // auto-generated according to Apple's docs
-(void)updateTrackInfo {
iTunesApplication *iTunes = [[SBApplication alloc] initWithBundleIdentifier:@"com.apple.iTunes"];
iTunesTrack *currentTrack = [iTunes currentTrack];
// inspect currentTrack to determine what's being played...
[iTunes release];
}
Ist dies ein bekanntes Problem mit Scripting Bridge, oder verwende ich es falsch?