2012-12-11 25 views
9

मेरा ऐप उपयोगकर्ताओं को बहुत सारी सामग्री वितरित करने का प्रयास कर रहा है, इसलिए ऐप का आकार 50 एमबी से अधिक है। कुछ सामग्री को कम या हटा नहीं सकता है, इसलिए हमने विस्तार दृष्टिकोण के साथ जाने का फैसला किया है।विस्तार फ़ाइल के अंदर एंड्रॉइड प्ले मूवी

मैं इस ट्यूटोरियल का पालन करने की कोशिश कर रहा हूं: Android APK Expansion Files, और परीक्षण के लिए मेरे डिवाइस में विस्तार फ़ाइल डालने में सफल रहे हैं। मैं विस्तार के अंदर किसी भी वीडियो फ़ाइल की इनपुट स्ट्रीम प्राप्त कर सकता था। लेकिन जब मैं VideoView को VideoView के लिए सेट करने का प्रयास करता हूं, तो यह क्रैश हो जाता है। यहाँ कुछ कोड हैं:

ZipFileContentProvider contentProvider = new ZipFileContentProvider(); 
String contentPath = "content://"; 
File root = Environment.getExternalStorageDirectory(); 
String EXP_PATH = File.separator + "Android" + File.separator + "obb" + File.separator; 
String path = root.toString() + EXP_PATH + context.getPackageName() + File.separator + "main.1.com.c4e1.in2cricket.obb"; 
String zipFileName = contentPath + path + "/" + fileName; 
Uri uri = Uri.parse(zipFileName); 
videoView.setVideoUri(uri); 


public class ZipFileContentProvider extends APEZProvider { 

    @Override 
    public String getAuthority() { 
     return "com.c4e1.in2cricket.provider.ZipFileContentProvider"; 
    } 
} 
+0

क्या आपने यह प्रश्न देखा है (विस्तार फ़ाइलों के क्रैश के संबंध में): http://stackoverflow.com/questions/10051213/accessing-apk-expansion-file-with-uri-with-google-zip-expansion-library- –

+0

का कारण यह नहीं है कि मेरा – vodkhang

उत्तर

2

ज़िप और obb फ़ाइलों यह हमेशा zipEntries आप के साथ काम कर रहे हैं प्रवेश करने के लिए एक अच्छी आदत है के साथ काम करते हुए।

यह सुनिश्चित करने के लिए कि आपकी धारणाएं सही हैं, इस लॉग को जांचें।

यूरी प्रदान करने के लिए मध्यस्थ के लिए एपीईजेडप्रोवाइडर का उपयोग करें।

इसे standard android document में देखें।

आशा है कि यह आपकी मदद करेगा।

+0

http://stackoverflow.com/questions/12635069/accessing-to-files-inside-obb-expansion-file यह आपको काम करने में मदद कर सकता है। –

+0

मदद नहीं प्रतीत होता है, मैं अपने वीडियो के लिए इनपुट स्ट्रीम प्राप्त कर सकता हूं – vodkhang

+0

कृपया अपनी स्ट्रीम के आकार को देखने के लिए is.available() का उपयोग करके सत्यापित करें। यदि आकार आपकी उम्मीद के अनुसार है, तो इसे डेटा स्रोत() के रूप में उपयोग करें और अपने mediaplayer को readyAsync() के साथ तैयार करें। –