2011-01-14 8 views
6

हाय मैं अपने एंड्रॉइड एप्लिकेशन में किसी वेबसाइट से वीडियो स्ट्रीम कर रहा हूं। मेरे पास अंतिम बार देखा गया वीडियो दिखा रहा एक इतिहास विकल्प है। मुझे आश्चर्य है कि क्या मैं कैश का उपयोग कर सकता हूं ताकि जब उपयोगकर्ता इतिहास में प्रवेश करता है तो वीडियो तेज़ी से खेला जाता है (फिर से डाउनलोड नहीं किया जाता है)। जब आप एंड्रॉइड में कैश का उपयोग करते हैं तो इसका मतलब यह है कि पूरा वीडियो डाउनलोड और सहेजा गया है? या कुछ डेटा कहीं से बचाया जाता है (पूरे वीडियो नहीं)।कैश एंड्रॉइड में डाउनलोड की गई फ़ाइलों को कैसे सहेजना है

कुछ मदद की सराहना की जाएगी !!!

धन्यवाद।

उत्तर

19

यह आपकी मदद करनी चाहिए।

URLConnection cn = new URL(mediaUrl).openConnection(); 
    cn.connect(); 
    InputStream stream = cn.getInputStream(); 

    File downloadingMediaFile = new File(context.getCacheDir(), "downloadingMedia.dat"); 

    FileOutputStream out = new FileOutputStream(downloadingMediaFile); 
    byte buf[] = new byte[16384]; 
    do { 
     int numread = stream.read(buf); 
     if (numread <= 0) break; 
     out.write(buf, 0, numread); 
     // ... 
    } while (...); 
+0

तो इसका मतलब है कि पूरी फ़ाइल कैश निर्देशिका में डाउनलोड की जाएगी? क्षमा करें, मुझे नहीं पता कि कैसे कैश काम करता है ... – madcoderz

+0

@madcoderz: पूरी फ़ाइल या इसका केवल एक हिस्सा, यह निर्णय लेने के लिए आप पर निर्भर है। डेटा को स्टोर करने के लिए एक कैश होता है ताकि भविष्य में इसकी पहुंच तेज हो। मुझे लगता है कि आपको यही चाहिए। – gulbrandr

+3

लेकिन getCacheDir() एक 'फ़ाइल' देता है और 'स्ट्रिंग' नहीं। –

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