मेरा आईओएस ऐप वेब से मीडिया स्ट्रीम करने के लिए AVPlayer
का उपयोग करता है। मैं बफरिंग (playbackBufferEmpty
) जैसी घटनाओं का पता लगाने के लिए केवीओ का उपयोग कर रहा हूं और पकड़ा जा रहा है (playbackLikelyToKeepUp
)। हालांकि, मैंने एक बेहद विशिष्ट बग देखा है। हालांकि अधिकांश नेटवर्क मंदी के दौरान, playbackBufferEmpty
केवीओ मारा जाता है, और जब यह ठीक हो जाता है, तो playbackLikelyToKeepUp
केवीओ अपेक्षित हिट होता है, मैंने देखा है कि (कुछ आवृत्ति के साथ) AVPlayer
कुछ समय के लिए बफर करेगा, पुनर्प्राप्त करें, playbackLikelyToKeepUp
हिट है , ऑडियो शायद 1-3 सेकंड के लिए खेलता है, और फिर ऑडियो फिर से खेलना बंद कर देता है जैसे कि यह playbackBufferEmpty
केवीओ को फिर से मार रहा है। और यह इससे ठीक नहीं होता है।एवीप्लेयर बफरिंग के बाद पुनर्प्राप्त नहीं
टी एल; डॉ: playbackBufferEmpty
(10-20 सेकंड) ->playbackLikelyToKeepUp
-> बंद हो जाता है खेल रहे हैं, लेकिन कोई KVO मारा जाता है -> 1-3s लिए खेलता है।
सबसे खराब हिस्सा तब होता है जब यह होता है, AVPlayer
बफरिंग से पुनर्प्राप्त होने पर फिर से खेलना शुरू नहीं करता है, और ऐप तब तक चुप है जब तक AVPlayer
मैन्युअल रूप से बंद/प्रारंभ नहीं होता है। अंत में, जब भी मैं स्ट्रीम करता हूं, यह कम या ज्यादा होता है। क्या यह AVPlayer
के साथ ज्ञात समस्या है? क्या यह कुछ तीसरा केवीओ कार्यक्रम है जिसके लिए मैं देख सकता हूं? या इस पर डीबग करने के तरीके पर कोई सुझाव? धन्यवाद!
संपादित: अतिरिक्त जानकारी: AVPlayer
के error
संपत्ति nil
जब ऐसा होता है है, status
संपत्ति खेलने के लिए तैयार है, और rate
संपत्ति 1. उर्फ किसी और अजीब कुछ भी नहीं है मैं के रूप में चल रहा है के रूप में दूर है कह सकते हैं।