2012-08-03 11 views
9

क्या एंड्रॉइड डिवाइस से पूछने का कोई तरीका है कि ऑडियो और वीडियो कोडेक्स एन्कोडिंग के लिए कौन सा समर्थन करता है?एंड्रॉइड डिवाइस के लिए समर्थित कोडेक प्राप्त करें

मैं उपकरणों कि http://developer.android.com/guide/appendix/media-formats.html में अनिवार्य रूप में सूचीबद्ध codecs में से कुछ का समर्थन नहीं करते पाया जाता है और वहाँ सूचीबद्ध नहीं अतिरिक्त कोडेक समर्थन उपकरणों होने लगते हैं।

उत्तर

4

क्या एंड्रॉइड डिवाइस से पूछने का कोई तरीका है कि ऑडियो और वीडियो कोडेक्स एन्कोडिंग के लिए कौन सा समर्थन करता है?

मैं वास्तव में वहां चाहता था, लेकिन कम से कम आईसीएस के माध्यम से नहीं है।

जेली बीन MediaCodec कक्षा प्रदान करता है। हालांकि इसमें "समर्थित कोडेक्स की एक सूची नहीं है", इसमें createEncoderByType() है, जहां आप एक एमआईएमई प्रकार में गुजरते हैं। संभवतः, यदि 0 वांछित एमआईएम प्रकार समर्थित नहीं है तो RuntimeException फेंक देगा या null लौटाएगा। और मैं वादा नहीं कर सकता कि सिर्फ MediaCodec रिपोर्ट करता है कि एक एन्कोडर उपलब्ध है कि MediaRecorder से काम करने की गारंटी है।

+1

और मीडियाकोडेक में MediaRecorder से कोडेक-स्थिरांक का एक अलग सेट है। –

6

है कि आप के लिए दिलचस्प हो सकता है:

private static MediaCodecInfo selectCodec(String mimeType) { 
    int numCodecs = MediaCodecList.getCodecCount(); 
    for (int i = 0; i < numCodecs; i++) { 
     MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i); 

     if (!codecInfo.isEncoder()) { 
      continue; 
     } 

     String[] types = codecInfo.getSupportedTypes(); 
     for (int j = 0; j < types.length; j++) { 
      if (types[j].equalsIgnoreCase(mimeType)) { 
       return codecInfo; 
      } 
     } 
    } 
    return null; 
} 

यह here मिले। जैसा कि आप देख सकते हैं कि आपको MediaCodecList.getCodecCount(); के साथ स्थापित कोडेक्स की संख्या मिलती है। MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i); के साथ आपको सूची में से किसी एक विशेष कोडेक के बारे में जानकारी मिलती है। उदाहरण के लिए आपको कोडेक का शीर्षक/नाम बताता है।

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