android - Play audio file from the assets directory -


मेरे पास निम्न कोड है:

  AssetFileDescriptor afd = getAssets ()। OpenFd (" AudioFile.mp3 "); खिलाड़ी = नया मीडियाप्लेयर (); player.setDataSource (afd.getFileDescriptor ()); player.prepare (); player.start ();  

समस्या यह है, जब मैं इस कोड को चलाता हूं, तो वह आसाईट्स निर्देशिका में सभी ऑडियो फाइलों को खेलना शुरू कर देता है, बस मैंने जिस ऑडियो फाइल का अनुरोध किया है उसे बजाए वर्णमाला क्रम में। मैं क्या गलत कर रहा हूं? संपत्ति निर्देशिका से ऑडियो फाइल चलाने का कोई बेहतर तरीका है?

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

  player.setDataSource (afd.getFileDescriptor (), afd.getStartOffset (), afd.getLength ());  

आपका संस्करण काम करेगा यदि आपके पास संपत्ति निर्देशिका में केवल एक फाइल है संपत्ति निर्देशिका सामग्री वास्तव में डिस्क पर 'असली फ़ाइलें' नहीं हैं उन सभी को एक साथ एक के बाद एक साथ रखा जाता है इसलिए, यदि आप यह नहीं निर्दिष्ट करते हैं कि कहां से शुरू करने के लिए और कितने बाइट्स पढ़ते हैं, खिलाड़ी अंत तक पढ़ा जाएगा (जो कि, सभी फाइलें संपत्ति निर्देशिका में चलती रहेंगी)


Comments