2012-03-11 16 views
11

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

+0

एमकेवी सिर्फ एक कंटेनर है। आप अंदर कई अलग-अलग वीडियो/ऑडियो कोडेक्स का उपयोग कर सकते हैं ... – Goddchen

उत्तर

10

एंड्रॉइड डिफ़ॉल्ट रूप से सभी मीडिया प्रारूपों का समर्थन नहीं करता है। इसलिए असमर्थित प्रारूप का समर्थन करने के लिए, मोबोप्लेयर जैसे अनुप्रयोग जेएनआई के माध्यम से जावा और मूल कोड के संयोजन का उपयोग करके मानक मीडिया प्लेयर कार्यों को स्वयं करते हैं।

अधिक समझने के लिए, देखते हैं कि एक मीडिया प्लेयर मीडिया फ़ाइल कैसे चलाता है और यह कैसे MoboPlayer द्वारा एंड्रॉइड में ऐप्स की तरह किया जाता है।

Typical tasks of a Media Player

एक खिलाड़ी निम्न कार्य (क) है demux फ़ाइल स्वरूप प्रदर्शन करते हैं और निकालने के वीडियो/ऑडियो (ख) वीडियो और ऑडियो (ग) वीडियो प्रदर्शित डिकोड और ऑडियो खेलने की जरूरत है। आइए देखें कि मोबप्लेयर जैसे खिलाड़ी के मामले में इन तीन क्षेत्रों को कैसे नियंत्रित किया जा सकता है।

File format Demux

एंड्रॉयड सभी फ़ाइल स्वरूप कंटेनरों का समर्थन नहीं करता, डिफ़ॉल्ट रूप से। उदाहरण के लिए, एएसएफ (डब्लूएमवी फाइलों का फ़ाइल प्रारूप) समर्थित नहीं है। इसलिए एक खिलाड़ी को नौकरी करने के लिए अपने स्वयं के demuxer की जरूरत है। libavformat (एफएफएमपीईजी द्वारा उपयोग किया जाता है) एक अग्रणी ओपन सोर्स डेमक्स लाइब्रेरी है।

Video/Audio decode

libavcodec (FFMPEG द्वारा इस्तेमाल किया) एक प्रमुख खुला स्रोत विकोडक पुस्तकालय कि demuxed धारा डीकोड और असम्पीडित कच्चे उत्पादन फ्रेम उत्पादन होता है। इसलिए इसे अक्सर मोबोप्लेयर जैसे खिलाड़ियों द्वारा उपयोग किया जाता है।

Video display

एक वीडियो प्रदर्शित करने के लिए दो विकल्प हैं। खिलाड़ी SurfaceView बफर या ओपनजीएल त्वरित बफर का उपयोग करते हैं। एंड्रॉइड जावा सतह ऑब्जेक्ट (अंतर्निहित सतह फ़्लिंगर ऑब्जेक्ट का अवशोषण) को एक आंतरिक देशी ऑब्जेक्ट में NativeWindow नामक एक कलाकार प्रदान करता है, जिसे मूल कोड द्वारा एक्सेस किया जा सकता है।

आईसीएस (एंड्रॉइड 4.0) के बाद, एंड्रॉइड ओपनजीएल त्वरित बफर (SurfaceTexure और TextureView) तक पहुंच प्रदान करता है। इन्हें वीडियो को प्रदर्शित करने के लिए भी इस्तेमाल किया जा सकता है।

Audio playout

खिलाड़ी सीधे जावा स्तर डीकोड ऑडियो नमूने खेलने के लिए पर प्रदान की जाती AudioTrack वस्तु के साथ बातचीत कर सकते हैं।

+1

ओकबाइट सही है। ये खिलाड़ी तीसरे पक्ष के पार्सर्स/सॉफ्टवेयर-डिकोडर्स या तो स्वामित्व या एफएफएमपीईजी का उपयोग करते हैं। कुछ खिलाड़ी प्रदर्शन के लिए ओपनजीएल का भी उपयोग करते हैं। उनमें से अधिकांश डीकोडेड वीडियो प्रदर्शित करने के लिए सुरस व्यू और इसके मूल समकक्ष नेटिवविंडो का उपयोग करते हैं। यह देशी ढांचे के बिना काम करता है और इसके समानांतर बैठता है। इसलिए moboplayer सॉफ़्टवेयर या हार्डवेयर डिकोडर्स का उपयोग करने का विकल्प भी प्रदान करता है। – peasea