सबसे पहले, यहाँ संक्षिप्त उत्तर है:
track.duplicateTo_(newPlaylist)
समस्या iTunes.add_to_
add
आदेश है, जो एक फ़ाइल (उपनाम) और एक प्लेलिस्ट में यह आयात लेता है भेजता है है; आप duplicate
कमांड भेजना चाहते हैं, जो किसी ऑब्जेक्ट को लेता है और ऑब्जेक्ट की दूसरी प्रति बनाता है। आपके पास फ़ाइल नहीं है, आपके पास एक ट्रैक है। (आप track.location()
के माध्यम से एक फ़ाइल प्राप्त कर सकते हैं, लेकिन आप फ़ाइल को फिर से आयात नहीं करना चाहते हैं, बस ट्रैक को कॉपी करें।)
इसके अलावा, इस मामले में, आपको ट्रैक पर विधि को कॉल करने की आवश्यकता है, बल्कि इसे ऐप पर कॉल करने और ट्रैक को पार करने से।
आईट्यून्स ऑब्जेक्ट मॉडल (और इसके नीचे एई मॉडल) की ठोस समझ के बिना इसका पहला भाग समझाना मुश्किल है। लेकिन आपको इसे समझने की ज़रूरत नहीं है। ज्यादातर मामलों में, आईट्यून्स स्क्रिप्टिंग डिक्शनरी (ऐप्पलस्क्रिप्ट संपादक में) और परीक्षण और त्रुटि (ऐप्पलस्क्रिप्ट संपादक या पीई-ऐपस्क्रिप्ट के साथ) को देखकर आप इसे वही समझ सकते हैं जो आप चाहते हैं। (बस सुनिश्चित करें कि आप स्क्रैप लाइब्रेरी पर काम कर रहे हैं, या बैकअप लें ...) इस मामले में, संभवतः यह केवल add
, copy
, duplicate
, या , या move
, केवल उन सभी को आज़माएं और देखें कि वे क्या करते हैं । या, वैकल्पिक रूप से, dougscripts पर जाएं और नमूने का एक गुच्छा डाउनलोड करें और जो भी आप चाहते हैं उसे ढूंढें।
इस के दूसरे भाग में, स्क्रिप्टिंग ब्रिज में अनुवाद करने का तरीका जानने के लिए ... अच्छी तरह से, मैं इसे एसबी पर लंबे समय तक रुकने के बिना समझा नहीं सकता (जो कि आप मुझसे बेहतर करना चाहते हैं, अगर आप एक से पढ़ना चाहते हैं) । लेकिन मूल बातें ये हैं: जहां तक आईट्यून्स का संबंध है, duplicate
एक आदेश है। यदि आप इसे प्रत्यक्ष वस्तु देते हैं (tell application "iTunes" to duplicate theTrack to thePlaylist
) यह इसका उपयोग करेगा; यदि नहीं, तो आप विषय को डुप्लिकेट करने के लिए कह रहे हैं (tell theTrack to duplicate to thePlaylist
)। यह बिल्कुल अंग्रेजी की तरह काम करता है। लेकिन एसबी एक ऑब्जेक्ट उन्मुख मॉडल पर जोर देती है, जहां duplicate
कुछ ऑब्जेक्ट पर एक विधि है। तो, उन दो रूपों में से केवल एक ही काम करने जा रहा है। आम तौर पर, आप यह देख सकते हैं कि dir(iTunes)
और dir(track)
पर यह देखने के लिए कि किसके पास एक आदेश है जो आपको इच्छित आदेश की तरह दिखता है।
जैसा कि आप उपर्युक्त से बता सकते हैं, यदि आप कुछ भी जटिल करने की कोशिश कर रहे हैं तो आपको बहुत से परीक्षण और त्रुटि मिल गई है। शुभकामनाएँ, और पूछते रहो।
पीएस, मुझे नहीं पता कि आपका कोड चुपचाप क्यों विफल रहता है। स्पष्ट रूप से add_to_
विधि को कमांड में अनुवाद करना चाहिए -1708 त्रुटि (जैसे ऐपस्क्रिप्ट iTunes.add(track, to=newPlaylist)
या ऐप्पलस्क्रिप्ट add theTrack to newPlaylist
दोनों ...)।
उन्हें कॉम्बो उत्तरों के लिए आपको बोनस देना चाहिए! धन्यवाद। 'iTunes.add_to_' एक लाल हेरिंग था, मैंने कहीं और नहीं देखा था लेकिन अब जब आप इसे समझाते हैं, तो यह समझ में आता है। – abroekhof