gpt4 book ai didi

objective-c - iTunes Apple 事件 API

转载 作者:行者123 更新时间:2023-12-02 05:39:17 25 4
gpt4 key购买 nike

我想通过 Objective-C 控制 iTunes(我只是无法在我的 OS/X 10.6.3 系统上正确安装 Python appscript ...那本来是我的第一个选择 ).

据我所知,Cocoa 上的 IPC 是基于 Apple Events 的:有没有:

  1. 关于 iTunes/Apple Events API 的在线文档?
  2. 访问 iTunes API 的自省(introspection)机制?

我知道 Applescript 编辑器/打开词典功能,但我不知道如何将我看到的信息翻译到 IPC 调用中。

注意:我已经尝试通过 PyObjC 制定解决方案,但我追求的主要功能是跟踪搜索,我可以'想不通。

免责声明:此处为 OS/X super 新手。

最佳答案

您是否考虑过使用 Scripting Bridge ?它内置于操作系统中,也可与 PyObjC 一起使用。没有独特的搜索 API,因为搜索内置于 AppleScript ( whose clauses ) 中,它映射到 Scripting Bridge 中的 NSPredicate。

>>> from Foundation import *
>>> from ScriptingBridge import *
>>> itunes = SBApplication.applicationWithBundleIdentifier_(u"com.apple.itunes")
>>> tracks = itunes.sources()[0].libraryPlaylists()[0].tracks()
<SBElementArray @0x468a630: every ITunesTrack of ITunesLibraryPlaylist 0 of ITunesSource 0 of application "iTunes" (157)>
>>> predicate = NSPredicate.predicateWithFormat_(u'artist == "Pink Floyd"')
>>> tracks.filteredArrayUsingPredicate_(predicate)
<SBElementArray @0x457b6c0: ITunesTrack whose 'cmpd'{ 'relo':'= ', 'obj1':'obj '{ 'want':'prop', 'from':'exmn'($$), 'form':'prop', 'seld':'pArt' }, 'obj2':'utxt'("Pink Floyd") } of ITunesLibraryPlaylist 0 of ITunesSource 0 of application "iTunes" (157)>

此外,如果您是 AppleScript 的新手,我强烈推荐脚本调试器的 dictionary explorer .

关于objective-c - iTunes Apple 事件 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com