2

Objective-Cを介してiTunesを制御したい(PythonappscriptをOS / X 10.6.3システムに正しくインストールできない...それが私の最初の選択だった)。

私が収集したものから、CocoaのIPCはAppleイベントに基づいています:次のいずれかがあります:

  1. iTunes / Apple Events APIのオンラインドキュメント?
  2. iTunes APIにアクセスするためのイントロスペクションメカニズム?

Applescript Editor / Open Dictionaryの機能については知っていますが、表示された情報をIPC呼び出しに変換する方法がわかりません。

注:私はすでにPyObjCを使用して解決策を見つけようとしましたが、私が求めている主な機能は、理解できないトラック検索です。

免責事項: OS/Xの超初心者はこちら。

4

2 に答える 2

11

Scripting Bridgeの使用を検討しましたか?OSに組み込まれており、PyObjCでも動作します。検索はAppleScript(その句)に組み込まれているため、明確な検索APIはありません。AppleScriptはScriptingBridgeの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を初めて使用する場合は、ScriptDebuggerの辞書エクスプローラーを強くお勧めします。

于 2010-05-09T15:19:58.500 に答える
3

py-appscriptで問題が発生した場合は、作成者(私)に連絡してトラブルシューティングを行ってください。使用されているPythonのインストール、Xcodeのバージョン、および問題がappscriptに固有であるかどうか、またはすべてのサードパーティモジュールまたはC拡張機能を備えたサードパーティモジュールに影響するかどうかに関する情報を含めます。また、組み込みのPythonではなくpython.orgフレームワークビルドを使用している場合は、オプションのOS X10.4SDKがインストールされていることを確認してください。

APIドキュメントは、OS XのAppleScriptエディタ([ファイル]> [辞書を開く])、appscriptのASDictionary、またはその他のサードパーティのASエディタから入手できます。ASDictionaryがインストールされている場合は、appscriptの組み込みのhelp()メソッドを使用して、辞書をインタラクティブに参照することもできます。

スクリプト可能なアプリケーションのAPIドキュメントは不十分なことで有名ですが、AppleScript全般、特にアプリケーションスクリプトがどのように機能するかをよく理解する必要もあります。Apple独自のAppleScript言語ガイドでは、関連するさまざまな機能について説明していますが、それらを実際に使用することについてはあまり説明していません。あなたがいくらかの現金を下ろす気があるなら、利用できるいくつかの良い本があります(免責事項:私はちょうど自分で1冊を共同執筆しました)。

そして、手がかりのためにオンライン記事、ディスカッションフォーラム、既存のスクリプトをかなり掘り下げることを期待してください。DougのiTunes用AppleScriptは、iTunesスクリプトの優れたソースです。もちろん、それらはAppleScriptで書かれていますが、それらの多くはAppleScript Editorで読み取ることができるので、ヒントの優れた情報源です。appscriptを使用している場合は、ASTranslateを使用してAppleScriptからappscript構文に変換することができます。あなた自身を書くことで。

于 2010-05-09T21:43:50.350 に答える