Я хотел бы сделать непрерывный цикл для получения информации из iTunes, чтобы получить такие вещи, как: положение игрока (1:37), текущий воспроизводимый трек и т. д. Я использую iTunes.h
и ScriptingBridge
для получения данных iTunes.
Я пытался использовать [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(getInformation) userInfo:nil repeats:YES];
, но, судя по тому, что я видел в Мониторе активности, это потребляет много ресурсов ЦП, и если, например, я нажимаю кнопку внутри NSWindow
, где у меня есть NSTimer
, пользовательский интерфейс моего приложения, которое якобы должно было быть обновлено, не обновляется. Если я отпущу кнопку, пользовательский интерфейс начнет нормально обновляться.
Я также пытался использовать while(1){}
, но по какой-то причине мое приложение зависало.
Кто-нибудь1 знает, как выполнить то, что я ищу?
Как лучше всего сделать непрерывный цикл для получения информации из iTunes?
Ответы (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
спасибо за Ваш ответ! и ваш код с github кажется действительно полезным;) получил то, что мне было нужно!
- person Pedro Vieira; 30.12.2012