6

मैं उपयोगकर्ताओं को विभिन्न संकल्प सेट करने का विकल्प देना चाहता हूं।सेटविडियो आकार() उच्च संकल्पों के साथ क्रैश

मैं इस समाधान

camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P); 
.... 
.... 
mCamera.unlock(); 
recorder.setCamera(mCamera); 
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
recorder.setProfile(camcorderProfile); 

यह पूरी तरह से काम किया है की कोशिश की है: अच्छा गुणवत्ता और सब कुछ ...

जब मैं पर

camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P); 

के लिए सेट फ़्लैश के साथ, वीडियो हरे रंग और कुछ अन्य अजीब रंगों के साथ बाहर आया।

मैंने ऑनलाइन पढ़ा और लोगों ने कहा कि ऐसा इसलिए है क्योंकि QUALITY_480P शायद मेरे फोन पर समर्थित नहीं है। ठीक है, यह इंद्रियां बनाता है।

इसलिए, मैं अलग समाधान पर काम शुरू कर दिया, तो मैं कोशिश की है ....

recorder.setVideoSize(640, 480); 

यह बहुत अच्छा काम किया,

लेकिन वीडियो बहुत बदसूरत देखा।

अगला, मैंने एक समर्थित वीडियो सूची की जांच की।

List<Size> GetSupportedVideosResolutions = params.getSupportedVideoSizes(); 

संकल्प: 1280x720 सूची में है, इसलिए

मैं निम्नलिखित स्थापित करने के लिए कोशिश की है:

recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
recorder.setVideoSize(1280,720); 
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 

यह मुझे एक RuntimeException त्रुटि दे दी है।

सवाल

है

क्यों यह मेरे उच्च संकल्प है कि फोन पर उपलब्ध हैं निर्धारित करने की अनुमति नहीं कर सकते?

किसी भी मदद की बहुत सराहना की जाएगी,

धन्यवाद।

संपादित करें: जोड़ा त्रुटि लॉग

04-18 17:40:07.391: E/AndroidRuntime(30191): java.lang.RuntimeException: start failed. 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.media.MediaRecorder.start(Native Method) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.prepare_StartRecorder(VideoActivity.java:1009) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.Recorder_Start_Stop(VideoActivity.java:1102) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity$6.onClick(VideoActivity.java:246) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View.performClick(View.java:4489) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.widget.CompoundButton.performClick(CompoundButton.java:104) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View$PerformClick.run(View.java:18803) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.handleCallback(Handler.java:730) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Looper.loop(Looper.java:137) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.app.ActivityThread.main(ActivityThread.java:5493) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invokeNative(Native Method) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invoke(Method.java:525) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) 
04-18 17:40:07.391: E/AndroidRuntime(30191): at dalvik.system.NativeStart.main(Native Method) 
+0

चूंकि 720 पी 1280x720 है, तो कोड के पहले ब्लॉक की तुलना में आप कोड के आखिरी ब्लॉक से अलग क्या उम्मीद कर रहे थे, जिसे आपने ठीक काम किया था? IOW, अगर आप 1280x720 आउटपुट चाहते हैं, तो आपके पास इसके लिए पहले से ही कोड है। इसके अलावा, हम अपवाद के साथ आपकी सहायता नहीं कर सकते हैं जब तक कि आप स्टैक ट्रेस पोस्ट न करें और इंगित करें कि उस स्टैक ट्रेस में कौन सी रेखाएं आपके प्रश्न में आपके कोड में मौजूद हैं। – CommonsWare

+0

टिप्पणी के लिए धन्यवाद। मैं उपयोगकर्ताओं को विभिन्न संकल्प चुनने का विकल्प देना चाहता हूं। 720 पी हार्ड कोड था। 720 पी किसी अन्य डिवाइस पर समर्थित नहीं हो सकता है। साथ ही, मैंने बताया कि फ्लैश के साथ 480 पी के साथ कोई समस्या थी। मैं 1920x1080 और एक ही त्रुटि का प्रयास कर सकता था। – Iam1414

+0

आप किस डिवाइस का परीक्षण कर रहे हैं? –

उत्तर

3

मैं समझ क्या समस्या थी। यह किसी और की मदद कर सकता है। मैं के साथ समाप्त हो गया:

camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P); 
recorder.setVideoSize(1280, 720); //NEEDED or it will crash 

कोड:

camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P); 
.... 
.... 
mCamera.unlock(); 
recorder.setCamera(mCamera); 
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); 
recorder.setProfile(camcorderProfile); 
recorder.setVideoSize(1280 720); //NEEDED or it will crash 
.... 
... 

// या

CamcorderProfile.get(CamcorderProfile.QUALITY_1080P); 
recorder.setProfile(camcorderProfile); 
recorder.setVideoSize(1920, 1080); //NEEDED or it will crash 
0

समाधान: Iam1414 के जवाब सही है।

मैं इस दिन पूरे दिन रहा हूं और हास्यास्पद है क्योंकि यह तकनीक काम करता है।

मैं 4k (3840 x 2160) में रिकॉर्ड करने का प्रयास कर रहा था, मैं सकारात्मक था कि डिवाइस की क्षमता भी थी, लेकिन यह मुझे 1080 तक सीमित रखती थी और किसी भी चीज़ पर दुर्घटनाग्रस्त हो जाती थी। समाधान Iam1414 का उल्लेख किया गया था।

प्रोफ़ाइल सेट


सेट वीडियो आकार

profile = CamcorderProfile.get(CamcorderProfile.QUALITY_2160P); 
recorder.setProfile(profile); 
recorder.setVideoSize(3820, 2160); //NEEDED or it will crash 

दुर्भाग्य प्रोफ़ाइल की स्थापना ताले मुझ में H264 एन्कोडिंग पर और मुझे मेरे H265 एनकोडर के लिए मेरी एनकोडर स्थापित करने के लिए अनुमति नहीं दी है बाद। तो उम्मीद है कि इसके लिए भी एक कामकाज है।

Iam1414, धन्यवाद। यदि मैं प्रतिनिधि था तो मैं आपको वोट दूंगा :)

संपादित करें: यह एक बहुत ही अजीब त्रुटि है। सीम्स जैसे कि मुझे अब कामकाज का उपयोग करने की आवश्यकता नहीं है। मैं मिलान प्रोफाइल का उपयोग कर 2160p में रिकॉर्ड करने में सक्षम हूं। अगर यह एक मुद्दा जारी रहता है तो मैं आगे की जांच करूंगा।

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