2013-01-10 19 views
6

मुझे Android पर MediaRecorder क्लास के साथ कुछ मदद चाहिए।एंड्रॉइड getSupportedVideoSizes सभी रिटर्न शून्य

मैं समर्थित वीडियो आकारों की सूची प्राप्त करने के लिए getSupportedVideoSizes का उपयोग करने का प्रयास करता हूं, लेकिन यह हमेशा शून्य हो जाता है।

परीक्षण में, निम्नलिखित उपकरणों null लौट जब getSupportedVideoSizes क्वेरी की जाती है:

  • गैलेक्सी नेक्सस (Android 4.2)
  • HTC एक मिनी (एंड्रॉयड 4.4.2)
  • HTCEVOV4G (एंड्रॉयड 4.0.3)
+0

यहां इस विषय पर कुछ चर्चा है http://stackoverflow.com/questions/5934829/how-to-get-supported-video-camera-resolutions-in-android। – harism

+0

हाय आपकी मदद के लिए धन्यवाद, लेकिन दुर्भाग्य से मैंने उस पोस्ट को देखा है। लेकिन मैं अलग पूर्वावलोकन और वीडियो आउटपुट कैसे सेट कर सकता हूं? यही वह है जिसे मैं समझ नहीं पा रहा हूं ... क्योंकि वे सभी उस फ़ंक्शन का उपयोग करते हैं। समर्थित वीडियो आकार, लेकिन मेरे लिए यह शून्य लौट रहा है ... – cataHHH

+0

क्या आपने YShinkarev द्वारा छोड़ी गई अंतिम टिप्पणी देखी थी? वहां उल्लेख किया गया था कि कुछ मामलों में 'getSupportedVideoSizes' 'डिज़ाइन द्वारा शून्य लौटाता है। – harism

उत्तर

33

The documentation for Camera.getSupportedVideoSizes() जो पढ़ता है,


कैमरे के अलग पूर्वावलोकन और वीडियो आउटपुट के आकार आकार की एक सूची देता है; अन्यथा, शून्य वापस आ गया है।

पूरी तरह से स्पष्ट नहीं है। हालांकि, इसका मतलब है कि अगर Camera.getSupportedVideoSizes() शून्य लौटाता है, तो कैमरे के समर्थित पूर्वावलोकन आकार और वीडियो आकार समान होते हैं; इस मामले में, समर्थित वीडियो आकारों की सूची प्राप्त करने के लिए, Camera.getSupportedPreviewSizes() का उपयोग करें।

नमूना कोड:

public List<Size> getSupportedVideoSizes(Camera camera) { 
    if (camera.getParameters().getSupportedVideoSizes() != null) { 
     return camera.getParameters().getSupportedVideoSizes(); 
    } else { 
     // Video sizes may be null, which indicates that all the supported 
     // preview sizes are supported for video recording. 
     return camera.getParameters().getSupportedPreviewSizes(); 
    } 
} 
+4

एंड्रॉइड प्रलेखन में वर्णन कमजोर preosterous है! –

+0

अच्छा उत्तर और स्पष्टीकरण ... यह एक छोटा सा पकड़ है जिसे आसानी से अनदेखा किया जाता है, खासकर जब आपके विकास उपकरण getSupportedVideoSizes() के लिए एक सूची लौटाते हैं। यह पता चला है कि सैमसंग और अन्य शून्य वापस आते हैं, इसलिए मेरे ऐप को केवल तस्वीर के आकार का अनुमान लगाने के लिए अनुमान लगाया गया था, जिसके परिणाम स्वरूप सभी डिवाइसों पर समर्थित नहीं थे। शून्य मामलों को संभालने के लिए getSupportedPreviewSizes() का उपयोग करते समय यह अब ठोस रूप से काम कर रहा है। – Wookie

+0

हास्यास्पद दस्तावेज इस तरह के भयानक खुदाई की आवश्यकता है। धन्यवाद +1;) –

0

या बस

mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); 

सबसे अच्छा संकल्प स्वचालित रूप से स्थापित करने के लिए इस्तेमाल करते हैं।

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