הוספת סרטון מרחבי לאפליקציה

‏Jetpack XR SDK תומך בהפעלה של סרטונים סטראוסקופיים זה לצד זה על משטחים שטוחים. בסרטון סטריאופוני, כל פריים מורכב מתמונה של העין השמאלית ומתמונה של העין הימנית, כדי לתת לצופים תחושה של עומק.

אפשר ליצור עיבוד וידאו דו-מימדי לא סטריאופוני באפליקציות ל-Android XR באמצעות ממשקי ה-API הרגילים של המדיה שמיועדים לפיתוח Android בפלטפורמות אחרות.

הפעלת סרטון בשני צידי המסך באמצעות Jetpack XR SDK

בסרטון 'צד לצד', כל פריים סטריאופוני מוצג בשתי תמונות שממוקמות זו לצד זו בפריסה אופקית. הפריים העליון והפריים התחתון של הסרטון מסודרים זה לצד זה באופן אנכי.

סרטון לצד סרטון הוא לא קודק, אלא דרך לארגן פריימים סטריאוסקופיים. כלומר, אפשר לקודד אותו בכל אחד מקודקי הווידאו הנתמכים ב-Android.

אפשר לטעון סרטון לצד סרטון באמצעות Media3 Exoplayer ואז ליצור רינדור שלו באמצעות StereoSurfaceEntity החדש. כדי ליצור StereoSurfaceEntity, צריך לבצע קריאה ל-createStereoSurfaceEntity() ב-Session, כפי שמתואר בדוגמה הבאה.

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()