2014-10-14 10 views
8

मेरे पास एक संगीत ऐप है जो तेजी से लिखा गया है, मैं MPMusicPlayerController.systemMusicPlayer का उपयोग कर रहा हूं, एप्लिकेशन म्यूजिकप्लेयर भी कोशिश की।पृष्ठभूमि में MPMusicPlayerController अधिसूचनाओं का पता लगाएं

संगीत अपेक्षित पृष्ठभूमि में ठीक खेलता है।

जब मेरा ऐप पृष्ठभूमि में है तो मुझे प्लेबैक स्टेट चेंज नोटिफिकेशन की आवश्यकता है, इसलिए मेरा ऐप खेलने के लिए अगले गीत को निर्धारित कर सकता है।

मेरे पास मेरे दृश्यडिडलोड विधि में निम्न है। मेरी विधि "प्लेबैक चेंज" को सभी सही राज्यों के साथ बुलाया जाता है यदि मेरा आवेदन अग्रभूमि में है।

NSNotificationCenter.defaultCenter().addObserver(
     self, 
     selector: "playbackChanged", 
     name:MPMusicPlayerControllerPlaybackStateDidChangeNotification, 
     object: MPMusicPlayerController.systemMusicPlayer() 
    ) 

यदि मेरा ऐप पृष्ठभूमि में है तो मुझे कुछ भी नहीं मिलता है। मुझे आईओएस 7 के साथ याद है और आईपॉड म्यूजिकप्लेयर का उपयोग करना जो अब आईओएस 8 में बहिष्कृत है, मुझे इन सूचनाओं को पृष्ठभूमि में सही तरीके से प्राप्त होगा।

कोई विचार गलत क्या हो रहा है?

+0

क्या आपको यहां कोई और मिला है? पृष्ठभूमि में – newenglander

उत्तर

0

संगीतप्लेयर पर beginGeneratingPlaybackNotifications() पर कॉल करना मेरे लिए काम करना प्रतीत होता था।

MPMusicPlayerController.systemMusicPlayer().beginGeneratingPlaybackNotifications() 
NSNotificationCenter.defaultCenter().addObserver(
    self, 
    selector: "playbackChanged", 
    name:MPMusicPlayerControllerPlaybackStateDidChangeNotification, 
    object: MPMusicPlayerController.systemMusicPlayer() 
) 

अद्यतन: दुर्भाग्य से MPMusicPlayerNotifications पृष्ठभूमि में मज़बूती से काम नहीं करेगा।

+0

भी? – evenodd

+0

मैंने अधिक परीक्षण किया और दुर्भाग्यवश ऐप निलंबित होने के बाद यह फिर से सक्रिय होने तक कोड निष्पादित नहीं करेगा। मैंने जो पढ़ा है उससे MPMusicPlayer अधिसूचना पृष्ठभूमि में काम नहीं करेगी। अब AVPlayer पृष्ठभूमि में कोड निष्पादित करता है और आईपॉड लाइब्रेरी आइटम के साथ काम करता है लेकिन सेटअप के लिए यह अधिक जटिल है। –

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