2012-03-08 10 views
12

विस्तार फ़ाइलों (http://developer.android.com/guide/market/expansion-files.html#ZipLib) पर Google की देव मार्गदर्शिका में अनुभाग के निचले हिस्से में निम्न पाठ है।नमूनाZipfileProvider वर्ग कहां है?

APEZProvider - अधिकांश अनुप्रयोगों को इस कक्षा का उपयोग करने की आवश्यकता नहीं है। यह क्लास एक सामग्री प्रदाता को परिभाषित करता है जो सामग्री प्रदाता उरी के माध्यम से ज़िप फ़ाइलों से डेटा को मार्शल करता है ताकि कुछ एंड्रॉइड एपीआई के लिए फ़ाइल एक्सेस प्रदान किया जा सके जो मीडिया फ़ाइलों तक उरी पहुंच की अपेक्षा करते हैं। एपीके विस्तार पैकेज में उपलब्ध नमूना आवेदन एक परिदृश्य दर्शाता है जिसमें यह वर्ग VideoView.setVideoURI() के साथ एक वीडियो निर्दिष्ट करने के लिए उपयोगी है। इस एप्लिकेशन को पर अपने एप्लिकेशन में उपयोग करने के तरीके के उदाहरण के लिए नमूना ऐप की कक्षा नमूनाज़िपफाइलप्रोवाइडर देखें।

प्रश्न में नमूना आवेदन में इस वर्ग में शामिल नहीं है। लेकिन इसमें AndroidManifest.xml में .SampleVideoPlayerActivity फ़ाइल का संदर्भ शामिल है, जो कि प्रोजेक्ट में मौजूद नहीं है।

क्या किसी ने APEZProvider पर आधारित एक ठोस वर्ग को लागू करने का प्रयास किया है और इसे VideoView.setVideoURI() के साथ उपयोग किया है?

मैं कक्षा को लागू किया है:

public class ZipFileContentProvider extends APEZProvider { 

    @Override 
    public String getAuthority() { 
     return "com.myCompany.myAppName.provider.ZipFileContentProvider"; 
    } 
} 

लेकिन मैं कैसे VideoView.setVideoURI() कॉल के साथ इसका इस्तेमाल करने की जानकारी नहीं है। क्या कोई मदद कर सकता है?

उत्तर

26

यह पता चला कि मेरा ZipFileContentProvider पर्याप्त था। इस समस्या में आने वाले लोगों के लिए। VideoView.setVideoURI() विधि के लिए सामग्री प्रदाता का उपयोग करने के लिए मैंने यहां किया है।

मेनिफेस्ट में प्रदाता जोड़ें।

<provider android:authorities="com.myCompany.myAppName.provider.ZipFileContentProvider" android:name=".ZipFileContentProvider"></provider> 

वीडियो प्लेयर वर्ग में:

final String AUTHORITY = "com.myCompany.myAppName.provider.ZipFileContentProvider"; 
final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); 
video = (VideoView) findViewById(R.id.video); 
video.setVideoURI(Uri.parse(CONTENT_URI + "/" + videoFileName + ".mp4")); 
+0

मैं या तो SampleZipfileProvider नहीं पा सके। मुझे नहीं पता कि आपका उत्तर कैसे काम करता है, लेकिन यह करता है; धन्यवाद! – Blundell

+4

मैं यह जोड़ना चाहता हूं कि यदि आपकी फ़ाइलें ज़िप के अंदर एक फ़ोल्डर में हैं (जैसे मेरी थीं), तो आपको पथ में शामिल करने की आवश्यकता होगी। उदाहरण के लिए Uri.parse (CONTENT_URI + "/ MyFolder /" + VideoFileName + ".mp4") – dnorcott

+0

आप मेरे नायक हैं! ब्लंडेल की तरह, मुझे नहीं पता कि यह कैसे काम करता है, लेकिन यह करता है और मैं इसे ले जाऊंगा: डी धन्यवाद! +1 –

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