2013-05-17 11 views
8

मैं एंड्रॉइड ऐप में वीडियो रिकॉर्ड करने के लिए मीडिया रिकॉर्डर का उपयोग कर रहा हूं।MediaRecorder setVideoSize विभिन्न उपकरणों में विभिन्न व्यवहार दिखाता है

mMediaRecorder.setCamera(mServiceCamera); 
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); 

//mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height); 

mMediaRecorder.setVideoFrameRate(30); 
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); 
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
String file_name = Environment.getExternalStorageDirectory().getPath() +"/myVideo.mp4"; 
mMediaRecorder.setOutputFile(file_name);  
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); 
mMediaRecorder.prepare(); 
mMediaRecorder.start(); 

समस्या लाइन

mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height); 

एचटीसी और एक्सपीरिया में में है, setVideoSize ठीक काम करता है (केवल काम करेगा अगर मैं इस लाइन टिप्पणी नहीं करते)। लेकिन नेक्सस और नोट में, सेटविडियो आकार काम नहीं करेगा (केवल तभी काम करेगा जब मैं इस पंक्ति पर टिप्पणी करता हूं)।

ऐप को इन सभी उपकरणों में सही तरीके से चलाने के लिए मुझे क्या करना चाहिए ??

+0

क्या आप मुझे बता सकते हैं। आप पूर्वावलोकन आकार कैसे प्राप्त कर रहे हैं? – Amrendra

उत्तर

0

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

4

आपको यह समझने की आवश्यकता है कि पूर्वावलोकन और वास्तविक कब्जा वीडियो दो अलग-अलग चीजें हैं, वैसे ही पूर्वावलोकन आकार और वीडियो आकार दो अलग-अलग पैरामीटर हैं। दृश्यदर्शी में आप जो देखते हैं वह अनिवार्य रूप से पूर्वावलोकन है, लेकिन यह वास्तव में रिकॉर्ड नहीं किया जाता है।

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

    कैमरा कैमरा = camera.open(); सूची psizes = camera.get पैरामीटर() .getSupportedPreviewSizes();

  2. एक बार जब आप पूर्वावलोकन सेट अप कर लेंगे, तो आप MediaRecorder का उपयोग कर रिकॉर्डिंग शुरू कर सकते हैं, और वीडियो आकार को मीडिया रिकॉर्डर पर सेट किया जा सकता है, और यह वीडियो का वास्तविक आकार है जिसे कैप्चर किया जाएगा। फिर से, आपको समर्थित वीडियो आकार में से एक सेट करना चाहिए।

    सूची आकार = कैमरा.get पैरामीटर() .getSupportedVideoSizes();

और उसके बाद, आप मीडिया रिकॉर्डर

mediaRecorder.setVideoSize(videoWidth, videoHeight); 

तो, हमेशा समर्थित आकार के लिए जाँच करने के लिए है, और यदि आप किसी एप्लिकेशन दुर्घटना पाने के लिए बाध्य कर रहे हैं याद करने के लिए इनमें से किसी एक सेट कर सकते हैं।

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