कैमरा व्यूफ़ाइंडर

  
Standalone Composable and View based Viewfinder for Camera"

इस टेबल में, androidx.camera-viewfinder ग्रुप के सभी आर्टफ़ैक्ट की सूची दी गई है.

सह-प्रॉडक्ट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा वर्शन
viewfinder-compose - - 1.5.0-beta03 1.4.0-alpha13
viewfinder-core - - 1.5.0-beta03 1.4.0-alpha13
viewfinder-view - - 1.5.0-beta03 1.4.0-alpha13
इस लाइब्रेरी को पिछली बार इस तारीख को अपडेट किया गया था: 16 जुलाई, 2025

डिपेंडेंसी का एलान करना

camera-viewfinder पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    // Use to implement camera viewfinders
    
    implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03"
    implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03"
    implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03"

}

Kotlin

dependencies {
    // Use to implement camera viewfinders
    implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03")
    implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03")
    implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03")


}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

संस्‍करण 1.5

वर्शन 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 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Viewfinder के लिए डिफ़ॉल्ट ImplementationMode (Compose और View-based, दोनों के लिए) अब EXTERNAL (परफ़ॉर्मेंस के लिए) और EMBEDDED (पुराने एपीआई/अजीब डिवाइसों पर काम करने के लिए) में से किसी एक को स्मार्ट तरीके से चुनता है. हालांकि, इस व्यवहार को ViewfinderSurfaceRequest या XML एट्रिब्यूट (व्यू के आधार पर एपीआई पर) में साफ़ तौर पर दी गई सेटिंग से अब भी बदला जा सकता है. (Iecd3a)
  • API 29+ पर TextureView या SurfaceView का इस्तेमाल करते समय, ViewfinderSurfaceSession को Surface create/destroy के पूरे लाइफ़साइकल में चालू रखने की अनुमति देकर, Surface सेशन मैनेजमेंट को बेहतर बनाया गया है. (I112d9)
  • Viewfinder अब यह पक्का करता है कि Surfaces को सही समय पर रिलीज़ किया जाए. ऐसा सिर्फ़ तब किया जाता है, जब सेशन में उनका इस्तेमाल नहीं किया जा रहा हो. ऐसा नहीं है कि कंपोज़ेबल के बंद होने पर उन्हें हमेशा रिलीज़ किया जाता है. 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 कंपोज़ेबल उपलब्ध कराता है. यह कंपोज़ के लिए व्यूफ़ाइंडर है, जो CameraX के SurfaceRequest को कंपोज़ के हिसाब से ढालता है. यह PreviewView की तरह ही काम करता है.