Bir mac uygulamasındaki uygulamalardan dinlemek için python'u kullanmayla ilgili örnek/yardımcı kodları/distributed notifications kodunu arayın. Biliyorum, py-objc lib, python ve mac/cocoa sınıfları arasındaki köprüdür ve Foundation kütüphanesi, gözlemcileri eklemek için kullanılabilir, ancak iTunes'u izlemek için bunun nasıl kullanılacağına dair örnekler veya eğiticiler arayabilir.Bir Mac'te iTunes'dan (NSDistributedNotificationCenter'ı kullanarak) bildirimleri nasıl duyarsınız?
Bir Mac'te iTunes'dan (NSDistributedNotificationCenter'ı kullanarak) bildirimleri nasıl duyarsınız?
cevap
bunu tüm görebilirsiniz GrowlTunes gidin Aşağıdaki kod, standart python öznitelik erişimi gibi çalışmamaktadır.
Güncelleştirme: Python'da olduğu gibi özniteliklere erişemezsiniz, yani (.x), kod aşağıdan güncelleştirildi, şimdi Song_details adında bir dict oluşturur. date3: NSObject alt sınıfını kaldırarak sınıfa güncelleyin, addObserver'ı sınıftan ekleyerek kaldırın. Kodu github tarihinde güncel tutar, burada daha fazla güncelleme yapmayacaksınız.
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()
GrowlTunes için kaynak kodu burada bazı ipuçları verebilir. Objective-C'den PyObjC'ye çevirmeniz gerekecek, ama eh, neyse. :)
GrowlTurnesController.m (Ya bütün homurtu kaynak ağacını kapmak ve eylem .: herkes bu soruya gelirse, ben dinlemeyi anladım here's a link to the directions on how to get the source
Yardım için teşekkürler, pyobjc web sitesi ve apple web sitesini kullanarak bunu başardı. – ismail
iTunes, bugünlerde dağıtılmış bildirimler yayınlıyor mu? –
Evet, com.apple.iTunes.player altında, bildirim izlemesi kullanarak onları görebilirim. – ismail