2009-12-19 31 views
5

Tìm kiếm trợ giúp/hướng dẫn/mã mẫu sử dụng python để nghe distributed notifications từ các ứng dụng trên máy mac. Tôi biết là py-objc lib là cầu nối giữa các lớp python và mac/cocoa, và thư viện Foundation có thể được sử dụng để thêm các nhà quan sát, nhưng tìm kiếm các ví dụ hoặc hướng dẫn về cách sử dụng nó để theo dõi iTunes.Làm thế nào để bạn nghe thông báo từ iTunes trên máy Mac (Sử dụng NSDistributedNotificationCenter)

+0

iTunes có thực sự đăng thông báo được phân phối những ngày này không? –

+0

Có nó .... dưới com.apple.iTunes.player, sử dụng đồng hồ thông báo tôi có thể nhìn thấy chúng. – ismail

Trả lời

11

Nếu bất cứ ai đến bởi cho câu hỏi này, tôi đã tìm ra cách để lắng nghe, Mã dưới đây hoạt động Tuy nhiên, các thuộc tính truy cập dường như không hoạt động như truy cập thuộc tính python chuẩn

Cập nhật: bạn không truy nhập các thuộc tính như bạn đã làm trong python ie (.x), mã đã được cập nhật bên dưới, ngay bây giờ tạo ra một dict gọi là song_details.

Up date3: Cập nhật mã, bây giờ subclassing NSObject, loại bỏ thêm addObserver từ lớp. Sẽ giữ mã được cập nhật trên github, không còn cập nhật tại đây nữa.

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() 
4

Mã nguồn cho GrowlTunes có thể cung cấp cho bạn một số manh mối tại đây. Bạn sẽ phải dịch từ Objective-C sang PyObjC, nhưng eh, bất cứ điều gì. :)

GrowlTurnesController.m (Hoặc lấy toàn bộ cây nguồn tiếng gầm gừ và điều hướng đến GrowlTunes để bạn có thể nhìn thấy nó tất cả trong hành động .: here's a link to the directions on how to get the source

+0

Cảm ơn sự giúp đỡ, quản lý để tìm ra bằng cách sử dụng trang web pyobjc & trang web táo. – ismail

Các vấn đề liên quan