2012-05-28 15 views
10

कुछ डिवाइसों पर, onPreviewFrame को कॉल नहीं किया गया है अगर SurfaceView कैमरा पूर्वावलोकन प्रदर्शित करने के लिए सेट किया गया था। हालांकि, मैं कैमरे को एक सेवा में संभालता हूं, इसलिए मैं SurfaceView सेट नहीं कर सकता लेकिन मैं वैसे भी दृश्य पूर्वावलोकन नहीं देखना चाहता हूं।एंड्रॉइड: OnPreviewFrame कभी सतह दृश्य के बिना नहीं बुलाया

यह कैसे किया जा सकता है? क्या मैं प्रोग्रामिंग रूप से SurfaceView बना सकता हूं और इसे Camera::setPreviewDisplay पर सेट कर सकता हूं?

यह संभव होना चाहिए या नहीं?

यह एक SurfaceView बिना लेकिन पर नहीं HTC एक एक्स और गूगल नेक्सस वन लगभग हर फोन पर काम करता है ...

उत्तर

4

this question के अनुसार, बनाने कोड में एक SurfaceView ठीक काम करता है। हालांकि मुझे नहीं लगता कि आप इसे एक सेवा के माध्यम से बना सकते हैं।

एक और तरीकाके अंदर 1px-1px SurfaceView बनाने और इसके शीर्ष पर किसी अन्य दृश्य के साथ छिपाना है। (दृश्यता अभी भी VISIBLE होना चाहिए)। हम इस चाल का उपयोग Path कैमरा यूआई के लिए करते हैं जहां हम ओपनजीएल के माध्यम से पूर्वावलोकन बफर प्रस्तुत करते हैं और यह ठीक काम करता है।

1

दस्तावेज़ीकरण के अनुसार, आसानी से कॉन्फ़िगर किए गए, दृश्यमान और प्रदर्शित सतह दृश्य कैमरा पूर्वावलोकन को सक्रिय करने के लिए आवश्यक है। यह

0

एपीआई 11 से, आप कैमरे से फ्रेम प्राप्त करने के लिए SurfaceView के बजाय SurfaceTexture का उपयोग कर सकते हैं। फिर, Camera.setPreviewDisplay का उपयोग करने के बजाय, बस Camera.setPreviewTexture का उपयोग करें।

This उत्तर के साथ-साथ this one इस बिंदु पर चर्चा करें।

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