জেটপ্যাক সিনকোর
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
২২ অক্টোবর, ২০২৫ | - | - | - | ১.০.০-আলফা০৮ |
নির্ভরতা ঘোষণা করা
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 ) করা হয়েছে। - পঠনযোগ্যতার জন্য
SceneCore
TextureSampler
ধ্রুবক আপডেট করা হয়েছে, উদাহরণস্বরূপTextureSampler.MinFilter.LINEAR
এখনTextureSampler.MIN_FILTER_LINEAR
( Ib159c )। - দৃশ্যের
setKeyEntity
সেটারটিkeyEntity
ভেরিয়েবলের সাথে মার্জ করা হয়েছে।keyEntity
AnchorEntity
এর মতো একটি অস্থাবর সত্তায় সেট করলে বুলিয়ান 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
এবংBaseScenePose
API গুলি ( 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.OnSpaceUpdatedListener
Runnable
দিয়ে প্রতিস্থাপিত করা হয়েছে। ( 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.OnStateChangedListener
Consumer<AnchorEntity.State>
দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I472e0 ) -
GltfModelEntity.getAnimationState()
এখন একটি সম্পত্তি। ( I10b29 ) -
ActivitySpace.getBounds()
একটি প্রপার্টি দিয়ে প্রতিস্থাপিত করা হয়েছে।ActivitySpace.addBoundsChangedListener
এর নাম পরিবর্তন করেActivitySpace.addOnBoundsChangedListener
করা হয়েছে।ActivitySpace.setOnSpaceUpdatedListener
add/remove পদ্ধতি দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I4c956 ) -
AnchorPlacement: planeTypeFilter
নাম পরিবর্তন করেanchorablePlaneOrientations
রাখা হয়েছে,planeSemanticFilter
নাম পরিবর্তন করেanchorablePlaneSemanticTypes
রাখা হয়েছে।AnchorEntity
তে একটিMovableComponent
যোগ করুন অথবাActivitySpace
মিথ্যা রিটার্ন করবে,MoveListener
এর নাম পরিবর্তন করেEntityMoveListener shouldDisposeParentAnchor
এর নাম পরিবর্তন করেdisposeParentOnReAnchor systemMovable
create
ফাংশন থেকে সরিয়ে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' StateListener
Consumer<Int>
দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I9c7ac ) -
InputEventListener
Consumer<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 ফাংশন রয়েছে,GuavaScenePose
Guava-সমতুল্যScenePose
async ফাংশন রয়েছে,GuavaGltfModel
Guava-equivalent GltfModel
async ফাংশন রয়েছে, ইত্যাদি। ( If7283 ) ( I0af60 ) ( If7283 ) ( Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )
বাগ ফিক্স
- মিনিফাই করা ক্লায়েন্টদের জন্য
AbstractMethodError
প্রতিরোধ করার জন্য Jetpack XR ScenecoreProGuard
নিয়ম আপডেট করা হয়েছে। ( I91a01 ) - Jetpack XR
SceneCore
( I4f47e ) এর জন্য Proguard মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন -
InputEvent
এর HitInfo তেhitPosition
যদি সিস্টেম থেকে ফিরে আসাhitPosition
null থাকে তাহলে যদি একটিInteractableComponent
ক্র্যাশ করতে পারে এমন একটি বাগ সংশোধন করা হয়েছে ( I7a695 ) - কনফিগ *মোড ভ্যালগুলিকে তাদের আচরণ প্রতিফলিত করার জন্য পুনঃনামকরণ করা হয়েছে। ( I6d247 )
-
SceneCore
TestApp-এ 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
যোগ করা হয়েছে, যা ট্র্যাক তৈরির পরে প্যারামিটারগুলিকে আপডেট করার অনুমতি দেয়। -
Scenecore
API-এর রেফারেন্স সহ একটি নতুন ক্লাস, 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
কনফিগার করা প্রয়োজন। -
SpatialUser
API গুলির জন্য এখন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 কীভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য এই নির্দেশিকাটি দেখুন।