كيف أضيف أعمال فنية لمسار اي تيونز مع obj-c appscript؟

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

سؤال

ATrack هو جهاز محرر *، القيمة هي كائن NSIMAGE *، تهيئة عبر عنوان URL إلى JPEG.

[[[[[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 إلى الصورة؟ هل أنا أستخدم appscript كل الخطأ؟

هل كانت مفيدة؟

المحلول

لا يقوم AppScript بعمل NSIMAGE، جزئيا لأن NSIMAGE هو روابط AppKit و APPScript مقابل الأساس فقط؛ جزئيا لأن هذا مجال استخدام أحداث Apple غير مصمم بشكل جيد. من الناحية النظرية، يجب أن تحتوي Aedescs المرتبطة على الصور على كتلة قياسية من بيانات النقطية، ولكن ISTR متاعب مختلفة مع رؤوس الصور عند التعامل مع أعمال iTunes Artworks. انها الفوضى.

لم يتم تجسيد NSDATA لأن التعبئة البيانات في Aedsc دون نوع واصف ذات مغزى غير متحدق إلى حد كبير. إذا كنت ترغب في حزم مثيل NSDATA، استخدم +[NSAppleEventDescriptor descriptorWithDescriptorType:data:].

أيضا إلقاء نظرة على artwork فئة raw data خاصية. هذه إضافة لاحقة وقد تحتوي على بيانات الصورة في شكل أكثر عقلانية.

أوه، وإلقاء نظرة على إطار Eyetunes؛ إنه ليس مرنا أو فعالا مثل استخدام AppleScript / AppScript، لكنني أعتقد أنه يتضمن رمز سد NSIMAGE إلى Aedescs.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top