मैं निम्नलिखित कोड का उपयोग कर के माध्यम से एक iPhone के संगीत पुस्तकालय से सभी गाने पाशन कर रहा हूँ:MPMediaItemPropertyPersistentID के लिए NSString करने के लिए NSNumber और फिर से वापस
NSArray * songs = [[NSArray alloc] initWithArray:[[MPMediaQuery songsQuery] collections]];
for (MPMediaItemCollection * item in songs){
NSString * persistentID = [[[item representativeItem] valueForProperty:MPMediaItemPropertyPersistentID] stringValue];
// Do something with it.
}
[songs release];
सुंदर बुनियादी सामान।
मुझे PersistentID को NSString
के रूप में मिल रहा है क्योंकि मुझे इसे एक XML फ़ाइल (किसी अन्य डिवाइस पर किसी नेटवर्क पर ट्रांसमिशन के लिए) लिखना है। इसलिए कारण मैं इसे NSNumber
के रूप में नहीं छोड़ सकता।
अन्य डिवाइस फिर आईफोन के लिए PersistentID को फिर से प्रेषित करके ट्रैक चलाने के लिए कहेंगे।
इस बिंदु पर, आईफोन के पास ट्रैक के PersistentID के NSString
है जो इसे खेलना चाहिए।
यह फिर से हर गीत के माध्यम से लूप करने के लिए संगत होगा और जब तक मुझे इच्छित ट्रैक नहीं मिल जाता है तब तक PersistentIDs की तुलना करें, इसलिए मैं अपने लिए आईफोन खोज करने के लिए MPMediaPropertyPredicate
का उपयोग करने की कोशिश कर रहा हूं।
मैं खोज के लिए निम्नलिखित कोड का उपयोग कर रहा:
MPMediaPropertyPredicate * predicate = [MPMediaPropertyPredicate predicateWithValue:persistentID forProperty:MPMediaItemPropertyPersistentID];
MPMediaQuery * songsQuery = [[MPMediaQuery alloc] init];
[songsQuery addFilterPredicate:predicate];
if ([[songsQuery items] count]){
MPMediaItem * item = [[songsQuery items] objectAtIndex:0];
// Play item.
}
[songsQuery release];
कहाँ persistentID
पहले से NSString
है।
अजीब बात यह है कि यह कुछ गाने के लिए काम करता है, दूसरों के लिए नहीं। यानी, कभी-कभी items
सरणी खाली नहीं है, भले ही मैं NSString
पास कर रहा हूं, NSNumber
नहीं।
मुझे आश्चर्य है कि मेरे NSString
को NSNumber
पर परिवर्तित करने का कोई तरीका है, और यह मैं कैसे कर सकता हूं।
अद्यतन:
[NSNumber numberWithFloat:[persID floatValue]];
मैं बिना प्रबल कर के सभी मानक तरीके की कोशिश की है: मैं NSNumberFormatter की कोशिश की है, मैं भी तरह कुछ कोशिश की है।
+1। NSNumber में कनवर्ट किए बिना मैंने 0 आइटम की भविष्यवाणी करने और वापस करने के लिए एनएसएसटींग इनपुट करने की कोशिश की। आधा दिन डेबग करने की कोशिश कर रहा है। आपके समाधान में मदद मिली। धन्यवाद। – jkr
प्रो समाधान। धन्यवाद! – jarryd