एंड्रॉइड डिफ़ॉल्ट रूप से कई मीडिया फ़ाइल प्रारूपों (.mkv जैसी फ़ाइलें) का समर्थन नहीं करता है। लेकिन एमएक्सप्लेयर और मोबोप्लेयर जैसे खिलाड़ी आपको ऐसी फाइलें चलाने में सक्षम बनाता है। ये एप्लिकेशन कैसे काम करते हैं? क्या कोई प्रोग्रामिंग ट्यूटोरियल या आलेख बता रहा है कि यह कैसे किया जाता है?एमएक्सप्लेयर और मोबोप्लेयर जैसे मीडिया प्लेयर एंड्रॉइड ऐप्स कैसे एमकेवी जैसे असमर्थित फ़ाइल प्रारूपों को चलाते हैं?
उत्तर
एंड्रॉइड डिफ़ॉल्ट रूप से सभी मीडिया प्रारूपों का समर्थन नहीं करता है। इसलिए असमर्थित प्रारूप का समर्थन करने के लिए, मोबोप्लेयर जैसे अनुप्रयोग जेएनआई के माध्यम से जावा और मूल कोड के संयोजन का उपयोग करके मानक मीडिया प्लेयर कार्यों को स्वयं करते हैं।
अधिक समझने के लिए, देखते हैं कि एक मीडिया प्लेयर मीडिया फ़ाइल कैसे चलाता है और यह कैसे 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
वस्तु के साथ बातचीत कर सकते हैं।
ओकबाइट सही है। ये खिलाड़ी तीसरे पक्ष के पार्सर्स/सॉफ्टवेयर-डिकोडर्स या तो स्वामित्व या एफएफएमपीईजी का उपयोग करते हैं। कुछ खिलाड़ी प्रदर्शन के लिए ओपनजीएल का भी उपयोग करते हैं। उनमें से अधिकांश डीकोडेड वीडियो प्रदर्शित करने के लिए सुरस व्यू और इसके मूल समकक्ष नेटिवविंडो का उपयोग करते हैं। यह देशी ढांचे के बिना काम करता है और इसके समानांतर बैठता है। इसलिए moboplayer सॉफ़्टवेयर या हार्डवेयर डिकोडर्स का उपयोग करने का विकल्प भी प्रदान करता है। – peasea
एमकेवी सिर्फ एक कंटेनर है। आप अंदर कई अलग-अलग वीडियो/ऑडियो कोडेक्स का उपयोग कर सकते हैं ... – Goddchen