मैं बहुत यकीन है कि यह किसी भी सार्वजनिक एपीआई के माध्यम से संभव नहीं है हूँ। Ecoute ऐप कि @sooper उल्लेख निजी एपीआई का उपयोग करना चाहिए। मैंने अपने स्वयं के संगीत ऐप के कोडबेस में थोड़ा प्रयोग किया। सबसे पहले मैं आइपॉड संगीत खिलाड़ी (शीर्ष पर #import <objc/runtime.h>
डाल) में सभी तरीकों को सूचीबद्ध करने के लिए इस कोड का प्रयोग किया:
int i=0;
unsigned int mc = 0;
Method * mlist = class_copyMethodList([MPMusicPlayerController iPodMusicPlayer].class, &mc);
NSLog(@"%d methods for class", mc);
for(i=0;i<mc;i++) {
NSLog(@"\tMethod no #%d: %s", i, sel_getName(method_getName(mlist[i])));
}
free(mlist);
यह numberOfItems
और nowPlayingItemAtIndex:
जैसे कुछ पेचीदा विधि के नाम कर दिया। इसलिए मैं फ़ाइल के शीर्ष पर इस श्रेणी कहा:
@interface MPMusicPlayerController (Private)
- (NSInteger)numberOfItems;
- (MPMediaItem*)nowPlayingItemAtIndex:(NSInteger)index;
@end
और मैं इस कोड भाग गया:
NSInteger numberOfItems = [[MPMusicPlayerController iPodMusicPlayer] numberOfItems];
for (NSInteger i = 0; i < numberOfItems; i++) {
MPMediaItem* mi = [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItemAtIndex:i];
NSLog(@"%@", [mi valueForProperty:MPMediaItemPropertyTitle]);
}
और यकीन है कि पर्याप्त है, यह प्लेलिस्ट कि मैं संगीत एप्लिकेशन में पंक्तिबद्ध था मुद्रित !
बेशक
, अगर आप इन तरीकों इस तरह से फोन, एप्पल अपने अनुप्रयोग को अस्वीकार कर देंगे, लेकिन वहाँ hide private API calls from Apple के लिए एक रास्ता है।
मुझे यकीन है कि यह संभव है हूँ। ऐप स्टोर में 'इक्उट' किसी भी तरह से प्रोग्रामिंग रूप से वर्तमान कतार को पुनर्प्राप्त कर रहा है, और इसमें ऐप के भीतर से कतार प्रबंधन के साथ कुछ लेना देना नहीं है। उदाहरण के लिए ऐप को पूरी तरह से छोड़ दें, संगीत ऐप में जाएं और कुछ ट्रैक के साथ प्लेलिस्ट बनाएं और इसे चलाएं। फिर ऐप में वापस स्क्रीन पर जाएं और कतार देखने के लिए ऊपरी दाएं भाग में आइकन आइकन टैप करें। आप देखेंगे कि उस प्लेलिस्ट में सभी ट्रैक कतार में हैं। यह कैसे पता चला कि कौन सी प्लेलिस्ट? क्या वे अनियंत्रित एपीआई का उपयोग कर रहे हैं? – sooper
@sooper मुझे लगता है कि वे अनियंत्रित एपीआई का उपयोग कर रहे हैं। नीचे मेरा जवाब देखें। – bugloaf