Aggiungere video spaziali alla tua app

L'SDK Jetpack XR supporta la riproduzione di video affiancati stereoscopici su superfici piane. Con i video stereoscopici, ogni fotogramma è composto da un'immagine per l'occhio sinistro e un'immagine per l'occhio destro per dare agli spettatori un senso di profondità.

Puoi eseguire il rendering di video 2D non stereoscopici sulle app Android XR con le API media standard utilizzate per lo sviluppo di Android su altri fattori di forma.

Riprodurre video affiancati utilizzando l'SDK Jetpack XR

Con i video affiancati, ogni fotogramma stereoscopico viene presentato come due immagini disposte una accanto all'altra in orizzontale. I frame video superiore e inferiore sono disposti verticalmente uno accanto all'altro.

Il video affiancato non è un codec, ma un modo per organizzare i frame stereoscopici, il che significa che può essere codificato in uno dei codec supportati da Android.

Puoi caricare i video affiancati utilizzando Media3 Exoplayer e poi visualizzarli con il nuovo StereoSurfaceEntity. Per creare un StereoSurfaceEntity, chiamate createStereoSurfaceEntity() sul tuo Session, come показано показано nell'esempio seguente.

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