どのように私はOBJ-C AppScriptでiTunesの曲にアートワークを追加するには?

StackOverflow https://stackoverflow.com/questions/2413861

質問

aTrack値がJPEGにURLを経由して初期化し、NSImageでは*オブジェクトである、ITReference *オブジェクトです。

[[[[[aTrack artworks] data_] set] to:value] send];

私は、GDBに次のメッセージが表示されます

2010-03-09 16:59:42.860 Sandbox[2260:a0f] Can't pack object of class NSImage (unsupported type): <NSImage 0x10054a440 Size={0, 0} Reps=(

私は、次のコードを試してみました。

NSData *imageData = [[NSData alloc] initWithData:[value TIFFRepresentation]];
[[[[[aTrack artworks] data_] set] to:imageData] send];

、代わりにこのメッセージが表示されます。

2010-03-09 16:46:09.341 Sandbox[2193:a0f] Can't pack object of class NSConcreteData (unsupported type): <4d4d002a 00000000>

AppScriptのドキュメントでは、「アートワーク」項目の「データ」プロパティはPICTPicture画像であると述べています。

どのように私はNSImageでははPICTに変換するのですか?私はすべてが間違っAppScriptを使用しているか?

役に立ちましたか?

解決

NSImageではでのAppKitとだけ財団に対してappscriptのリンクであるため、

Appscriptは一部で、NSImageではを橋渡ししません。一部のAppleイベントの使用状況のこの地域はよくspeccedされていないため。 iTunesの作品を扱うときに理論的には、画像関連AEDescsは、PICTヘッダとビットマップデータの標準ブロックが、ISTR様々な激論を含める必要があります。それは厄介だ。

意味のある記述子タイプなしにAEDescにデータをパックすると、大部分が無意味であるため、

のNSDataがブリッジされていません。あなたはNSDataのインスタンスをパックしたい場合は、+[NSAppleEventDescriptor descriptorWithDescriptorType:data:]を使用します。

またartworkクラスのraw dataプロパティを見てみましょう。それは後で加えますと、より賢明な形式で画像データが含まれている場合があります。

ああ、とEyeTunesフレームワークを見てみましょう。それは、AppleScriptの/ appscriptを使っほど柔軟または効率的ではないのですが、私はそれがAEDescsにNSImageではを埋めるためのコードを含んでいると考えています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top