Как Вы слушаете уведомления от iTunes на Mac (Используя NSDistributedNotificationCenter)

Поиск справки/учебных руководств/примера кода использования Python для слушания распределенных уведомлений из приложений на Mac. Я знаю, что py-objc lib является мостом между Python и классами Mac/какао, и библиотекой Foundation можно пользоваться для добавления наблюдателей, но поиск примеров или учебные руководства о том, как использовать это для контроля iTunes.

5
задан ismail 21 September 2012 в 07:27
поделиться

2 ответа

Если кто-нибудь ответит на этот вопрос, я понял, как слушать, приведенный ниже код работает. Однако доступ к атрибутам, похоже, не работает как стандартный доступ к атрибутам python.

Обновление: у вас нет доступа к атрибутам, как в python, т.е. (.x), код был обновлен ниже, теперь он генерирует dict под названием song_details.

Update3: обновление кода, теперь подкласс NSObject, удалено добавление addObserver из класса. Код будет обновляться на github , здесь больше никаких обновлений.

import Foundation
from AppKit import *
from PyObjCTools import AppHelper

class GetSongs(NSObject):
    def getMySongs_(self, song):
        song_details = {}
        ui = song.userInfo()
        for x in ui:
            song_details[x] = ui.objectForKey_(x)
        print song_details

nc = Foundation.NSDistributedNotificationCenter.defaultCenter()
GetSongs = GetSongs.new()
nc.addObserver_selector_name_object_(GetSongs, 'getMySongs:', 'com.apple.iTunes.playerInfo',None)

NSLog("Listening for new tunes....")
AppHelper.runConsoleEventLoop()
11
ответ дан 18 December 2019 в 11:57
поделиться

Исходный код для GrowlTunes может дать вам некоторые подсказки здесь. Вы должны будете перевести с Objective-C на PyObjC, но неважно. :)

GrowlTurnesController.m. (Или возьмите все дерево источника гроула и перейдите к GrowlTunes, чтобы увидеть все это в действии..: вот ссылка на указания, как получить исходник

4
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: