2011-11-16 25 views
27

मेरे पास एक ऐप है जो आईओएस में गीत डेटाबेस तक पहुंचने के लिए आईपॉड लाइब्रेरी एपीआई का उपयोग करता है। आईट्यून्स मैच की रिहाई के साथ, डिवाइस पर नहीं होने वाला कोई भी गीत लोड होने में विफल रहेगा। क्या कोई तरीका है कि मैं अनुरोध करता हूं कि गीत डाउनलोड किया जाए? शायद नए iCloud एपीआई का उपयोग कर रहे हैं?एमपीएमडियाइटम और आईट्यून्स मैच

संपादित करें: स्पष्ट होने के लिए मैं आईफोन का उपयोग करके आईट्यून्स मैच के साथ गाने डाउनलोड करने के तरीके से नहीं पूछ रहा हूं। आईओएस एसडीके MPMediaQuery/MPMediaItems के माध्यम से आइपॉड लाइब्रेरी तक पहुंच की इजाजत देता है। आईट्यून्स मैच सक्षम गानों के साथ आईओएस डिवाइस पर जो आपके आईट्यून्स मैच लाइब्रेरी में हैं लेकिन डिवाइस पर स्थानीय MPMediaQuery के माध्यम से वापस नहीं आते हैं, हालांकि MPMediaItems के पास 'निर्यात योग्य' ध्वज गलत है। जब मैं संगीत ऐप में इन गीतों तक पहुंचता हूं तो वे स्वचालित रूप से डाउनलोड होते हैं। मैं MPMediaItem के माध्यम से एक ही स्वचालित डाउनलोड ट्रिगर करना चाहता हूं।

मैंने आईट्यून्स मैच में आइटम्स को आईक्लाउड के हिस्से के रूप में रेफ्रिड किया है और आईओएस 5 एसडीके का एक नया आईक्लाउड अनुभाग है। हालांकि, जैसा कि मैं इसे समझता हूं, मैं केवल अपलोड के रूप में अपना ऐप डेटा प्राप्त कर सकता हूं। मैं उम्मीद कर रहा था कि MPMediaItem के माध्यम से या iToud के माध्यम से यूट्यूब का उपयोग करके आईट्यून्स मैच डाउनलोड को ट्रिगर करने का तरीका था।

+0

यह प्रश्न Apple.SE – JW8

+1

के लिए बेहतर अनुकूल हो सकता है डिवाइस पर कोडिंग के लिए डिवाइस का उपयोग करने के लिए Apple.SE अधिक नहीं है? – TurqMage

+0

क्या आप "उनके 'निर्यात योग्य' ध्वज" से क्या मतलब समझ सकते हैं? मुझे एक निर्यात योग्य संपत्ति के बारे में पता नहीं है। क्या आप MPMediaItemPropertyAssetURL का जिक्र कर रहे हैं? – prendio2

उत्तर

13

मुझे कुछ मिला है, लेकिन यह बहुत अच्छा नहीं है। यदि आप आईपॉड प्लेयर के माध्यम से खेले जाने वाले गीत का चयन करते हैं तो वह एक डाउनलोड ट्रिगर करेगा। आप एक MPMusicPlayerController के साथ आइपॉड प्लेयर तक पहुंच सकते हैं।

MPMusicPlayerController *mDRMAudioPlayer; 
mDRMAudioPlayer = [MPMusicPlayerController iPodMusicPlayer]; 

MPMediaQuery *assetQuery = [[MPMediaQuery alloc] init]; 
NSNumber *persistentID = [mediaItem valueForProperty: MPMediaItemPropertyPersistentID]; 
MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue: persistentID 
                     forProperty: MPMediaItemPropertyPersistentID]; 
[assetQuery addFilterPredicate: predicate]; 

[mDRMAudioPlayer setQueueWithQuery: assetQuery]; 
[mDRMAudioPlayer play]; 

पर यह वास्तव में डाउनलोड पर एक डाउनलोड करने या नहीं, या प्रगति शुरू किया, लेकिन आइटम डाउनलोड करते हैं और यदि आपके कनेक्शन अच्छा है यह पहली बार खेलेंगे शुरू कर देंगे, तो कोई प्रतिक्रिया (अन्यथा आप खेलने स्पैम और यह कर सकते हैं शुरू करने के लिए चारों ओर मिल जाएगा)।

+0

आईपॉड म्यूजिकप्लेयर को बहिष्कृत किया गया है। इसके बजाय हम systemMusicPlayer का उपयोग कर सकते हैं। –

6

मैंने अभी इस मुद्दे के बारे में ऐप्पल से वापस सुना है (मैंने अपनी तकनीकी सहायता घटनाओं में से एक का उपयोग किया था)।

ऐप्पल के अनुसार, आईओएस एसडीके वर्तमान में iCloud से डाउनलोड शुरू करने के लिए कोई एपीआई प्रदान नहीं करता है। मुझे इस सुविधा के लिए Apple's bug reporter tool के माध्यम से एक वृद्धि अनुरोध दर्ज करने का निर्देश दिया गया था। मैं दूसरों को ऐसा करने के लिए प्रोत्साहित करता हूं।

एप्पल वास्तव में यह देखते हुए कि iCloud आईओएस 5.

+1

मैंने इसके लिए एक बग रिपोर्ट भी पोस्ट की है (# 12736293), निम्नलिखित विवरण के साथ: 'आईओएस एसडीके में कोई एपीआई नहीं है यह निर्धारित करने के लिए कि क्या एक ट्रैक iCloud (iTunes Match में) स्थानीय रूप से बनाम है या न ही है इसकी डाउनलोड स्थिति को ट्रैक करने के लिए कोई एपीआई है। ट्रैक के बीच अंतर करने का कोई तरीका नहीं है जो स्थानीय रूप से उपलब्ध हैं जो केवल iCloud के माध्यम से उपलब्ध हैं, और यदि आप एक मीडिया आइटम को चलाने के लिए शुरू करते हैं जिसके लिए डाउनलोड की आवश्यकता है, तो डाउनलोड प्रगति की निगरानी करने के लिए कोई तरीका नहीं है (प्रारंभ, विफल, में प्रगति, पूर्ण) ' – cleverbit

+0

आपकी रिपोर्ट पर कोई प्रगति? (2015 से हैलो, समस्या अभी भी जगह में प्रतीत होती है) – mojuba

2

को परिभाषित करने वाली विशेषताओं में से एक यहाँ के लिए बाहर देखने के लिए कुछ है iCloud से ऑडियो संपत्ति डाउनलोड करने के लिए कार्यक्रम संबंधी सहायता प्रदान करना चाहिए। मेरा ऐप सभी एल्बम और उनके गीतों को इकट्ठा करने के लिए सामान्य [MPMediaQuery albumsQuery] करता है। यह ठीक काम करता है भले ही पूरे संगीत पुस्तकालय में आईट्यून्स मैच सामान शामिल हों, जिनमें से अधिकांश क्लाउड में अभी भी है। लेकिन एक समस्या है:

यदि उस समय एक गीत खेला जा रहा है, और यदि वह गीत क्लाउड में था, तो अब यह डाउनलोड हो रहा है, एल्बम में वह गीत और अगला गीत से गायब है [MPMediaQuery albumsQuery] का नतीजा। यह संभवतः इसलिए है क्योंकि वे गीत "पारगमन में" हैं: वे दोनों आंशिक रूप से डाउनलोड किए गए हैं। (मुझे लगता है दो गाने हमेशा डाउनलोड कर रहे हैं, ताकि जब पहले खत्म यह अगले में मूल segue करना संभव है।)

इसके अलावा, खेल रहे हैं और इसलिए एक गाना डाउनलोड करते समय कोई MPMediaLibraryDidChangeNotification चलाता है भी की "सामग्री तालिका" यद्यपि पुस्तकालय वास्तव में नहीं बदला है।

मुझे इस बारे में कोई रास्ता नहीं दिख रहा है, क्योंकि लाइब्रेरी से पूछताछ करने का कोई अन्य तरीका नहीं है। ऐप्पल को आईट्यून्स मैच के अस्तित्व का विवरण लेने के लिए सिस्टम और एपीआई को ठीक करने की जरूरत है। दुर्भाग्य से मुझे यह समझ नहीं आ रहा है कि वे आईओएस 5.1 के लिए इस पर काम कर रहे हैं ...

+1

अभी तक आईओएस 10 के लिए तय नहीं किया गया है, जहां तक ​​मैं देख सकता हूं। – amergin

+1

बहुत दुर्भाग्यपूर्ण। इसके बारे में ऐप्पल टीम से अभी भी कोई प्रतिक्रिया नहीं है .. :( –

7

MPMediaItem | iCloud or DRM Protected

ऊपर दिए लिंक पर कैसे आप एक संपत्ति iOS 6 में शुरू की गई है, तो एक MPMediaItem बादल में है देखने के लिए उपयोग कर सकते हैं पता चलता है।

MPMediaItemPropertyIsCloudItem

BOOL isCloud = FALSE; 

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) { 
    NSNumber *isCloudNumber = [mediaItem valueForProperty:MPMediaItemPropertyIsCloudItem]; 
    isCloud = [isCloudNumber boolValue]; 
} 
if (isCloud) { 
    DebugLog(@"Cloud Asset URL: %@", assetURL); 
} 

कि मैक्रो का उपयोग कर रहा है IOS 6 केवल सुनिश्चित करने के लिए उपयोग करता है कोड है जो आईओएस 6 के साथ जोड़ा गया है नीचे है कि मैक्रो है।

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 

फिर भी आप जहां तक ​​बता सकते हैं डाउनलोड डाउनलोड नहीं कर सकते हैं।

+0

क्या किसी ने अपडेट के बारे में सुना है? क्या हम आईट्यून्स मैच डेटा तक पहुंच सकते हैं और डाउनलोड को मजबूर कर सकते हैं? –

संबंधित मुद्दे