2

OS X プログラムを更新して、iTunes ドロップを受け入れ、ファイル内のメタデータを変更し、ドロップされたファイルを更新 (情報を取得) して、iTunes がそのメタデータ ライブラリを更新できるようにします。

トラック ID、永続 ID、場所など、ファイルに関するさまざまな情報の辞書を提供するドロップが機能しています。ファイルの場所またはドロップ情報によって提供される永続的な ID のいずれかによって、特定のトラックを取得する必要がある時点にいるので、refresh メソッドを呼び出して、iTunes にファイルを再検査させ、変更を更新させることができます。メタデータに。

iTunes ヘッダー ファイルをインポートし、SBApplication オブジェクトを作成しました。この時点で、適切なトラックを取得する効率的な方法についてかなり行き詰っています。

4

2 に答える 2

5

述べたように、私はすでに iTunes ドロップによって提供されたファイルに関するいくつかの情報にアクセスできました。iTunes ライブラリ内のファイルへのドロップによって提供されるファイル名または PersistentID のいずれかに基づいて、そのファイルに関する情報を照合する必要がありました。私の解決策は、iTunes スクリプト ブリッジによって返されたライブラリ コレクションに対して、iTunes ライブラリの述語フィルターを使用することでした。 .

    iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];

    SBElementArray *sources = [iTunes sources];

    SBElementArray *entireLibrary = [[[[sources objectAtIndex:0] libraryPlaylists] objectAtIndex:0] fileTracks];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"persistentID == %@", persistentID];

    [entireLibrary filterUsingPredicate:predicate];
于 2011-08-26T22:45:53.620 に答える
0

これは、次を使用してiTunesから現在のトラック情報を取得する方法ですScriptingBridge

iTunesApplication * iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
NSString * artist    = [[iTunes currentTrack] artist];
NSString * trackname = [[iTunes currentTrack] name];
/* etc. */
于 2011-06-09T07:25:17.380 に答える