2012-02-24 13 views
31

पर अनियमितता मेरे पास एक वीडियो व्यू के साथ एक एप्लिकेशन है, मैंने वीडियो व्यू में खेलने के लिए एक वीडियो सेट किया है। किसी बिंदु पर वीडियो चल रहा है, तो इसे रोक दिया जाएगा। फिर कुछ समय के लिए रुकने के बाद यह वीडियो फिर से खेलना शुरू कर देगा, लेकिन उस बिंदु पर आगे बढ़ना चाहिए कि अगर वीडियो रोका नहीं गया तो वीडियो होगा। तो उदाहरण के लिएवीडियो व्यू getCurrentPosition() एसर Iconia A200

वीडियो इस बिंदु मैं वीडियो शुरू करना चाहते हैं पर

खेलने

वीडियो 6 सेकंड

वीडियो 10 सेकंड

वीडियो फिर से < चलना शुरू होता के लिए रोक दिया रहता है पर रुका हुआ है --- शुरू होता है 16 सेकंड के निशान पर खेल रहा है।

आदेश इस प्रभाव को प्राप्त करने के लिए मैं समय टिकटों के लिए आवश्यक गणित ऐसा करने मैं जानता हूँ कि कब तक वीडियो के लिए रोक दिया गया था की स्थापना की है, और फिर जब मैं इसे फिर से शुरू, मैं mVideoView.seekTo(timePlayed + timePaused);

यह सब कहते हैं तोशिबा उत्तेजना, और मोटोरोला ज़ूम पर लक्षित के रूप में काम करता है। हालांकि एसर आइकोनिया ए 200 पर ऐसा लगता है कि जिस बिंदु से मैं कॉलवॉ() को आगे भेजता हूं, वैसे ही वीडियो व्यू हमेशा उसी समय वापस आ जाएगा जब मैं getCurrentPosition() पर कॉल करता हूं। इसे स्पष्ट करने के लिए मैंने एक रननेबल स्थापित किया जो वर्तमान स्थिति को लॉग करने वाले लगभग 1000ms तक चला जाता है। यहाँ से उत्पादन में से कुछ है:

/**************** 
* These are from before it is paused/resumed 
* you can see that the current time is functioning 
* as expected. 
******************/ 
Current Position = 0 
Current Position = 734 
Current Position = 1735 
Current Position = 2703 
Current Position = 3737 
Current Position = 4738 
Current Position = 5739 
Current Position = 6740 
Current Position = 7741 
Current Position = 8742 
Current Position = 9743 


/********************************** 
* These are from the exact same runnable 
* after the video has been paused, and 
* started again after seekTo(). 
* The position is no longer increasing. 
* Note that the video is playing correctly on the screen 
* while these logs happen. 
**********************************/ 
Current Position = 23410 
Current Position = 23410 
Current Position = 23410 
Current Position = 23410 

23410, सही समय है कि मैं seekTo() के लिए में गुजर रहा है तो ऐसा लगता है कि मैं बनाने के बाद इस फोन VideoView हमेशा वापस आ जाएगी जो कुछ मैं करने के लिए पारित इससे कोई फर्क नहीं पड़ता कि यह वास्तव में अभी भी खेल रहा है और स्थिति आगे बढ़ रही है।

क्या किसी और ने इस वीडियो व्यू/मीडियाप्लेयर बग का अनुभव किया है? मैंने ज्ञात समस्या समूह पर कुछ चीजें देखीं जो MediaPlayer के बारे में बात कर रहे थे getCurrentPosition() के लिए गलत मान लौट रहे थे, लेकिन ऐसा कोई नहीं मिला जहां यह इस तरह बढ़ने से रोक देगा। मैंने जो देखा है, उनमें से अधिकांश वीडियो के बजाए ऑडियो चलाने की भी कोशिश कर रहे थे।

+0

क्या आप रोकें() के बाद जारी रखने के लिए फिर से शुरू() का उपयोग करते हैं? फिर से शुरू करें मेरे आईकोनिया ए 501 पर काम नहीं करता है। getCurrentPosition() वापसी के लिए पारित मूल्य लौटाता है लेकिन वीडियो अभी भी रुक गया है। – asktomsk

+1

क्या आप कोड का एक उदाहरण भेज सकते हैं? मैं अपने टैबलेट पर जांच करूंगा। – asktomsk

+1

मैंने आपके जैसा ही समस्या नहीं देखी है, लेकिन मैंने देखा है कि कंटेंटपॉजिशन एक्ट अविश्वसनीय रूप से प्राप्त होता है - कभी-कभी यह मेरे लिए 0 देता है जब खोज स्थिति 0. – MaximumGoat

उत्तर

1

इसे डिवाइस की मुफ्त मेमोरी की मात्रा के साथ करना पड़ सकता है। यदि राम कम है तो पृष्ठभूमि गतिविधि आपके काउंटर के साथ पुनरारंभ हो सकती है।

+0

यदि गतिविधि पुनरारंभ हो रही है तो स्क्रीन पर वीडियो भी पुनरारंभ होगा। लेकिन वीडियो सामान्य रूप से खेलना जारी रखता है, और मेरी गतिविधि लाइफसाइकिल विधियों में से कोई भी नहीं कहा जा रहा है, इसलिए मुझे संदेह है कि यह मामला नहीं है। – FoamyGuy

1

गतिविधि के ऑनपोज़ विधि में वीडियोप्लेयर को रिलीज़ और रीसेट करें और एक गतिविधि के ऑनस्टार्ट एमटी में फिर से सेट करें। तलाशने के लिए आपको क्रोनोमीटर का उपयोग क्रोनोमीटर समय की तलाश में उपयोगकर्ता videoview.set समय के समय को शामिल करने के लिए करना चाहिए।

1

शायद यह मुख्य यूआई थ्रेड को अधिभारित करने में एक समस्या है। चूंकि वीडियो एक उच्च डेटा तत्व है और एसर आइकनिया एक महान डिवाइस नहीं है, इसलिए यह कुछ डेटा की कमी, असामान्यताओं और संभवतः यहां तक ​​कि दुर्घटनाग्रस्त हो सकता है। AsyncTask का उपयोग कर वीडियो जोड़ने का प्रयास करें।

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