2016-05-16 13 views
5

मैं थोड़ा कैसे खेलते हैं और एंड्रॉयड में रिकॉर्ड वीडियो/ऑडियो के बारे में उलझन में हूँ।mediacodec मीडियाप्लेयर बनाम और mediarecorder

-To खेलने: MediaPlayer बनाम MediaExtractor + MediaCodec

-To रिकॉर्ड: MediaRecorder बनाम MediaCodec + MediaMuxer

मैं करना है जब मैं वास्तव में किन परिस्थितियों में एक इन कक्षाओं का उपयोग करना चाहिए में समझ में नहीं आता एक या दूसरों का उपयोग करें? क्षमा करें अगर यह एक दोहराया सवाल है, मुझे लगता है कि यह एक आम एक होना चाहिए, लेकिन मैं किसी भी नहीं मिला है।

उत्तर

5

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

यदि आप कुछ और कस्टम करना चाहते हैं, तो जब आप ध्यान दें कि उस श्रृंखला का हिस्सा जिसे आप संशोधित करना चाहते हैं, उच्च स्तर के वर्गों के अंदर छिपा हुआ है, तो आप निचले स्तर पर आगे बढ़ना चाहेंगे। जैसे MediaExtractor के लिए; यदि आप केवल एक फ़ाइल से डेटा के पैकेट को निकालने के लिए, लेकिन डिकोड नहीं और प्रदर्शन/उन्हें उन्हें तुरंत वापस खेलने चाहते हैं, आप MediaExtractor का उपयोग करना चाहेंगे। यदि आप किसी अन्य स्रोत से पैकेट प्राप्त करना चाहते हैं कि सिस्टम स्वयं समर्थित नहीं है, तो आप MediaExtractor के बिना MediaCodec का उपयोग करना चाहेंगे। इसी तरह, अगर आप कैमरे से कुछ और रिकॉर्ड, या एक फ़ाइल है कि MediaRecorder का समर्थन करता है की तुलना में कहीं और उत्पादन लिखना चाहते हैं, आप MediaCodec बजाय सीधे MediaRecorder का उपयोग करना चाहेंगे।

भी ध्यान रखें कि उच्च स्तर की कक्षाओं में भी सुधार और नए API संस्करण के साथ और अधिक लचीला हो, आप चीजें हैं जो पहले से मैन्युअल रूप से निचले स्तर की कक्षाओं का उपयोग करने के लिए आवश्यक करने के लिए अनुमति देता है। जैसे एंड्रॉइड 5.0 में, MediaRecorder को एक कस्टम सतह से रिकॉर्ड करने की क्षमता मिली, जिससे आप कैमरे के न केवल अपने आप को प्रस्तुत करने वाले किसी वीडियो का रिकॉर्ड रिकॉर्ड कर सकते हैं। निम्न स्तर के वर्गों का उपयोग करके 4.3 से पहले यह संभव था।

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