कैमरा व्यूफ़ाइंडर
इस टेबल में, androidx.camera-viewfinder
ग्रुप के सभी आर्टफ़ैक्ट की सूची दी गई है.
सह-प्रॉडक्ट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
viewfinder-compose | 1.5.0 | - | - | 1.4.0-alpha13 |
viewfinder-core | 1.5.0 | - | - | 1.4.0-alpha13 |
viewfinder-view | 1.5.0 | - | - | 1.4.0-alpha13 |
डिपेंडेंसी का एलान करना
camera-viewfinder पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0" implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0" implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
संस्करण 1.5
वर्शन 1.5.0
10 सितंबर, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0
, androidx.camera.viewfinder:viewfinder-core:1.5.0
, और androidx.camera.viewfinder:viewfinder-view:1.5.0
रिलीज़ किए जाते हैं. वर्शन 1.5.0 में ये बदलाव शामिल हैं.
1.4.0 के बाद से हुए अहम बदलाव:
यह Camera Viewfinder लाइब्रेरी का पहला स्टेबल वर्शन है. इसमें मज़बूत, लाइफ़साइकल के बारे में जानकारी देने वाले, और इस्तेमाल में आसान View और Compose पर आधारित एपीआई उपलब्ध हैं. इन कॉम्पोनेंट को कैमरा व्यूफ़ाइंडर के तौर पर इस्तेमाल करने के लिए डिज़ाइन किया गया है. इन्हें सीधे तौर पर Camera2 के साथ इंटिग्रेट किया जा सकता है.
इस रिलीज़ में, नए androidx.camera:camera-compose
आर्टफ़ैक्ट के लिए बुनियादी ढांचा भी तैयार किया गया है. इसमें CameraXViewfinder
को पेश किया गया है. यह Compose के लिए व्यूफ़ाइंडर है, जो CameraX SurfaceRequest
के साथ आसानी से इंटिग्रेट हो जाता है. यह ठीक उसी तरह काम करता है जिस तरह PreviewView
, व्यू पर आधारित लेआउट के लिए काम करता है. इनमें से कुछ अहम बदलाव यहां दिए गए हैं:
- आर्टफ़ैक्ट की जगह बदलना: मॉड्यूल को बेहतर बनाने के लिए, Viewfinder आर्टफ़ैक्ट को उनके लाइब्रेरी ग्रुप में ले जाया गया है. पहले
androidx.camera:camera-viewfinder*
डिपेंडेंसी का इस्तेमाल करने वाले डेवलपर कोandroidx.camera.viewfinder:viewfinder-*
पर माइग्रेट करना चाहिए. - एपीआई को बेहतर बनाया गया है: इस स्टेबल रिलीज़ के लिए, एपीआई को बेहतर बनाया गया है. इसमें
CameraViewfinder
का नाम बदलकरViewfinderView
करना शामिल है, ताकि इसकी वर्सटैलिटी को बेहतर तरीके से दिखाया जा सके. साथ ही, पैकेज को बेहतर तरीके से व्यवस्थित किया गया है, ताकि जानकारी को आसानी से समझा जा सके. इसके अलावा,ViewfinderSurfaceRequest
को इम्यूटेबल डेटा टाइप बनाया गया है, ताकि स्टेट मैनेजमेंट को ज़्यादा अनुमानित बनाया जा सके. - Compose API से जुड़े अपडेट: Compose
Viewfinder
API अबContentScale
औरAlignment
के साथ काम करता है. इससे यह तय किया जा सकता है कि कैमरा स्ट्रीम को कंटेनर में कैसे दिखाया जाए. यह स्टैंडर्डandroidx.compose.foundation.Image
कंपोज़ेबल के जैसा ही काम करता है. - सरफ़ेस लाइफ़साइकल मैनेजमेंट:
ViewfinderSurfaceSession
को अब एपीआई 29 और इसके बाद के वर्शन पर, कॉन्फ़िगरेशन में बदलाव और लाइफ़साइकल इवेंट के दौरान चालू रखा जाता है. इस बदलाव का मकसद, फ़्रेम ड्रॉप होने की समस्या को कम करना और उपयोगकर्ता को बेहतर अनुभव देना है. - लागू करने के मोड के डिफ़ॉल्ट:
Viewfinder
अब डिफ़ॉल्ट रूप से एक इंटेलिजेंटImplementationMode
पर सेट होता है. यह अपने-आप सबसे अच्छा तरीका चुनता है. यह बेहतर परफ़ॉर्मेंस वालेSurfaceView
(EXTERNAL
मोड) को प्राथमिकता देता है. साथ ही, एपीआई के पुराने लेवल या कंपैटबिलिटी से जुड़ी समस्याओं वाले डिवाइसों पर, यहTextureView
(EMBEDDED
मोड) पर वापस आ जाता है. हालांकि, डेवलपर के पास अब भी इस व्यवहार को बदलने का विकल्प होता है, ताकि वह पूरी तरह से कंट्रोल कर सके.
गड़बड़ियां ठीक की गईं
- अब कंपोज़ेबल
Viewfinder
, Compose केPager
औरmovableContentOf()
के साथ ठीक से काम करता है. इससे यह पक्का होता है कि जटिल यूज़र इंटरफ़ेस (यूआई) के मामलों में, सर्फ़ेस को ठीक से रीसेट और मैनेज किया गया है. (I0d9be, I79432) - Android 10 और 11 पर,
SurfaceView
पर आधारितViewfinder
के स्ट्रेच होने की समस्या को ठीक किया गया है. ऐसा तब होता था, जब ट्रांसफ़ॉर्मेशन लागू किए जाते थे. (Icc77c)
वर्शन 1.5.0-rc01
13 अगस्त, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01
, और androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01
रिलीज़ किए जाते हैं. वर्शन 1.5.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट
minSdk
को एपीआई 21 से एपीआई 23 पर ले जाना (Ibdfca, b/380448311, b/435705964, b/435705223)
वर्शन 1.5.0-beta03
16 जुलाई, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03
, और androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03
रिलीज़ किए जाते हैं. वर्शन 1.5.0-beta03 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट
ImplementationMode
अबViewfinder
(Compose और View, दोनों के लिए) के लिए,EXTERNAL
(परफ़ॉर्मेंस के लिए) औरEMBEDDED
(पुराने एपीआई/अजीब डिवाइसों पर काम करने के लिए) में से किसी एक को स्मार्ट तरीके से चुनता है. हालांकि, इस व्यवहार कोViewfinderSurfaceRequest
या XML एट्रिब्यूट (व्यू के आधार पर एपीआई पर) में मौजूद सेटिंग से अब भी बदला जा सकता है. (Iecd3a) - API 29+ पर TextureView या SurfaceView का इस्तेमाल करते समय,
ViewfinderSurfaceSession
को Surface create/destroy के पूरे लाइफ़साइकल में चालू रखने की अनुमति देकर, Surface सेशन मैनेजमेंट को बेहतर बनाया गया है. (I112d9) Viewfinder
अब यह पक्का करता है कि Surfaces को सही समय पर रिलीज़ किया जाए. ऐसा सिर्फ़ तब किया जाता है, जब सेशन में उनका इस्तेमाल न हो रहा हो. ऐसा नहीं है कि जब Composable को बंद कर दिया जाता है, तब उन्हें हमेशा रिलीज़ कर दिया जाता है.EXTERNAL
(SurfaceView
) के लिए, यह सुविधा फ़िलहाल सिर्फ़ एपीआई 29 और इसके बाद के वर्शन पर उपलब्ध है.EMBEDDED
(TextureView
) के लिए, यह सुविधा सभी एपीआई लेवल पर उपलब्ध है. (I9a03f)Viewfinder
अब उन स्थितियों में, सर्फ़ेस बदलने की सुविधा को सही तरीके से मैनेज करता है जहांEXTERNAL
व्यूफ़ाइंडर, एपीआई लेवल 28 या इससे पहले के वर्शन पर स्क्रीन से बाहर चला जाता है या अगर कोईViewfinder
(किसी भीImplementationMode
के साथ)moveableContentOf()
का हिस्सा है. (I79432)- Composable
Viewfinder
अब Compose के साथ सही तरीके से काम करता हैPager
. इस बदलाव से यह पक्का होता है किAndroidView
केonReset
कॉलबैक को लागू करके, कंपोज़ेबल को सही तरीके से रीसेट किया जा सकता है. यहEMBEDDED
औरEXTERNAL
, दोनों के साथ काम करता है. (I0d9be) - Android 10/11 पर मौजूद एक समस्या को ठीक किया गया है. इस समस्या में, ट्रांसफ़ॉर्मेशन ऑपरेशन (जैसे कि स्केल या ट्रांसलेट) को बहुत पहले लागू कर दिया जाता था. इस वजह से,
EXTERNAL
Viewfinder
स्ट्रेच या गलत दिख सकता था. अब सिस्टम, लेआउट फ़ेज़ में इन ट्रांसफ़ॉर्मेशन को लागू करने से पहले, Surface के बनने का इंतज़ार करता है. इससे सही आउटपुट मिलता है. (Icc77c)
वर्शन 1.5.0-beta02
4 जून, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02
, और androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02
रिलीज़ किए जाते हैं. वर्शन 1.5.0-beta02 में ये बदलाव शामिल हैं.
वर्शन 1.5.0-beta01
7 मई, 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01
, और androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01
रिलीज़ किए जाते हैं. वर्शन 1.5.0-beta01 में ये बदलाव शामिल हैं.
- यह व्यू-आधारित और कंपोज़-आधारित व्यूफ़ाइंडर की पहली आधिकारिक बीटा रिलीज़ है. इनका इस्तेमाल Camera2 के साथ किया जा सकता है. अगर आपको CameraX के साथ इस्तेमाल करने के लिए कोई व्यू या कंपोज़ेबल चाहिए, तो
PreviewView
औरCameraXViewfinder
देखें.
नई सुविधाएं
ContentScale
औरAlignment
का इस्तेमाल अब कंपोज़-आधारित व्यूफ़ाइंडर में किया जा सकता है. इससे, दिखाए गए कॉन्टेंट को उसके कंटेनर में स्केल किया जा सकता है और उसे जगह पर रखा जा सकता है. यह ठीक उसी तरह काम करता है जैसेandroidx.compose.foundation.Image
काम करता है. (Ibcea3)
एपीआई में हुए बदलाव
TransformationInfo
में अब सभी आर्ग्युमेंट के लिए डिफ़ॉल्ट वैल्यू मौजूद हैं. इससे बिना किसीTransformationInfo
के व्यूफ़ाइंडर बनाए जा सकेंगे. इनमें डिफ़ॉल्ट रूप से, सोर्स रोटेशन 0 पर सेट होगा. साथ ही, सोर्स मिररिंग और क्रॉप रेक्ट नहीं होगा. (I2b1b2)- Composable Viewfinder अब Surface सेशन पाने के लिए, ट्रेलिंग लैम्ब्डा लेता है. यह
AndroidExternalSurface
की तरह ही काम करता है. यहां दिए गए लैम्डा फ़ंक्शन में,ViewfinderInitScope
को रिसीवर के तौर पर इस्तेमाल किया जाता है. इससे, नए Surface सेशन पाने के लिए कॉलबैक इंस्टॉल किया जा सकता है. जब ये सर्फ़ेस सेशन स्कोप से बाहर हो जाते हैं, तो ये Viewfinder के पास मौजूद संसाधनों को अपने-आप रिलीज़ कर देते हैं. (Ib2b0d) ViewfinderSurfaceRequest.Builder.populateFromCharacteristics
को अब हटा दिया गया है. इसकी जगह अब स्टैटिक एपीआई के एक जैसे सेट का इस्तेमाल किया जा रहा है. इनका इस्तेमाल करकेTransformationInfo
जनरेट किया जा सकता है. इससेpopulateFromCharacteristics
की तरह ही बदलाव होगा. इन स्टैटिक तरीकों कोCamera2TransformationInfo
क्लास में जोड़ा जाता है. (Idc6af)ViewfinderSurfaceRequest
में अब सर्फ़ेस को वापस पाने के लिए एसिंक एपीआई शामिल नहीं हैं. अब यह एक ऐसा डेटा टाइप है जिसे बदला नहीं जा सकता. प्लैटफ़ॉर्म की जानकारी पाने के लिए इस्तेमाल किए जाने वाले एपीआई को अब व्यूफ़ाइंडर में ले जाया गया है. (I30127)CameraViewfinder
का नाम बदलकरViewfinderView
कर दिया गया है, ताकि इसका नाम Viewfinder कंपोज़ेबल के नाम से मेल खाए. साथ ही, यह बताया जा सके कि इसका इस्तेमाल सिर्फ़ कैमरा सोर्स के साथ नहीं किया जा सकता. (Id9e6b)viewfinder-view
की क्लास कोandroidx.camera.viewfinder
पैकेज केandroidx.camera.viewfinder.view
सबपैकेज में ले जाया गया है. (I6cb44)- Viewfinder के व्यू-आधारित वर्शन में नए एपीआई जोड़े गए हैं. इनकी मदद से, सोर्स रोटेशन, मिररिंग, और क्रॉप रेक्टैंगल सेट किया जा सकता है. यह
TransformationInfo
क्लास, कंपोज़ पर आधारित Viewfinder में इस्तेमाल की गई क्लास जैसी ही है. (I907c3) - व्यूफ़ाइंडर के व्यू-आधारित फ़ंक्शन में अब नए
ViewfinderSurfaceRequest
एपीआई का इस्तेमाल किया जाता है. ये अब Surface के रिस्पॉन्स को इंटरनल तौर पर हैंडल नहीं करते हैं.ListenableFuture<Surface>
के बजाय,requestSurfaceSession()
एपीआई अबListenableFuture<ViewfinderSurfaceSession>
दिखाते हैं. यहAutoCloseable
क्लास दिखाता है. बंद होने पर, यहViewfinderSurfaceRequest.markSurfaceSafeToRelease()
के पुराने एपीआई को कॉल करने जैसा ही काम करता है. इससे, अनुरोध करने वाले प्लैटफ़ॉर्म और जवाब देने वाले प्लैटफ़ॉर्म की ज़िम्मेदारियों को अलग-अलग करने में मदद मिलती है. (I19041)
वर्शन 1.4
वर्शन 1.4.0-alpha13
26 फ़रवरी, 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha13 में ये बदलाव शामिल हैं.
वर्शन 1.4.0-alpha12
15 जनवरी, 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha12 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Android 15 से जुड़े एपीआई का इस्तेमाल करने के लिए,
compileSdk
को 35 के तौर पर अपग्रेड किया गया है. CameraX लाइब्रेरी का इस्तेमाल करने वाले ऐप्लिकेशन को भी अपनीcompileSdk
कॉन्फ़िगरेशन सेटिंग अपग्रेड करनी होगी. (Ic80cd) - यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए:
-Xjspecify-annotations=strict
(यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से शुरू होता है). (I7bcd7, b/326456246)
वर्शन 1.4.0-alpha11
11 दिसंबर, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha11 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
viewfinder-core
क्लास को ऐसे पैकेज में ले जाया गया है जो उस लाइब्रेरी के साथ काम करते हैं जिससे वे जुड़ी हैं. (I431c6)CameraViewfinder.ScaleType
कोviewfinder-core
में ले जाया गया है, ताकि इसे कंपोज़ करने के लिए फिर से इस्तेमाल किया जा सके (I87ef1)CameraViewfinder
के इस्तेमाल पर रोक लगा दी गई है. इसलिए, इन क्लास को हटा दिया गया है. कृपया उन नए एपीआई का इस्तेमाल करें जो इसी तरह के फ़ंक्शन उपलब्ध कराते हैं. (I6e59a)
वर्शन 1.4.0-alpha10
30 अक्टूबर, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha10 में ये बदलाव शामिल हैं.
वर्शन 1.4.0-alpha09
2 अक्टूबर, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha09 में ये बदलाव शामिल हैं.
वर्शन 1.4.0-alpha08
4 सितंबर, 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08
, और androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08
रिलीज़ किए जाते हैं. वर्शन 1.4.0-alpha08 में ये बदलाव शामिल हैं.
नई सुविधाएं
CameraX Viewfinder के आर्टफ़ैक्ट को 1.4.0-alpha08 वर्शन में अपडेट कर दिया गया है. अब इसे लाइब्रेरी के अपने ग्रुप में ले जाया गया है. CameraX लाइब्रेरी को मॉड्यूलर बनाने और उसे बनाए रखने के लिए, यह बदलाव ज़रूरी है.
अगर आपको पहले androidx.camera:camera-viewfinder
, androidx.camera:camera-viewfinder-compose
या androidx.camera:camera-viewfinder-core
पर निर्भर रहना पड़ता था, तो आपको अपनी डिपेंडेंसी को इन पर ट्रांसफ़र करना होगा:
androidx.camera:camera-viewfinder
->androidx.camera.viewfinder:viewfinder-view
androidx.camera:camera-viewfinder-compose
->androidx.camera.viewfinder:viewfinder-compose
androidx.camera:camera-viewfinder-core
->androidx.camera.viewfinder:viewfinder-core
इस ट्रांज़िशन के लिए, कोड में कोई बदलाव करने की ज़रूरत नहीं होनी चाहिए. Viewfinder के पुराने मेवन कोऑर्डिनेट को अब अपडेट नहीं मिलेंगे.
इसके अलावा, अगर CameraX के साथ Compose का इस्तेमाल किया जा रहा है, तो Compose-first लाइब्रेरी का नया वर्शन अब ऐल्फ़ा वर्शन में उपलब्ध है: androidx.camera:camera-compose
. यह CameraXViewfinder
कंपोज़ेबल उपलब्ध कराता है. यह Compose के लिए, Compose के हिसाब से बनाया गया Viewfinder है. यह CameraX के SurfaceRequest
को Compose के साथ जोड़ता है. यह ठीक उसी तरह काम करता है जिस तरह PreviewView
व्यू के लिए काम करता है.