2011-06-08 15 views
5

मेरे आवेदन में मुझे उपयोगकर्ता को एक प्रगतिशील डाउनलोड (वीडियो फ़ाइल) पर पूर्वावलोकन प्रदान करने की आवश्यकता है।वीडियो व्यू और प्रगतिशील डाउनलोड

इसे प्राप्त करने के लिए, मैं वीडियो (.mp4, .3gpp) की सामग्री को दिखाने के लिए VideoView घटक का उपयोग कर रहा हूं जो डाउनलोड किया जा रहा है।

समस्या यह है कि मैं http:// या rtsp:// प्रोटोकॉल के माध्यम से दूरस्थ मीडिया तक नहीं पहुँच सकता है, इसलिए मैं VideoView.setVideoPath उपयोग करने के लिए वीडियो की स्थानीय प्रतिलिपि खेलने के लिए डाउनलोड करते समय मजबूर कर रहा हूँ।

दुर्भाग्य से यह Android उपकरणों कि StageFright ढांचे (ताकि OpenCore और मेरे अनुभव में कुछ Tegra2-based उपकरणों) का उपयोग नहीं कर सकते हैं, VideoView सही ढंग से संभाल सकते हैं प्रगतिशील डाउनलोड पर की तरह लगता है: यह वीडियो मान्यता प्राप्त की केवल भाग खेल सकते हैं घटक प्रारंभ के दौरान।

तो स्पष्ट होने के लिए: यदि उपयोगकर्ता केवल 5% वीडियो डाउनलोड होने पर "play" दबाता है, तो वीडियो व्यू केवल 5% वीडियो दिखाएगा, इससे कोई फर्क नहीं पड़ता कि इस दौरान अधिक वीडियो सामग्री डाउनलोड की गई हो।

मेरे अनुभव में यह समस्या StageFright ढांचे का उपयोग कर डिवाइस को प्रभावित नहीं करती है (उदाहरण: नेक्सस वन 2.2, नेक्सस वन 2.3.4)।

क्या कोई मुझे संभावित समाधान पर इंगित कर सकता है? अग्रिम धन्यवाद

+0

हैलो, आप जिस तरह से इस बग को ठीक करने लगा? मुझे एक ही त्रुटि थी। और अभी, मैं अटक गया हूँ। –

+0

अंत में हम समाधान के कारण का पता लगाते हैं। [यहां] [http://stackoverflow.com/questions/19587880/sorry-this-video-is-not-valid-for-streaming-to-this-device-in-http-streaming-an) धन्यवाद, –

उत्तर

1

वीडियोव्यू वीडियो प्लेबैक उपयोग केस के लिए एंड्रॉइड एप्लिकेशन फ्रेमवर्क में कक्षा का उपयोग करने के लिए तैयार है। यह प्लेबैक प्राप्त करने के लिए आंतरिक रूप से MediaPlayer क्लास का उपयोग करता है। मीडियाप्लेयर फ़ाइल प्रारूप, सामग्री की उत्पत्ति इत्यादि जैसे कुछ मानदंडों के आधार पर आंतरिक रूप से उपलब्ध मीडिया फ्रेमवर्क का उपयोग करता है

तो सीमा अंतर्निहित ढांचे से है और वीडियो व्यू नहीं है। यदि आप अभी भी वीडियो व्यू पर संदेह कर रहे हैं तो मीडिया प्लेयर का उपयोग करके अपनी खुद की वीडियो प्लेयर गतिविधि लिखें। आप एक ही परिणाम देखेंगे।

एंड्रॉइड के सभी संस्करण (स्टेजफ़ाइट के रूप में पढ़ने) प्रगतिशील डाउनलोड का समर्थन नहीं करते हैं।

हो सकता है कि आप http सर्वर से सामग्री डाउनलोड करने के लिए DownloadManager क्लास का उपयोग कर सकें और त्वरित पूर्वावलोकन के लिए मीडिया प्लेयर/वीडियो व्यू के पथ प्रदान कर सकें।

Shash316

+0

हां, समस्या 'मीडियाप्लेयर' (और इसलिए 'वीडियो व्यू' के तहत) के विभिन्न मीडिया ढांचे को प्रभावित करती है। 'डाउनलोड प्रबंधक' के माध्यम से वीडियो डाउनलोड करना चाल नहीं कर सकता (मैं पहले से ही इसका उपयोग करता हूं), क्योंकि यह मुद्दा अंतर्निहित मीडिया ढांचे द्वारा वीडियो बफर को संभालने के तरीके से संबंधित है। फिर भी धन्यवाद। –

2

आप .H264 चलाने का प्रयास कर रहे हैं, तो आप फ़ाइल के सामने से MOV परमाणुओं बढ़ने की जरूरत है। ये कोडक को अन्य चीजों के साथ फिल्म की लंबाई बताते हैं।

कोशिश qtfaststart

http://ffmpeg.zeranoe.com/builds/

+0

हैलो, क्या आपको इस बग को ठीक करने का तरीका मिला? मुझे एक ही त्रुटि थी। और अभी, मैं अटक गया हूँ। क्या आप मुझे इस कार्य को समाप्त करने के कुछ तरीके देना चाहते हैं, प्रगतिशील डाउनलोड के साथ वीडियो स्ट्रीमिंग करना चाहते हैं।पी/एस: मैं वीडियो को .h264 पर एन्कोड कर सकता हूं, इसे वेबसाइट पर अपलोड कर सकता हूं, और मेरा मानना ​​है कि मेरा कोड भी ठीक है। डिवाइस: सैमसंग गैलेक्सी 7 "2.2.1 –

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