मेरा ऐप AVPlayer
के माध्यम से ऑडियो स्ट्रीमिंग चलाता है, और डिवाइस लॉक स्क्रीन पर स्ट्रीम के बारे में जानकारी प्रदर्शित करने के लिए MPNowPlayingInfoCenter
का उपयोग करता है।MPNowPlayingInfoCenter ऑडियो स्ट्रीम चालू होने पर गायब हो जाता है
ऑडियो वास्तव में चल रहा है, यह ठीक काम करता है, लेकिन यदि स्ट्रीम नेटवर्क मंदी के कारण स्ट्रीम करता है (यानी मुझे AVPlayerItemPlaybackStalledNotification
प्राप्त होता है) जानकारी लॉक स्क्रीन से गायब हो जाती है। लेकिन फिर अगर स्ट्रीम खेलना शुरू कर देता है, तो यह फिर से दिखाई देता है।
यह भ्रमित है क्योंकि जब लॉक स्क्रीन से अब-खेल की जानकारी गायब हो जाती है तो यह दिखाता है कि ऐप ने प्लेबैक बंद कर दिया है। लेकिन फिर यह प्लेबैक फिर से शुरू होता है, जब लॉक स्क्रीन यूआई इंगित करता है कि यह नहीं होगा।
क्या यह सुनिश्चित करने के लिए मैं कुछ कर सकता हूं कि स्ट्रीम खेलने के दौरान अब खेल की जानकारी दिखाई देगी लेकिन वर्तमान में नेटवर्क की गति के मुद्दों के कारण नहीं है? ऐसा लगता है कि एक सतत लॉक स्क्रीन यूआई रखने का एकमात्र तरीका वास्तव में नेटवर्क कनेक्शन को मारना है, जब यह स्टाल होता है, जो बेवकूफ है लेकिन कम से कम भ्रमित नहीं है।
मामले में और अधिक विस्तार करने में मदद मिलेगी:
- एप्लिकेशन कि अधिसूचना हो जाता है, केवल एक चीज यह है यूआई अद्यतन है।
- ऐप कभी भी वर्तमान प्रोग्राम होने पर
MPNowPlayingInfoCenter
को साफ़ नहीं करता है, इसलिए जब तक स्ट्रीम चलाना चाहिए, तब तक खाली डेटा नहीं दिखाना चाहिए।
क्या आप एक समय पर्यवेक्षक से जानकारी केंद्र शब्दकोश सेट कर रहे हैं? उदाहरण के लिए: 'addPeriodicTimeObserverForInterval: ' – yairsz
नहीं, मैं एक समय पर्यवेक्षक का उपयोग नहीं कर रहा हूं। अब-बजाने वाली जानकारी केवल उपयोगकर्ता क्रियाओं के प्रत्यक्ष प्रतिक्रिया में अपडेट की जाती है और जब ऐप अग्रभूमि में प्रवेश करता है। –
क्या आप 'AVPlayerItemPlaybackStalledNotification' पर सुन रहे हैं? जब आप नहीं सुनते तो क्या होता है? और आपके डेटा-स्ट्रीम को कैशिंग करने के बारे में क्या है? –