मैं एआर वीडियो प्लेबैक ऐप बना रहा हूं। मैं ऐप में शामिल करने के बजाय डिवाइस स्टोरेज से वीडियो खेलना चाहता हूं। वीडियो बनावट में पथ क्षेत्र में मुझे आंतरिक भंडारण का पथ लिखना चाहिए। मैंने लिखा "/storage"emulated/0/Demo.mp4" (वीडियो का नाम डेमो है) यह परीक्षण डिवाइस पर काम करता है, लेकिन जब मैं अन्य डिवाइस पर ऐप चलाने का प्रयास करता हूं तो यह काम नहीं करता है क्योंकि पथ अलग होता है (आंतरिक पथ है: / storage / sdcard0) डिवाइस बनावट को ऐप चलाने के लिए वीडियो बनावट में मुझे क्या पथ लिखा जाना चाहिए?
उत्तर:
जवाब के लिए 0 № 1अपने ऐप के लिए आंतरिक स्टोरेज पर स्थानों को खोजने के लिए, उपयोग करें getFilesDir()
, किसी फ़ाइल संदर्भ प्राप्त करने के लिए किसी भी संदर्भ (जैसे आपकी गतिविधि, पर कॉल किया जाता है।
अपने ऐप के लिए अद्वितीय बाहरी संग्रहण पर स्थान प्राप्त करने के लिए, उपयोग करें getExternalFilesDir()
, किसी फ़ाइल संदर्भ प्राप्त करने के लिए किसी भी संदर्भ (जैसे आपकी गतिविधि, पर कॉल किया जाता है।
सामान्य प्रकार की फ़ाइलों (जैसे, फिल्में) के लिए बाहरी संग्रहण पर मानक स्थान प्राप्त करने के लिए, उपयोग करें getExternalStoragePublicDirectory()
पर्यावरण पर
बाहरी भंडारण की जड़ प्राप्त करने के लिए, उपयोग करें getExternalStorageDirectory()
पर्यावरण पर हालांकि, इसे आजकल मैला प्रोग्रामिंग माना जाता है, क्योंकि यह डेवलपर्स को यादृच्छिक स्थानों में फ़ाइलों को रखने के लिए प्रोत्साहित करता है।
जवाब के लिए 0 № 2
हार्डकोडिंग चीजें सबसे अच्छा तरीका नहीं है लेकिन आप जांच सकते हैं कि वीडियो मौजूद है या नहीं
/sdcard
/mnt/sdcard
/storage/sdcard0
/storage/emulated/0
/storage/emulated/legacyode
कम से कम वे एंड्रॉइड उपकरणों के लिए सबसे आम जगह हैं। फिर इंस्पेक्टर का उपयोग करने के बजाय प्रोग्रामिक रूप से पैच सेट करें