Кой е най-добрият начин да направите непрекъснат цикъл, за да получите информация от iTunes?

Бих искал да направя непрекъснат цикъл, за да получа информация от iTunes, за да получа неща като: позицията на играча (1:37), текущата песен, която се възпроизвежда и т.н.... Използвам iTunes.h и ScriptingBridge, за да получа данните от iTunes.

Опитах да използвам [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(getInformation) userInfo:nil repeats:YES];, но от това, което видях в Activity Monitor, това изразходва много CPU и ако например натисна бутон вътре в NSWindow, където имам NSTimer, потребителският интерфейс на моето приложение, което уж щеше да се актуализира, не се актуализира. Ако пусна бутона, потребителският интерфейс започва да се актуализира нормално.
Опитах също да използвам while(1){}, но по някаква причина приложението ми замръзва.

Дали някой има някаква идея как да изпълня това, което търся?


person Pedro Vieira    schedule 29.12.2012    source източник


Отговори (1)


това ще изгори процесора като луд.. не анкетирайте!


регистрирайте се за разпространеното известие:

//the distributed notification sent
#define SONG_CHANGE_NOTIFICATION @"com.apple.iTunes.playerInfo"

безсрамна реклама: погледнете източника на DDBoomBox в github, който прави ТОЧНО това, което искате да направите :)

https://github.com/Daij-Djan/BoomBox

person Daij-Djan    schedule 29.12.2012
comment
Благодаря за вашият отговор! и вашият код от github изглежда наистина полезен ;) получих това, от което имах нужда! - person Pedro Vieira; 30.12.2012