मैं निम्नलिखित कोड है:संपत्ति निर्देशिका से ऑडियो फ़ाइल खेलते हैं
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
समस्या यह है कि, जब मैं इस कोड चलाने के लिए, यह बजाय संपत्ति निर्देशिका में सभी ऑडियो फ़ाइलें खेल रहा शुरू होता है, वर्णमाला के क्रम में है मैंने अनुरोध की ऑडियो फाइल को चलाने का। मैं क्या गलत कर रहा हूं? संपत्ति निर्देशिका से ऑडियो फाइलों को चलाने का कोई बेहतर तरीका है?
अनुवर्ती प्रश्न: क्या संपत्ति निर्देशिका में ऑडियो फ़ाइलों को रखने और उन्हें res/raw निर्देशिका में रखने के बीच कोई अंतर है? इस तथ्य के अलावा कि अगर वे संपत्ति निर्देशिका में हैं तो उन्हें आईडी नहीं मिलती हैं। अगर मैं ऑडियो फ़ाइलों को res/raw फ़ोल्डर में ले जाता हूं तो मुझे MediaPlayer
s का उपयोग करने में समस्या है क्योंकि setDataSource()
के लिए कोई आईडी पैरामीटर नहीं है। मुझे इस तरह की समस्या को संभालने के लिए एक अच्छा दिशानिर्देश नहीं मिल रहा है।
यह काम किया। धन्यवाद। लेकिन मुझे लगता है कि मेरा संस्करण भी काम करना चाहिए। –
आपका संस्करण काम करेगा यदि आपके पास संपत्ति निर्देशिका में केवल एक फ़ाइल थी। संपत्ति निर्देशिका सामग्री वास्तव में डिस्क पर 'असली फ़ाइलें' नहीं हैं। उन सभी को एक दूसरे के साथ एक साथ रखा जाता है। इसलिए, यदि आप यह निर्दिष्ट नहीं करते कि कहां से शुरू करना है और कितने बाइट पढ़ने के लिए, खिलाड़ी अंत तक पढ़ेगा (यानी, संपत्ति निर्देशिका में सभी फाइलें खेलना जारी रखेंगे) –
बहुत अच्छा जवाब! – Redax