की तुलना में एक अलग पूर्वावलोकन आकार के साथ वीडियो रिकॉर्ड करें मैं उपयोगकर्ताओं को वीडियो रिकॉर्ड करने की अनुमति देने का प्रयास कर रहा हूं जो रिकॉर्डिंग के दौरान देखे जा सकने वाले वास्तविक ऑन-स्क्रीन पूर्वावलोकन से भिन्न आकार है। यह this documentation concerning the getSupportedVideoSizes
function जिसमें कहा गया है से संभव हो रहा है:परिणामस्वरूप वीडियो फ़ाइल
कि लौटने सूची रिक्त नहीं है, लौट आए सूची में कम से कम एक आकार और आकार के एक लौटे सूची में MediaRecorder को भेजे जाने चाहिए शामिल होंगे। कैमरे का उपयोग वीडियो स्रोत के रूप में किया जाता है, तो कैमकॉर्डर एप्लिकेशन के लिए setVideoSize()। इस मामले में, पूर्वावलोकन का आकार वीडियो रिकॉर्डिंग के दौरान रिकॉर्ड किए गए वीडियो के संकल्प से भिन्न हो सकता है।
यह पता चलता है कि कुछ फोन इस fn से अशक्त वापस आ जाएगी (मेरे अनुभव में आकाशगंगा SIII करता है), लेकिन जो नहीं समझते हैं के लिए, यह वास्तविक वीडियो से एक अलग संकल्प के साथ एक पूर्वावलोकन प्रदान करने के लिए संभव है। क्या यह समझ सही है? क्या कुछ फोन व्यवहार और दूसरों को नहीं देते हैं?
एक समाधान का प्रयास:
official description of the setPreviewDisplay
समारोह है, जो lengthy process of setting up for video recording में प्रयोग किया जाता है में, यह उल्लेख किया गया है कि: इस विधि या नहीं अशक्त सतह के साथ कहा जाता है
यदि सब पर बुलाया , मीडिया रिकॉर्डर कैमरा की पूर्वावलोकन सतह नहीं बदलेगा।
ऐसा लगता है कि मैं क्या चाहता हूं, लेकिन दुर्भाग्यवश यदि मैं ऐसा करता हूं, तो पूरी वीडियो रिकॉर्डिंग प्रक्रिया पूरी तरह से गड़बड़ हो जाती है। मुझे लगता है कि वीडियो को रिकॉर्ड करने की प्रक्रिया में इस समारोह को शून्य या पारित नहीं किया जा सकता है। शायद अन्य संदर्भों में यह ठीक है। दुर्भाग्य से हालांकि, यह मेरी मदद करने के लिए प्रतीत नहीं होता है।
मेरा एकमात्र अगला कदम TextureView
एस में देखना है और एक वास्तविक सतह दृश्यवृत्ति कार्यान्वयन के विपरीत एक पूर्वावलोकन बनावट का उपयोग करने के लिए ओपनजीएल का उपयोग करने के लिए वास्तविक वांछित से अलग वांछित आकार में बनावट को फैलाने के लिए (और किसी भी फसल स्क्रीन से अधिक), और फिर सतह के लिए Surface(SurfaceTexture surfaceTexture)
कन्स्ट्रक्टर के साथ setPreviewDisplay
फ़ंक्शन के लिए एक सतह का निर्माण करने के लिए। मैं आईसीएस के नीचे असंगतता के कारण TextureView
का उपयोग करने से बचना चाहता हूं, और यह भी क्योंकि यह महत्वपूर्ण जटिलता को जोड़ता है।
यह नाजुक प्रक्रिया की तरह लगता है, लेकिन मुझे उम्मीद है कि कोई इस क्षेत्र में कुछ सलाह दे सकता है।
धन्यवाद।
क्या आप स्पष्ट कर सकते हैं कि "पूरी तरह से गड़बड़" का क्या अर्थ है? –
अगर मुझे सही याद है, तो इसका मतलब था कि पूर्वावलोकन सतह काला हो गई और कुछ भी रिकॉर्ड नहीं हुआ। –