我正在开发一个 Cocoa 应用程序来监控您在 iTunes 中收听的内容,并且由于我的目标是 Mac OS 10.5 及更高版本,因此我决定使用Scripting Bridge。
如果我尝试关闭 iTunes 太接近我的应用程序轮询当前曲目的时间,iTunes 将立即重新启动!可靠地防止这种行为的唯一方法是先退出我的应用程序,然后退出 iTunes。
切换到EyeTunes解决了这个问题,但它是一个相当老的代码库,我希望我可以在没有外部库的情况下完成这个。当然我做错了什么导致重新启动?
这是一些示例代码;此代码段每隔几秒运行一次,由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];
}
这是 Scripting Bridge 的一个已知问题,还是我使用不正确?