জেটপ্যাক সিনকোর
| সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ২২ অক্টোবর, ২০২৫ | - | - | - | ১.০.০-আলফা০৮ |
নির্ভরতা ঘোষণা করা
XR SceneCore-এর উপর নির্ভরতা যোগ করতে, আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven সংগ্রহস্থলটি পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha08" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08" }
কোটলিন
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha08") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।
প্রতিক্রিয়া
আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন অথবা এই লাইব্রেরি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ 1.0
সংস্করণ 1.0.0-alpha08
২২ অক্টোবর, ২০২৫
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলি রয়েছে।
API পরিবর্তনগুলি
-
ActivityPanelEntity.moveActivityনাম পরিবর্তন করেtransferActivityকরা হয়েছে ( I273c5 , b/430332856 )
বাগ ফিক্স
-
:xr:scenecore:scenecore-spatial-renderingএবং:xr:scenecore:scenecore-spatial-core:xr:scenecore:scenecore( I6ab65 , b/447000520 ) এর বাস্তবায়ন নির্ভরতা হিসেবে যোগ করা হয়েছে। - সেশন ধ্বংসের পরে
session.sceneঅ্যাক্সেস করা হলে Exception থ্রো করা হয়। ( I77e6f )
সংস্করণ 1.0.0-alpha07
২৪ সেপ্টেম্বর, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha07 , androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 , এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 প্রকাশিত হয়েছে। 1.0.0-alpha07 সংস্করণে এই কমিটগুলি রয়েছে।
API পরিবর্তনগুলি
-
fixedAspectRatioনাম পরিবর্তন করেisFixedAspectRatioEnabledকরা হয়েছে এবং এটিকে একটি বুলিয়ান প্রপার্টি করা হয়েছে ( I5c4e8 , b/440588971 ) -
Scenecoreফেকগুলি এখনxr:scenecore:scenecore-testingমডিউলে অবস্থিত। ( Idd951 ) -
shouldAutoHideContentএর নাম পরিবর্তন করেisAutoHideContentWhileResizingEnabledএবংshouldAlwaysShowOverlayএর নাম পরিবর্তন করেisAlwaysShowOverlayEnabled( I97c36 , b/432335421 ) করা হয়েছে। - পঠনযোগ্যতার জন্য
SceneCoreTextureSamplerধ্রুবক আপডেট করা হয়েছে, উদাহরণস্বরূপTextureSampler.MinFilter.LINEARএখনTextureSampler.MIN_FILTER_LINEAR( Ib159c )। - দৃশ্যের
setKeyEntityসেটারটিkeyEntityভেরিয়েবলের সাথে মার্জ করা হয়েছে।keyEntityAnchorEntityএর মতো একটি অস্থাবর সত্তায় সেট করলে বুলিয়ান false ফেরত দেওয়ার পরিবর্তে একটিIllegalArgumentExceptionনিক্ষেপ করা হবে। ( I62080 , b/428721695 , b/422215745 ) - Scene এর
SpatialModeChangeListenerভেরিয়েবলটিsetSpatialModeChangedListenerদিয়ে প্রতিস্থাপিত হয়েছে। এটিSpatialModeChangedListenerএর পরিবর্তেConsumer<SpatialModeChangeEvent>ব্যবহার করে।setSpatialModeChangedListenerএখন ঐচ্ছিকভাবে একটি Executor ব্যবহার করতে পারে। ( I62080 , b/428721695 , b/422215745 ) -
ActivityPanelEntity.startActivity( I64344 , b/430332856 , b/430333040 ) থেকেbundleপ্যারামিটারটি সরানো হয়েছে। -
SpatializerConstants.SOURCE_TYPE_BYPASSনাম পরিবর্তন করেSpatializerConstants.SOURCE_TYPE_DEFAULTকরা হয়েছে। ( Ifc7fe , b/422215565 ) -
SpatialSoundPool.PLAY_FAILEDধ্রুবক যোগ করা হয়েছে। ( Ifc7fe , b/422215565 ) -
SpatialSoundPool.playপদ্ধতিতে ডিফল্ট আর্গুমেন্ট যোগ করা হয়েছে। ( Ifc7fe , b/422215565 ) -
SpatialAudioTrackBuilderএ সেটারের রিটার্ন মান সরানো হয়েছে। ( Ifc7fe , b/422215565 ) - পৃষ্ঠ সত্তার পরিবর্তন
-
SurfaceEntity.CanvasShapeএর নাম পরিবর্তন করেShape -
SurfaceEntity.CanvasShape.Vr180Hemisphereগোলার্ধের নাম পরিবর্তন করেHemisphereকরা হয়েছে -
SurfaceEntity.CanvasShape.Vr360Sphereএর নাম পরিবর্তন করেSphereকরা হয়েছে। -
SurfaceEntity.EdgeFeatheringParams.SmoothFeatherনাম পরিবর্তন করেRectangleFeatherকরা হয়েছে। -
SurfaceEntity.EdgeFeathingParams.SolidEdgeএর নাম পরিবর্তন করেNoFeatheringকরা হয়েছে। -
SurfaceEntity.ContentSecurityLevelএর নাম পরিবর্তন করেSurfaceProtectionকরা হয়েছে। -
SurfaceEntity.ContentSecurityLevel.{values}একটিSURFACE_PROTECTION_প্রিফিক্স যোগ করেছে। -
SurfaceEntity.SuperSampling.{$values}একটিSUPER_SAMPLING_প্রিফিক্স যোগ করেছে -
SurfaceEntity.StereoMode.{values}একটিSTEREO_MODE_প্রিফিক্স যোগ করেছে -
SurfaceEntity.ContentColorMetadata.maxCLLনাম পরিবর্তন করেmaxContentLightLevel( I7eb5f , b/422216050 , b/427529950 ) করা হয়েছে।
-
-
launchActivityনাম পরিবর্তন করেstartActivityকরা হয়েছে ( I7db90 , b/430332856 ) -
Scene.activitySpaceRootসরানো হয়েছে। পরিবর্তেScene.activitySpaceব্যবহার করুন। ( I05ee8 , b/378706624 , b/422215745 ) -
configureBundleForFullSpaceModeLaunchএবংconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedযথাক্রমেcreateBundleForFullSpaceModeLaunchএবংcreateBundleForFullSpaceModeLaunchWithEnvironmentInheritedনামকরণ করা হয়েছে, এবং শীর্ষ-স্তরের পদ্ধতি হিসাবে LaunchUtils.kt ফাইলে স্থানান্তরিত হয়েছে এবং Session কে প্রথম প্যারামিটার হিসাবে গ্রহণ করেছে ( I64a2c , b/437186050 ) -
GroupEntityফ্যাক্টরি এখন Entity এর পরিবর্তেGroupEntityটাইপ প্রদান করে। ( I66042 )
বাগ ফিক্স
- নিষ্পত্তির পরে যখন কোনও সত্তার উদাহরণ ব্যবহার করা হয় তখন একটি
IllegalStateExceptionনিক্ষেপ করুন। ( I90990 , b/427314036 , b/432063442 )
সংস্করণ 1.0.0-alpha06
১৩ আগস্ট, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha06 , androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 , এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 প্রকাশিত হয়েছে। 1.0.0-alpha06 সংস্করণে এই কমিটগুলি রয়েছে।
API পরিবর্তনগুলি
-
SceneCoreএরBaseEntityএবংBaseScenePoseAPI গুলি ( 88c0ff6 ) সীমাবদ্ধ করুন
সংস্করণ 1.0.0-alpha05
৩০ জুলাই, ২০২৫
androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05 , androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 , এবং androidx.xr.scenecore:scenecore:1.0.0-alpha05 প্রকাশিত হয়েছে। 1.0.0-alpha05 সংস্করণে এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- প্যানেল এন্টিটি এবং
SurfaceEntitiesপারসিভড রেজোলিউশন এপিআই যোগ করা হয়েছে। ( I118f6 ) - HSM-এ কার্যকলাপের মূল প্যানেলের অনুভূত রেজোলিউশন পর্যবেক্ষণ করার জন্য Scene.kt-তে
PerceivedResolutionকলব্যাক পদ্ধতি যোগ করা হয়েছে। ( I58084 ) -
SurfaceEntity- অ্যাপ্লিকেশন তৈরির সময় সুপার স্যাম্পলিং অনুরোধ করার জন্য সমর্থন যোগ করা হয়েছে। এটি অ্যাপ্লিকেশনগুলিকে অ্যান্টি-অ্যালিয়াসিংয়ের জন্য সুপার স্যাম্পলিং ফিল্টার ব্যবহার করার অনুমতি দেয়। ( I06913 ) -
ActivitySpaceএrecommendedContentBoxInFullSpaceপ্রপার্টি যোগ করা হয়েছে। এটি Full Space মোডে থাকা অবস্থায় কন্টেন্ট রাখার জন্য একটি recommended বক্স প্রদান করে। ( I4cd6f ) - অ্যাঙ্করিং করার সুবিধা প্রদানকারী চলমান মডিফায়ারের জন্য ওভারলোডেড কনস্ট্রাক্টর সরবরাহ করা হয়েছে। ( Ic0c70 )
API পরিবর্তনগুলি
এই রিলিজের জন্য SceneCore এ ব্যাপক API পরিবর্তন করা হয়েছে। বেশ কয়েকটি ক্লাসের নাম পরিবর্তন করা হয়েছে এবং/অথবা বিভিন্ন মডিউলে স্থানান্তরিত করা হয়েছে, এবং বেশিরভাগ গেটার/সেটার পদ্ধতি Kotlin বৈশিষ্ট্য দিয়ে প্রতিস্থাপিত হয়েছে। যদিও আমরা আমাদের প্রথম বিটা রিলিজ পর্যন্ত ভবিষ্যতের ব্রেকিং API পরিবর্তনগুলি আশা করি, তবে সেগুলি ততটা বিঘ্নিত বা অসংখ্য হবে না।
- নিম্নলিখিত ক্লাস এবং ইন্টারফেসগুলির নাম পরিবর্তন এবং/অথবা স্থানান্তর করা হয়েছে:
androidx.xr.scenecore.PixelDimensionsকেandroidx.xr.runtime.math.IntSize2dএ ;androidx.xr.scenecore.Dimensionsকেandroidx.xr.runtime.math.FloatSize3dএ ;androidx.xr.scenecore.ActivityPoseকেScenePose,androidx.xr.scenecore.ContentlessEntityকেGroupEntity,androidx.xr.scenecore.PlaneTypeকেPlaneOrientation;androidx.xr.scenecore.PlaneSemanticকেPlaneSemanticType. ( Ifd405 )( I3b622 ) ( If534d ) এ -
Sceneএর বৈশিষ্ট্যের জন্য বেশ কিছু সেটার ব্যক্তিগত করা হয়েছে;SceneCoreক্লায়েন্টদের দ্বারা সেগুলিকে পরিবর্তন করার উদ্দেশ্যে করা হয়নি:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironment, এবংspatialUser। ( I2f506 ) - Entity: তে নিম্নলিখিত বৈশিষ্ট্যগুলি পরিবর্তন করা হয়েছে:
get/setParent(),setContentDescription; DeprecatedEntity.is/setHidden(), পরিবর্তেEntity.is/setEnabledব্যবহার করুন। ( Ibc4c6 ) -
androidx.xr.scenecore.BasePanelEntityক্লাসটি সরিয়ে ফেলা হয়েছে, এর পরিবর্তে সরাসরিPanelEntityব্যবহার করুন।PanelEntityজন্য গেটার এবং সেটারগুলিকে বৈশিষ্ট্য দিয়ে প্রতিস্থাপন করা হয়েছে।PanelEntity.sizeবৈশিষ্ট্যটিFloat3dSizeথেকেFloat2dSizeএ পরিবর্তন করা হয়েছে। অবচিত পদ্ধতিandroidx.xr.scenecore.PanelEntity.getPixelDimensionsসরিয়ে ফেলা হয়েছে, এর পরিবর্তেgetSizeInPixelsব্যবহার করুন। ( Icc174 ) -
androidx.xr.scenecore.OnSpaceUpdatedListenerRunnableদিয়ে প্রতিস্থাপিত করা হয়েছে। ( I19308 ) -
SpatialUser.getCameraViews()একটি প্রপার্টি দিয়ে প্রতিস্থাপিত করা হয়েছে। ( Ib0cc5 )ExrImageএবংGltfModel:createপদ্ধতিগুলিকে সাসপেন্ড ফাংশন হিসেবে পরিবর্তন করা হয়েছে;Stringএর পরিবর্তেUriঅথবাPathগ্রহণ করার জন্য create প্যারামিটারগুলিকে পরিবর্তন করা হয়েছে। ( Id8883 ) ( I0d247 ), ( I25706 ) -
SpatialEnvironment.requestFullSpaceModeএবংSpatialEnvironment.requestHomeSpaceModeকে Scene-এ সরানো হয়েছে, উদাহরণস্বরূপsession.scene.requestFullSpaceMode()এর পরিবর্তেsession.scene.spatialEnvironment.requestFullSpaceMode()ব্যবহার করুন।addOnPassthroughOpacityChangedListenerএবংaddOnSpatialEnvironmentChangedListenerএখন ওভাররাইড রয়েছে যা ঐচ্ছিক Executors গ্রহণ করে। ( I12fe0 ) ( I6b21e ) - নিম্নলিখিত অবচিত
SpatialEnvironmentপদ্ধতিগুলি সরানো হয়েছে:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkybox, এবংsetGeometry. এছাড়াও অবচিত শ্রেণীSpatialEnvironment.PassthroughMode( I927bd ) ( I927bd ) ( I927bd ) সরানো হয়েছে - নিম্নলিখিত
SpatialEnvironmentগেটার এবং সেটারগুলিকে কোটলিন বৈশিষ্ট্য দিয়ে প্রতিস্থাপন করা হয়েছে:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()( I33a7b ) ( Ie06e2 ) ( Ie06e2 ) -
SpatialEnvironmentPreference.preferredPassthroughOpacityটাইপFloat?থেকেFloatএ পরিবর্তন করা হয়েছে। এটি আর নাল মান গ্রহণ করে না। পরিবর্তে,SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEব্যবহার করা হয় যাতে বোঝা যায় যে কোনও অস্বচ্ছতা পছন্দ নেই। ( I40107 ) - create পদ্ধতিতে
windowBoundsPxপ্যারামিটারটিpixelDimensionsএবং এর ধরণ Rect থেকেIntSize2dএ আপডেট করা হয়েছে। ( I1926e ) -
SpatialEnvironmentকনস্ট্রাক্টর এখন অভ্যন্তরীণ ( I75a51 ) - ক্লাস
SpatialPointerIconNoneএবংSpatialPointerIconCircleক্লাসগুলিকে companion objectsSpatialPointerIcon.NONEএবংSpatialPointerIcon.CIRCLE( I416d2 ) দিয়ে প্রতিস্থাপিত করা হয়েছে। -
SpatialPointerComponentএSpatialPointerIconআর বাতিলযোগ্য নয়। সিস্টেমের ডিফল্ট পয়েন্টার আইকন ব্যবহার করা উচিত তা নির্দেশ করতে null-এর পরিবর্তেSpatialPointerIcon.DEFAULTব্যবহার করুন। ( I416d2 ) -
androidx.xr.scenecore.AnchorEntity.getState()শুধুমাত্র পঠনযোগ্য বৈশিষ্ট্য দিয়ে প্রতিস্থাপিত করা হয়েছে। স্পষ্টতার জন্যAnchorEntity.create()পদ্ধতিতে প্যারামিটারের নাম পরিবর্তন করা হয়েছে। শ্রোতাদের সেট এবং যোগ করার জন্যAnchorEntityএর পদ্ধতিতে, শ্রোতাদের চূড়ান্ত আর্গুমেন্টে সক্রিয় ট্রেলিং ল্যাম্বডাসে স্থানান্তরিত করা হয়েছে।AnchorEntityএর জন্যandroidx.xr.scenecore.OnStateChangedListenerConsumer<AnchorEntity.State>দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I472e0 ) -
GltfModelEntity.getAnimationState()এখন একটি সম্পত্তি। ( I10b29 ) -
ActivitySpace.getBounds()একটি প্রপার্টি দিয়ে প্রতিস্থাপিত করা হয়েছে।ActivitySpace.addBoundsChangedListenerএর নাম পরিবর্তন করেActivitySpace.addOnBoundsChangedListenerকরা হয়েছে।ActivitySpace.setOnSpaceUpdatedListeneradd/remove পদ্ধতি দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I4c956 ) -
AnchorPlacement: planeTypeFilterনাম পরিবর্তন করেanchorablePlaneOrientationsরাখা হয়েছে,planeSemanticFilterনাম পরিবর্তন করেanchorablePlaneSemanticTypesরাখা হয়েছে।AnchorEntityতে একটিMovableComponentযোগ করুন অথবাActivitySpaceমিথ্যা রিটার্ন করবে,MoveListenerএর নাম পরিবর্তন করেEntityMoveListener shouldDisposeParentAnchorএর নাম পরিবর্তন করেdisposeParentOnReAnchor systemMovablecreateফাংশন থেকে সরিয়েcreeateCustomMovable,createSystemMovableএবংcreateAnchorable( If11c4 ) এর পক্ষে রাখা হয়েছে। -
SurfaceEntity.featherRadiusX/Yসরিয়ে একটিEdgeFeatheringParamsক্লাস ধারণা যোগ করা হয়েছে। ( Ic78fc ) -
PanelEntity.enablePanelDepthTest()পদ্ধতিটিpanelClippingConfigপ্রপার্টি দিয়ে প্রতিস্থাপন করা হয়েছে। depth-testing সক্ষম করতেScene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)সেট করুন অথবা এটি নিষ্ক্রিয় করতেPanelClippingConfig(isDepthTestEnabled = false)এ সেট করুন। ( I0cbe0 ) -
Scene.mainPanelEntityএখনPanelEntity( I7125a ) এর পরিবর্তেMainPanelEntityধরণের। - সিন এর
setFullSpaceModeপদ্ধতির নাম পরিবর্তন করেconfigureBundleForFullSpaceModeLaunchএবংsetFullSpaceModeWithEnvironmentInheritedপদ্ধতির নাম পরিবর্তন করেconfigureBundleForFullSpaceModeLaunchWithEnvironmentInherited। ( I0cbe0 ) ( I0cbe0 ) -
SpatialVisibilityএর UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV, এবং WITHIN_FOV মান যথাক্রমে SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW, এবং SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW এ পুনঃনামকরণ করা হয়েছে ( Ie7e8c ) -
SpatialVisibilityক্লাসটি const Int মান সহ public object দিয়ে প্রতিস্থাপিত হয়েছে।setSpatialVisibilityChangedListenerএখন Consumer<SpatialVisibility> ( Ie7e8c ) এর পরিবর্তেConsumer<SpatialVisibility>Consumer<Int>গ্রহণ করে। -
PointerCaptureComponentধ্রুবকগুলির নাম পরিবর্তন করেPointerCaptureComponent.PointerCaptureStateঅবজেক্টে ( I9c7ac ) স্থানান্তর করা হয়েছে -
PointerCaptureComponents' StateListenerConsumer<Int>দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I9c7ac ) -
InputEventListenerConsumer<InputEvent>( I9c7ac ) দিয়ে প্রতিস্থাপিত করা হয়েছে। -
setPreferredAspectRatioসিন ক্লাস থেকেSpatialWindowঅবজেক্টে স্থানান্তরিত হয়েছে এবং প্রথম প্যারামিটার হিসেবে সেশন গ্রহণ করেছে। ( I7b717 ) -
Entity.setHidden()এর পরিবর্তেEntity.setEnabled()এবংEntity.isHidden()এর পরিবর্তেEntity.isEnabled()ব্যবহার করা হয়েছে।setHidden(false)হলsetEnabled(true)এবংisHidden() == !isEnabled()সমান। ( Icf0de ) -
Entity.contentDescriptionটাইপ String থেকেCharSequenceএ পরিবর্তন করা হয়েছে। ( Ie59be ) -
Session.createএবংSession.configureএখনSecurityExceptionথ্রো করে যখন পর্যাপ্ত অনুমতি মঞ্জুর করা না হয়,SessionCreatePermissionsNotGrantedবাSessionConfigurePermissionsNotGrantedফেরত দেওয়ার পরিবর্তে। ( I7c488 ) -
ResizableComponent.createজন্য এখন একটিConsumer<ResizeEvent> ResizeEventListenerএর পরিবর্তেConsumer<ResizeEvent> ResizableComponent.sizeএর নাম পরিবর্তন করেResizableComponent.affordanceSize ResizableComponent.minimumSizeএর নাম পরিবর্তন করে ResizableComponent.minimumEntitySize করা হয়েছেResizableComponent.minimumEntitySize ResizableComponent.maximumSizeএর নাম পরিবর্তন করেResizableComponent.maximumEntitySizeকরা হয়েছে,ResizableComponent.autoHideContentএর নাম পরিবর্তন করেResizableComponent.shouldAutoHideContentএর নাম পরিবর্তন করেResizableComponent.forceShowResizeOverlayএর নাম পরিবর্তন করেResizableComponent.shouldAlwaysShowOverlayকরা হয়েছে ( I97a2d ) -
androidx.xr.scenecoreএবংandroidx.xr.composeজন্যminSDKকমিয়ে 24 করা হয়েছে। XR প্যাকেজগুলির রানটাইমে এখনও API 34 প্রয়োজন। ( I17224 ) - সমস্ত Jetpack XR প্যাকেজ থেকে
RequiresApi(34)সীমাবদ্ধতা অপসারণ করা হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 ) - প্রধান
SceneCoreআর্টিফ্যাক্ট (xr:scenecore:scenecore) তে শুধুমাত্র Kotlin-স্টাইলের অ্যাসিঙ্ক API থাকবে। জাভা ডেভেলপাররা সামঞ্জস্যপূর্ণ API অ্যাক্সেস করার জন্যxr:scenecore:scenecore-guavaলাইব্রেরির উপর নির্ভর করতে পারেন। ( If221b ) - Kotlin 2.0 দিয়ে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা তার নতুন সংস্করণ ব্যবহার করা প্রয়োজন ( Idb6b5 )
- এই লাইব্রেরিটি এখন JSpecify nullness annotations ব্যবহার করে, যা টাইপ-ব্যবহারের। সঠিক ব্যবহার জোরদার করার জন্য Kotlin ডেভেলপারদের নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত:
-Xjspecify-annotations=strict(এটি Kotlin কম্পাইলারের 2.1.0 সংস্করণ থেকে শুরু করে ডিফল্ট) ( Ia8420 ) -
ListenableFutureপ্রদানকারী সকল async পদ্ধতি Kotlin suspend ফাংশন দিয়ে প্রতিস্থাপিত হয়েছে। যেসব জাভা ডেভেলপার Kotlin suspend ফাংশনের পরিবর্তেListenableFutureভিত্তিক async পদ্ধতি ব্যবহার করতে চান তাদের এখন:xr:scenecore-scenecore-guavaএক্সটেনশন ফাংশন ব্যবহার করতে হবে। উদাহরণস্বরূপ,GuavaExrImageএ Guava-সমতুল্য ExrImage async ফাংশন রয়েছে,GuavaScenePoseGuava-সমতুল্যScenePoseasync ফাংশন রয়েছে,GuavaGltfModelGuava-equivalent GltfModelasync ফাংশন রয়েছে, ইত্যাদি। ( If7283 ) ( I0af60 ) ( If7283 ) ( Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )
বাগ ফিক্স
- মিনিফাই করা ক্লায়েন্টদের জন্য
AbstractMethodErrorপ্রতিরোধ করার জন্য Jetpack XR ScenecoreProGuardনিয়ম আপডেট করা হয়েছে। ( I91a01 ) - Jetpack XR
SceneCore( I4f47e ) এর জন্য Proguard মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন -
InputEventএর HitInfo তেhitPositionযদি সিস্টেম থেকে ফিরে আসাhitPositionnull থাকে তাহলে যদি একটিInteractableComponentক্র্যাশ করতে পারে এমন একটি বাগ সংশোধন করা হয়েছে ( I7a695 ) - কনফিগ *মোড ভ্যালগুলিকে তাদের আচরণ প্রতিফলিত করার জন্য পুনঃনামকরণ করা হয়েছে। ( I6d247 )
-
SceneCoreTestApp-এ FOV এবংHitTestএর সমস্যা সমাধান করা হয়েছে। ( I2c51e ) -
SpatialCapabilities.hasCapability()এর বাগ ঠিক করা হয়েছে যেখানে বিটওয়াইজ OR দিয়ে পাস করা যেকোনো ক্ষমতা সত্য হলে এটি সত্য ফেরত দেবে, যদি না শুধুমাত্র যদি সেগুলি সত্য হয় তবে সত্য ফেরত দেবে। ( I2cd40 ) -
SurfaceEntity.StereoMode.TOP_BOTTOMআপডেট করা হয়েছে যাতে উপরের মানচিত্রটি বাম চোখে এবং নীচের মানচিত্রটি ডান চোখে থাকে। ( I4ae68 )
সংস্করণ 1.0.0-alpha04
৭ মে, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha04 এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04-এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- ব্যাকহ্যান্ডলিং এখন প্যানেল এন্টিটিতে কাজ করবে যেখানে এমবেডেড অ্যাক্টিভিটি নেই। ব্যাকহ্যান্ডলিং কাজ করার জন্য আপনাকে android ম্যানিফেস্টে
android:enableOnBackInvokedCallback= "true"উল্লেখ করতে হবে। -
StereoSurfaceEntityএখন দুটি নতুনStereoModeমানের মাধ্যমে MV-HEVC প্লেব্যাক সমর্থন করে: MULTIVIEW_LEFT_PRIMARY এবং MULTIVIEW_RIGHT_PRIMARY। -
PanelEntity.setSizeএবংPanelEntity.getSizeএখন প্যারেন্ট স্পেসে আকার ফেরত দেয়। -
Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaএবংEntity.getAlphaএখন একটি নতুন প্যারামিটারrelativeToনেয়, যা বিভিন্ন স্পেসের সাথে সম্পর্কিত get/set মানগুলিকে অনুমোদন করে। সমর্থিত মানগুলি হল Parent, Activity এবং Real World স্পেস, এবং এই প্যারামিটারের ডিফল্ট মান হল Parent। - দৃশ্যের বিষয়বস্তু ব্যবহারকারীর দৃশ্যক্ষেত্রের ভিতরে বা বাইরে কখন সরে যায় তা পর্যবেক্ষণ করার জন্য
SessionExt.ktতে স্থানিক দৃশ্যমানতা কলব্যাক এক্সটেনশন পদ্ধতি যোগ করা হয়েছে। -
SpatialAudioTrackএsetPointSourceParamsযোগ করা হয়েছে, যা ট্র্যাক তৈরির পরে প্যারামিটারগুলিকে আপডেট করার অনুমতি দেয়। -
ScenecoreAPI-এর রেফারেন্স সহ একটি নতুন ক্লাস, Scene যোগ করা হয়েছে। Scene Session-এর একটি এক্সটেনশন প্রপার্টি হিসেবে অ্যাক্সেসযোগ্য হবে।SessionExtএর ভিতরের ফাংশনগুলি Scene-এ স্থানান্তরিত করা হয়েছে তাই আমদানিগুলি সামঞ্জস্য করতে হবে; উদাহরণস্বরূপ,SessionExt.getScene(session).addSpatialCapababilitiesChangedListenerবনামSessionExt.addSpatialCapabilitiesChangedListener। -
ActivityPose.hitTestAsyncযোগ করা হয়েছে, যা ভার্চুয়াল কন্টেন্টের বিরুদ্ধে একটিhitTestসক্ষম করে। - নতুন কম্পোনেন্ট টাইপ
SpatialPointerComponentযোগ করা হয়েছে, যা ক্লায়েন্টদের পয়েন্টারের জন্য রেন্ডার করা আইকন নির্দিষ্ট করতে বা আইকনটি নিষ্ক্রিয় করতে দেয়। এই কম্পোনেন্টটি বর্তমানে শুধুমাত্রPanelEntityইনস্ট্যান্সের সাথে সংযুক্ত করা যেতে পারে। - নতুন
PanelEntityকারখানা চালু করা হচ্ছে, যা মিটার অথবা পিক্সেলের মাধ্যমে প্যানেলের মাত্রা গ্রহণ করে। পুরোনোPanelEntityকারখানা প্যানেল অপসারণের জন্য দুটি মাত্রা ধরণের পরামিতি গ্রহণ করছে।
API পরিবর্তনগুলি
- সমস্ত Jetpack XR প্যাকেজ থেকে
RequiresApi(34)সীমাবদ্ধতা অপসারণ করা হয়েছে। এই সীমাবদ্ধতাটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API লেভেল 34+ সহ ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 ) - Kotlin 2.0 দিয়ে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা তার নতুন সংস্করণ ব্যবহার করা প্রয়োজন ( Idb6b5 )
-
PermissionHelperক্লাসটি সরানো হয়েছে। -
PanelEntity.getPixelDensityবন্ধ করা হয়েছে। -
PanelEntity.setPixelDimensionsএবংPanelEntity.getPixelDimensionসরিয়েsetSizeInPixelsএবংgetSizeInPixelsদ্বারা প্রতিস্থাপিত হয়। -
Entity.getActivitySpaceAlphaসরানো হয়েছে।Entity.getAlpha(Space.Activity)দিয়ে প্রতিস্থাপন করা যেতে পারে। -
Entity.getWorldSpaceScaleসরানো হয়েছে।Entity.getScale(Space.REAL\_WORLD)দিয়ে প্রতিস্থাপন করা যেতে পারে। - XR রানটাইমের সেশনের পরিবর্তে
SceneCoreএর সেশন ক্লাসটি মুছে ফেলা হয়েছে। -
StereoSurfaceEntityনাম পরিবর্তন করেSurfaceEntityরাখা হয়েছে। -
Entity.setSizeএবংEntity.getSizeমুছে ফেলা হয়েছে, এবং একই পদ্ধতিPanelEntityতে যোগ করা হয়েছে। -
PointSourceAttributesনাম পরিবর্তন করেPointSourceParamsকরা হয়েছে। -
SpatializerConstants.SOURCE\_TYPE\_BYPASSএর নাম পরিবর্তন করেSpatializerConstants.SOURCE\_TYPE\_DEFAULTকরা হয়েছে। -
PointSourceParamsসত্তাটি পাবলিক থেকে অভ্যন্তরীণ অ্যাক্সেসে পরিবর্তন করা হয়েছে। -
AnchorEntity.createজন্য এখনSession.configure()এPlaneTrackingModeকনফিগার করা প্রয়োজন। -
SpatialUserAPI গুলির জন্য এখনSession.configure()এHeadTrackingModeকনফিগার করা প্রয়োজন। - যখন
ResizableComponentসংযুক্ত না থাকে, তখন এটি ERROR-স্তরের লগের পরিবর্তে INFO-স্তরের লগ দেবে। - Fov ক্লাস এখন একটি নিয়মিত কোটলিন ক্লাস।
- প্রতিটি নির্দিষ্ট সত্তার ধরণকে তার নিজস্ব ফাইলে স্থাপন করার জন্য
Entity.ktবিভক্ত করুন। - একটি নতুন
PanelEntityতৈরি করার সময়, বেশিরভাগ ভিউ একটিFrameLayoutএ পুনঃপৈতৃক করা হবে। এটি স্থানিক প্যানেলের সাথেLayoutInspectorব্যবহারকে সহজতর করে। - বর্তমানে ব্যবহৃত
XrExtensionsইনস্ট্যান্সটি এখন প্ল্যাটফর্মে নিবন্ধিত হয়েছে, সর্বোত্তম প্রচেষ্টার মাধ্যমে, অ্যাপ ডিবাগিংয়ে সহায়তা করার জন্য।
বাগ ফিক্স
-
MovableComponentএবংAnchorPlacementসহ একটিPanelEntityসরানোর সময় যে ক্র্যাশ ঘটতে পারে তা প্রতিরোধ করার জন্য একটি সমাধান যোগ করা হয়েছে। -
onResizeStartকলব্যাকেResizableComponentপুরনো আকার প্রদানের সমস্যাটি সমাধান করা হয়েছে। -
JxrPlatformAdapterAxrএরdispose()একাধিকবার কল করার সময় ক্র্যাশ ঠিক করা হয়েছে।
সংস্করণ 1.0.0-alpha03
২৬ ফেব্রুয়ারী, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha03 এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলি রয়েছে।
নতুন বৈশিষ্ট্য
- জেটপ্যাক এক্সআর কোডের জন্য এখন প্রোগার্ড মিনিফিকেশন সমর্থিত
বাগ ফিক্স
- Jetpack XR SceneCore ( I4f47e ) এর জন্য Proguard মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন
- মিনিফাই করা ক্লায়েন্টদের জন্য
AbstractMethodErrorপ্রতিরোধ করার জন্য Jetpack XR ScenecoreProGuardনিয়ম আপডেট করা হয়েছে। ( I91a01 )
সংস্করণ 1.0.0-alpha02
১২ ফেব্রুয়ারী, ২০২৫
androidx.xr.scenecore:scenecore:1.0.0-alpha02 এবং androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02-এ এই কমিটগুলি রয়েছে।
আসন্ন ব্রেকিং পরিবর্তন 1.0.0-alpha02 এর আগে তৈরি অ্যাপগুলিকে প্রভাবিত করবে
- প্রতিটি ধরণের ক্ষেত্রে ফ্যাক্টরি পদ্ধতিগুলি
Sessionক্লাস থেকে একটি কম্প্যানিয়ন পদ্ধতিতে স্থানান্তরিত করা হয়েছে:-
Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)মুছে ফেলা হয়েছে এবংActivityPanelEntity.create(Session, Dimensions, String, Pose)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createAnchorEntity(Anchor)মুছে ফেলা হয়েছে এবংAnchorEntity.create(Session, Anchor)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createAnchorEntity(Dimensions, Int, Int, Duration)মুছে ফেলা হয়েছে এবংAnchorEntity.create(Session, Dimensions, Int, Int, Duration)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createEntity(String, Pose)মুছে ফেলা হয়েছে এবংContentlessEntity.create(Session, String, Pose)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createExrImageResource(String)মুছে ফেলা হয়েছে এবংExrImage.create(Session, String)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createGltfEntity(GltfModel, Pose)মুছে ফেলা হয়েছে এবংGltfModelEntity.create(Session, GltfModel, Pose)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createGltfModelResource(String)মুছে ফেলা হয়েছে এবংGltfModel.create(Session, String)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createInteractableComponent(Executor, InputEventListener)মুছে ফেলা হয়েছে এবংInteractableComponent.create(Session, Executor, InputEventListener)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)মুছে ফেলা হয়েছে এবংMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose)মুছে ফেলা হয়েছে এবংPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createResizableComponent(Dimensions, Dimensions)মুছে ফেলা হয়েছে এবংResizableComponent.create(Session, Dimensions, Dimensions)দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.createStereoSurfaceEntity(Int, Dimensions, Pose)মুছে ফেলা হয়েছে এবংStereoSurface.create(Session, Int, Dimensions, Pose)দিয়ে প্রতিস্থাপিত হয়েছে।
-
- নিম্নলিখিত অবচিত পদ্ধতিগুলি সরানো হয়েছে:
-
Session.canEmbedActivityPanel(Activity)মুছে ফেলা হয়েছে। এর পরিবর্তেgetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)ব্যবহার করুন। -
Session.hasSpatialCapability(Int)মুছে ফেলা হয়েছে। স্থানিক ক্ষমতার উপস্থিতি পরীক্ষা করার জন্যgetSpatialCapabilities().hasCapability()ব্যবহার করার পক্ষে এটি প্রতিস্থাপন করা হয়েছে কারণgetSpatialCapabilities()একটিSpatialCapabilitiesঅবজেক্ট ফেরত দেয়। -
Session.requestFullSpaceMode()মুছে ফেলা হয়েছে এবংSpatialEnvironment.requestFullSpaceMode()দিয়ে প্রতিস্থাপিত হয়েছে। -
Session.requestHomeSpaceMode()মুছে ফেলা হয়েছে এবংSpatialEnvironment.requestHomeSpaceMode()দিয়ে প্রতিস্থাপিত হয়েছে।
-
-
Session.setFullSpaceMode(Bundle)এবংSession.setFullSpaceModeWithEnvironmentInherited(Bundle)এক্সটেনশন ফাংশনে সরানো হয়েছে। অ্যাক্সেসের জন্য ডেভেলপার ফাইলগুলিকে নতুন আমদানি যোগ করতে হবে:-
import androidx.xr.scenecore.setFullSpaceMode -
import androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
-
-
Session.setPreferredAspectRatio(Activity, Float)একটি এক্সটেনশন ফাংশনে সরানো হয়েছে। ডেভেলপার ফাইলগুলিকে অ্যাক্সেসের জন্য নতুন আমদানি যোগ করতে হবে:-
import androidx.xr.scenecore.setPreferredAspectRatio
-
-
Session.getEntitiesOfType(Class<out T>)এবংSession.getEntityForRtEntity(RtEntity)এক্সটেনশন ফাংশনে সরানো হয়েছে। অ্যাক্সেসের জন্য ডেভেলপার ফাইলগুলিকে নতুন আমদানি যোগ করতে হবে:-
import androidx.xr.scenecore.getEntitiesOfType -
import androidx.xr.scenecore.getEntityForRtEntity
-
-
Session.unpersistAnchor(Anchor)মুছে ফেলা হয়েছে -
Session.createPersistedAnchorEntity(UUID)মুছে ফেলা হয়েছে
জ্ঞাত সমস্যা
- প্যানেলটি পরবর্তী স্থানে সরানো না হওয়া পর্যন্ত
PanelEntity.setCornerRadius()এবংActivityPanelEntity.setCornerRadius()কার্যকর নাও হতে পারে, প্যানেলটিকে তার বর্তমান অবস্থানে সরিয়ে এই সমস্যা কমানো যেতে পারে। - যখন
ActivitySpaceএBoundsChangedকল করা হয়, তখন কিছুActivityPoseসঠিকভাবে আপডেট নাও হতে পারে।ActivitySpaceএ নিম্নলিখিতOnSpaceUpdatedকলে এটি আপডেট করা হবে।
ভঙ্গুরতা এবং আচরণগত পরিবর্তন
- প্যানেলের প্রস্থ বা উচ্চতা 32dp এর চেয়ে কম হলে
PanelEntityএবংActivityPanelEntityএর ডিফল্ট কোণার ব্যাসার্ধ 32dp বা তার চেয়ে কম হবে।
নতুন API এবং ক্ষমতা
-
StereoSurface.CanvasShapeপ্রবর্তন করে, যা ইমারসিভ মিডিয়া রেন্ডার করার জন্যSphericalএবংHemisphericalক্যানভাস তৈরির অনুমতি দেয়। -
StereoSurfaceEntity.create()এখন একটিCanvasShapeপ্যারামিটার গ্রহণ করে। (এই প্যারামিটারটি বর্তমানে উপেক্ষা করা হয়েছে, তবে ভবিষ্যতের রিলিজে ব্যবহার করা হবে) -
StereoSurfaceEntity.create()আরDimensionsপ্যারামিটার নেয় না। অ্যাপ্লিকেশনগুলিকেCanvasShapeসেট করার মাধ্যমে ক্যানভাসের আকার নিয়ন্ত্রণ করতে হবে। -
StereoSurfaceEntityএকটিCanvasShapeসদস্য আছে যা গতিশীলভাবে সেট করা যেতে পারে। -
StereoSurfaceEntity.dimensionsএখন একটি পঠনযোগ্য সম্পত্তি; অ্যাপ্লিকেশনগুলিকে মাত্রা পরিবর্তন করার জন্যCanvasShapeসেট করা উচিত। -
StereoSurfaceEntityএখনStereoModeনির্মাণের পরে পুনরায় সেট করার অনুমতি দেয়।
অন্যান্য পরিবর্তন
- কম্পাইল-টাইম minSDK কমিয়ে 24 করা হয়েছে। সমস্ত Jetpack XR API-এর রানটাইমে API 34 প্রয়োজন হবে।
-
SceneCoreএর Session factory (Session.create) আরSCENE_UNDERSTANDINGঅনুমতি অর্জনের উদ্দেশ্যে কাজ শুরু করে না। পরিবর্তে, ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অ্যাঙ্কর তৈরি করার চেষ্টা করার আগে ব্যবহারকারীর কাছ থেকে স্পষ্টভাবে অনুমতির অনুরোধ করতে হবে। ব্যবহারকারী যদি অনুমতি না দেন তবে অ্যাঙ্কর তৈরি ব্যর্থ হবে।
বাগ সংশোধন
-
getActivitySpacePose()ActivitySpaceস্কেলের জন্য হিসাব করার জন্য স্থির করা হয়েছে, যা সর্বদা নন-স্কেলড মিটার ফেরত দেওয়ার পরিবর্তে স্কেলড মিটারে অনুবাদ মান ফেরত দেয়।transformPoseToএখন উৎস বা গন্তব্যস্থলেActivitySpaceজড়িত থাকলে স্থানাঙ্ক পরিবর্তন গণনা করার জন্য সঠিক ইউনিট ব্যবহার করে। -
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom))ব্যবহার করে যখনই একটি নাল স্কাইবক্স পছন্দ পাস করা হবে তখন স্কাইবক্সটি এখন সম্পূর্ণ কালো স্কাইবক্সে সেট করা হবে। সিস্টেমের ডিফল্ট স্কাইবক্স এবং জ্যামিতিতে ফিরে যেতে,setSpatialEnvironmentPreference(null).
সংস্করণ 1.0.0-alpha01
১২ ডিসেম্বর, ২০২৪
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 প্রকাশিত হয়েছে।
প্রাথমিক প্রকাশের বৈশিষ্ট্য: জেটপ্যাক সিনকোরের প্রাথমিক ডেভেলপার রিলিজ, যা নিমজ্জিত দৃশ্য এবং পরিবেশ তৈরি এবং পরিচালনা করার জন্য একটি 3D দৃশ্য গ্রাফ লাইব্রেরি। এই লাইব্রেরি আপনাকে একে অপরের সাথে এবং আপনার ভার্চুয়াল বা বাস্তব-বিশ্বের পরিবেশের সাথে সম্পর্কিত 3D মডেল এবং কন্টেন্ট প্যানেল স্থাপন এবং সাজানোর অনুমতি দেয়।
- স্থানিক পরিবেশ : আপনার পরিবেশের XR দৃশ্যের পটভূমি হিসেবে একটি স্কাইবক্স চিত্র এবং/অথবা 3D মডেল জ্যামিতি ব্যবহার করে সম্পূর্ণরূপে নিমজ্জিত অভিজ্ঞতা তৈরি করুন। অথবা পাসথ্রু সক্ষম করুন, যাতে আপনার ভার্চুয়াল দৃশ্য ব্যবহারকারীর বাস্তব-বিশ্বের পরিবেশের সাথে একীভূত হতে পারে।
- PanelEntity : আপনার 3D দৃশ্যে 2D কন্টেন্ট যোগ করুন, স্ট্যান্ডার্ড অ্যান্ড্রয়েড লেআউট এবং অ্যাক্টিভিটিগুলিকে স্থানিক প্যানেলে এম্বেড করে যা ভাসতে পারে বা বাস্তব-বিশ্বের পৃষ্ঠে নোঙ্গর করা যেতে পারে।
- GltfModelEntity : আপনার দৃশ্যে 3D মডেল স্থাপন, অ্যানিমেট এবং ইন্টারঅ্যাক্ট করুন। বিদ্যমান মডেলগুলির সাথে ইন্টিগ্রেশন সহজ করার জন্য SceneCore glTF ফাইল ফর্ম্যাট সমর্থন করে।
- স্পেশিয়ালঅডিও : সম্পূর্ণরূপে নিমজ্জিত, স্থানিক শব্দের জন্য আপনার 3D দৃশ্যে অ্যাম্বিয়েন্ট এবং পয়েন্ট অডিও উৎস যোগ করুন।
- StereoSurfaceEntity : SceneCore অ্যান্ড্রয়েড সারফেসে রেন্ডার করা কন্টেন্টের বাম/ডান চোখের রাউটিং সমর্থন করে। এটি স্টেরিওস্কোপিক কন্টেন্টকে পাশাপাশি বা উপরে-নীচে ফর্ম্যাটে রেন্ডার করতে ব্যবহার করা যেতে পারে, যেমন স্টেরিও ফটো, 3D ভিডিও, অথবা অন্যান্য গতিশীলভাবে রেন্ডার করা UI। অ্যাপ্লিকেশনগুলিতে ভিডিও ডিকোডিংয়ের জন্য MediaPlayer বা ExoPlayer ব্যবহার করা উচিত।
- কম্পোনেন্ট সিস্টেম: সিনকোর আপনার XR কন্টেন্টে ক্ষমতা যোগ করার জন্য একটি শক্তিশালী এবং নমনীয় কম্পোনেন্ট সিস্টেম অফার করে, যার মধ্যে ব্যবহারকারীদের মডেল এবং প্যানেলগুলি সরানোর, আকার পরিবর্তন করার এবং ইন্টারঅ্যাক্ট করার সুযোগ রয়েছে।
- অ্যাঙ্কর : পাসথ্রু সক্ষম করে, আপনি প্যানেল এবং মডেলগুলিকে প্রকৃত পৃষ্ঠের সাথে সংযুক্ত করতে পারেন, যা ব্যবহারকারীদের তাদের বাস্তব-বিশ্বের পরিবেশে ভার্চুয়াল সামগ্রীর নির্বিঘ্ন একীকরণ প্রদান করে।
- ব্যবহারকারীর ভঙ্গি: ভার্চুয়াল দৃশ্যে ব্যবহারকারীর অবস্থান অ্যাক্সেস করুন, যাতে আপনার বিষয়বস্তু ব্যবহারকারীর অবস্থানের চারপাশে পরিচালিত হয়।
- স্থানিক সক্ষমতা : সম্পূর্ণরূপে অভিযোজিত অ্যাপ তৈরি করুন যা উপলব্ধ থাকাকালীন স্থানিক ক্ষমতার সুবিধা গ্রহণ করে, যেমন UI কন্টেন্টের 3D অবস্থান। শুধু তাই নয়, ব্যবহারকারী তাদের Android XR ডিভাইসটি কীভাবে ব্যবহার করছেন তার উপর ভিত্তি করে অভিজ্ঞতা পরিবর্তন করার জন্য, অ্যাপটি কার্যকর করার সময় ক্ষমতার পরিবর্তনগুলি পর্যবেক্ষণ করতে পারে।
জ্ঞাত সমস্যা
- বর্তমানে Jetpack SceneCore ব্যবহার করার জন্য minSDK এর 30 প্রয়োজন। সমাধান হিসেবে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি যোগ করুন
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>যাতে আপনি 23 এর minSDK দিয়ে তৈরি এবং চালাতে পারেন। - স্বয়ংক্রিয়ভাবে অ্যাক্টিভিটি পুনরায় তৈরি করার বিভিন্ন পরিস্থিতিতে সেশন অবৈধ হয়ে যেতে পারে, যার মধ্যে রয়েছে একটি প্রধান প্যানেলের আকার পরিবর্তন করা, পেরিফেরাল সংযোগ করা এবং হালকা এবং অন্ধকার মোডের মধ্যে পরিবর্তন করা। যদি আপনি সেশন অবৈধকরণের সমস্যার সম্মুখীন হন, তাহলে সমাধানের জন্য প্রধান প্যানেলকে আকার পরিবর্তনযোগ্য করে তোলা, একটি গতিশীল প্যানেল সত্তা ব্যবহার করা, নির্দিষ্ট কনফিগারেশন পরিবর্তনের জন্য অ্যাক্টিভিটি পুনর্গঠন অক্ষম করা বা হালকা/অন্ধকার মোড থিম পরিবর্তন অক্ষম করা অন্তর্ভুক্ত।
- GltfEntity-তে চলমান এবং আকার পরিবর্তনযোগ্য উপাদানগুলি সমর্থিত নয়।
- GltfEntity-তে Entity.getSize() সমর্থিত নয়।
- AndroidManifest-এ
android.permission.SCENE_UNDERSTANDINGঅনুমতির জন্য Jetpack XR অ্যাপগুলির প্রয়োজন। - একটি সেশন তৈরি করা শুধুমাত্র একটি Android XR ডিভাইসে সমর্থিত। এই সময়ে, যদি আপনি একটি সেশন তৈরি করেন এবং এটি একটি নন-Android XR ডিভাইসে ব্যবহার করার চেষ্টা করেন, তাহলে আপনি একটি RuntimeException পাবেন।
- `SpatialEnvironment.setSpatialEnvironmentPreference() এর মাধ্যমে স্কাইবক্সটিকে null এ সেট করলে নথিভুক্ত হিসাবে একটি কঠিন কালো স্কাইবক্স তৈরি হয় না। এর ফলে সিস্টেমের ডিফল্ট স্কাইবক্স তৈরি হতে পারে অথবা বর্তমান স্কাইবক্সে কোনও পরিবর্তন নাও হতে পারে।
- SceneCore ক্লায়েন্টদের তাদের অ্যাপের নির্ভরতার জন্য তাদের Gradle কনফিগারেশনে
implementation(“com.google.guava:listenablefuture-1.0”)যোগ করা উচিত। ভবিষ্যতের রিলিজে, scenecore এই লাইব্রেরিটিকেapiনির্ভরতা হিসেবে অন্তর্ভুক্ত করবে যাতে ক্লায়েন্টদের এটি স্পষ্টভাবে ঘোষণা করার প্রয়োজন না হয়। - SceneCore ভুল করে
com.google.guava:guava-31.1-androidএবংcom.google.protobuf:protobuf-javaliteট্রানজিটিভ ডিপেন্ডেন্সি হিসেবে অন্তর্ভুক্ত করেছে। যদি এর ফলে আপনার বিল্ডে ডুপ্লিকেট ক্লাস ত্রুটি দেখা দেয়, তাহলে এই দুটি ডিপেন্ডেন্সি নিরাপদে বাদ দেওয়া যেতে পারে। - যদি আপনার অ্যাপটি SceneCore ব্যবহার করে এবং ProGuard সক্ষম করে, তাহলে আপনি যখন একটি সেশন তৈরি করবেন তখন এটি ক্র্যাশ হয়ে যাবে। সমাধান হিসেবে, ProGuard অক্ষম করুন। ProGuard কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য এই নির্দেশিকাটি দেখুন।