Jetpack XR SDK, सपाट सतहों पर स्टीरियोस्कोपिक साइड-बाय-साइड वीडियो चलाने की सुविधा देता है. स्टीरियोस्कोपिक वीडियो में, हर फ़्रेम में बाईं और दाईं आंख की इमेज होती है. इससे दर्शकों को गहराई का एहसास होता है.
Android XR ऐप्लिकेशन पर, नॉन-स्टीरियोस्कोपिक 2D वीडियो को रेंडर किया जा सकता है. इसके लिए, दूसरे फ़ॉर्म फ़ैक्टर पर Android डेवलपमेंट के लिए इस्तेमाल किए जाने वाले स्टैंडर्ड मीडिया एपीआई का इस्तेमाल किया जा सकता है.
Jetpack XR SDK टूल का इस्तेमाल करके, एक साथ दो वीडियो चलाना
साइड-बाय-साइड वीडियो में, हर स्टीरियोस्कोपिक फ़्रेम को दो इमेज के तौर पर दिखाया जाता है. ये इमेज, एक-दूसरे के बगल में हॉरिज़ॉन्टल तौर पर व्यवस्थित होती हैं. टॉप और बॉटम वीडियो फ़्रेम, एक-दूसरे के बगल में वर्टिकल तौर पर व्यवस्थित किए जाते हैं.
साइड-बाय-साइड वीडियो कोई कोडेक नहीं है, बल्कि यह स्टीरियोस्कोपिक फ़्रेम को व्यवस्थित करने का एक तरीका है. इसका मतलब है कि इसे Android के साथ काम करने वाले किसी भी कोडेक में एन्कोड किया जा सकता है.
Media3 Exoplayer का इस्तेमाल करके, एक साथ दो वीडियो लोड किए जा सकते हैं. इसके बाद, नए StereoSurfaceEntity
का इस्तेमाल करके, उन्हें रेंडर किया जा सकता है. StereoSurfaceEntity
बनाने के लिए, Session
पर createStereoSurfaceEntity()
को कॉल करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है.
stereoSurfaceEntity = xrSession.createStereoSurfaceEntity(
StereoSurfaceEntity.StereoMode.SIDE_BY_SIDE,
Dimensions(2.0F, 2.0F, 0.0F),
// Position 1.5 meters in front of user
Pose(Vector3(0.0f, 0.0f, -1.5f), Quaternion(0.0f, 0.0f, 0.0f, 1.0f))
)
val videoUri = Uri.Builder()
.scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
.path(R.raw.sbs_test_video.toString())
.build()
val mediaItem = MediaItem.fromUri(videoUri)
exoPlayer = ExoPlayer.Builder(this).build()
exoPlayer.setVideoSurface(stereoSurfaceEntity!!.getSurface())
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()
exoPlayer.play()