2010-02-25 10 views
12

लघु संस्करण: एमपी 3 में एन्कोड किए गए डेटा (और आदर्श रूप से एएसी/ओजी/डब्लूएमए) में जावा सरणी या बाइटबफर में प्राप्त करने का सबसे अच्छा तरीका क्या है कि मैं कुशलतापूर्वक कर सकता हूं?इसे चलाने के बिना एंड्रॉइड पर एनकोडेड ऑडियो डेटा (एमपी 3, आदि) डीकोडिंग

मैं एक प्रोग्राम को एक साथ डाल रहा हूं जो ध्वनि फ़ाइलों को अपनी सुविधाओं में से एक के रूप में धीमा कर रहा है। यह डब्ल्यूएवी फाइलों के लिए ठीक काम करता है, जो हेडर प्लस सटीक बाइनरी डेटा है जिसे स्पीकर पर भेजा जाना आवश्यक है, और अब मुझे एमपी 3 के लिए इसे लागू करने की आवश्यकता है (आदर्श, यह एएसी, ओग और डब्लूएमए का भी समर्थन करेगा , लेकिन चूंकि वे कम लोकप्रिय स्वरूप हैं, यह आवश्यक नहीं है)। एंड्रॉइड को एमपी 3 को चलाने के बिना डीकोड करने के लिए इंटरफ़ेस का खुलासा नहीं करता है, इसलिए मुझे इंटरफ़ेस बनाना होगा।

तीन विकल्प, खुद को प्रस्तुत करते हालांकि मैं दूसरों के लिए खुला रहा हूँ:

1) मेरे अपने विकोडक लिखें। मेरे पास पहले से ही एक कार्यात्मक फ्रेम डिटेक्टर है कि मैं विकल्प (3) के लिए उपयोग करने की उम्मीद कर रहा था, और अब केवल को हफमैन डिकोडिंग तालिकाओं को लागू करने की आवश्यकता होनी चाहिए।

2) डिकोडिंग को संभालने के लिए जेएलयर या समकक्ष जावा लाइब्रेरी का उपयोग करें। मैं पूरी तरह से स्पष्ट नहीं हूं कि लाइसेंस रैमिकेशंस क्या हैं।

3) libmedia लाइब्रेरी/MediaPlayerService से कनेक्ट करें। यह साउंडपूल करता है, और उस सेवा के उपयोग की मात्रा मुझे पर विश्वास करती है कि यह आधिकारिक रूप से अस्थिर है, यह कार्यान्वयन कहीं भी नहीं जा रहा है। इसका मतलब है सेवा से कनेक्ट करने के लिए जेएनआई कोड लिखना, लेकिन मुझे लगता है कि यह एक गहरी खरगोश छेद है। सतह पर, मैं sp <> टेम्पलेट के साथ परेशानी कर रहा हूं।

+0

इस समस्या के साथ कोई भाग्य? – twk

+0

क्या आपने ऑडियो डेटा डीकोड करने में सफल रहे? यदि हां, तो आपने यह कैसे किया? –

उत्तर

1

मैंने libmad और NDK के साथ ऐसा किया। जेएलयर धीमा करने का तरीका है और मीडिया ढांचा एक चलती लक्ष्य है। आप http://apistudios.com/hosted/marzec/badlogic/wordpress/?p=231

+1

यह कुछ हद तक सीमित समाधान की तरह लगता है, क्योंकि libmad जीपीएल के तहत लाइसेंस प्राप्त है; जिसका अर्थ है कि इसका उपयोग करने के लिए, मुझे जीपीएल के तहत अपने ऐप को लाइसेंस देना होगा, जो ऐसा कुछ नहीं है जिसे मैं करने की योजना बना रहा था (और ऐसा लगता है जैसे आप एक ही नाव में हो सकते हैं)। यह जेएलयर आकर्षक बनाने का हिस्सा है: यह एलजीपीएल लाइसेंस प्राप्त है। एंड्रॉइड अपाचे लाइसेंस प्राप्त है, इसलिए आप वास्तव में स्पष्ट हैं। मेरे एक महत्वपूर्ण हिस्से में संदेह है कि मीडिया ढांचा एक चलती लक्ष्य है: इस बिंदु पर, यह कई उच्च स्तरीय वस्तुओं (मीडियाप्लेयर और साउंडपूल, ज्यादातर) में शामिल है, जो मुझे संदेह है कि उन्हें हटा दिया जाएगा। –

1

पर जानकारी और स्रोत कोड प्राप्त कर सकते हैं मैंने कोशिश नहीं की है, लेकिन mp3transform LGPL है।

+2

एंड्रॉइड javax.sound का समर्थन नहीं करता है। यह lib इसका उपयोग करता है, इसलिए यह एंड्रॉइड के लिए उपयोगी नहीं है – Adem

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