2011-06-28 15 views
5

इसका एक उदाहरण "एंड्रॉइड के लिए पेंडोरा" के बारे में सोचकर आसानी से समझा जाता है।गतिविधि छिपी हुई है जब वीडियो चला रहा है

मेरी गतिविधि में एक वीडियो व्यू कक्षा से व्याख्यान खेल रहा है। मैं बिना किसी रुकावट के इस गतिविधि से दूसरी गतिविधि (मेरे आवेदन में, या एक अलग एप्लिकेशन (होम स्क्रीन, कुछ अन्य ऐप) पर स्विच करने में सक्षम होना चाहता हूं।

पेंडोरा उदाहरण का उपयोग करके मैं संगीत चलाने के दौरान 'स्विच रेडियो स्टेशनों' दृश्य पर जा सकता हूं और मैं होम स्क्रीन पर जा सकता हूं और फोन पर नेविगेटिंग जारी रख सकता हूं।

क्या यह वीडियो, या ऑडियो के लिए ही संभव है? क्या मैं सिर्फ एक वीडियो फ़ाइल से ऑडियो चला सकता हूं और फिर आसानी से वापस स्विच कर सकता हूं?

उत्तर

4

सामान्य तरीके से इसे संभाला जाता है (और कैसे पेंडोरा इसे संभालता है) पृष्ठभूमि थ्रेड पर किसी सेवा से संगीत को प्लेबैक करना है। इस मामले में VideoView का उपयोग नहीं किया जा सकता क्योंकि यह एक दृश्य है और एक गतिविधि से जुड़ा हुआ है।

मैं एंड्रॉइड VideoView कोड से शुरू करके और इसे दो भागों में विभाजित करके यूआई को संभालने के लिए और दूसरा वीडियो प्लेबैक के लिए इसे एक करके विभाजित करूँगा।

पृष्ठभूमि सेवा में मीडियाप्लेयर चलाएं और जब आपकी वीडियो गतिविधि दिखायी जाती है, तो अपनी वीडियो दृश्य सतह के साथ सेवा कॉल मीडियाप्लेयर.सेटडिस्प्ले() को कॉल करें, और जब आपका वीडियो दृश्य छुपा हुआ है तो शून्य के साथ MediaPlayer.setDisplay() को कॉल करें।

स्पष्ट रूप से यह केवल वीडियो व्यू का उपयोग करने से कहीं अधिक जटिल है और इसे एक सेवा शुरू करने और यूआई के साथ समन्वय करने की आवश्यकता है। आप पृष्ठभूमि थ्रेड में केवल मीडियाप्लेयर चलाने के साथ ही सेवा नहीं कर सकते हैं।

+0

क्या किसी को यह काम मिल रहा है? मैं कोशिश कर रहा हूं, और जब गतिविधि पृष्ठभूमि में जाती है तो प्लेयर से सतह को अलग करने में समस्याएं आ रही हैं। – Rawler

+0

जब भी गतिविधि छोड़ती है, mediaplayer YELLING "त्रुटि (1, -2147483648)" शुरू होता है। 'सेट डिस्प्ले (शून्य)' मदद नहीं करता है, 'सेटसफेस (शून्य)' न तो। – Rawler

+0

क्या कोई यह काम करने में कामयाब रहा? – Petar

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