앱에 공간 동영상 추가

Jetpack XR SDK는 평평한 표면에 대한 입체 비디오 나란히 표시 재생을 지원합니다. 입체 동영상의 경우 각 프레임은 시청자에게 깊이감을 주기 위해 왼쪽 눈 이미지와 오른쪽 눈 이미지로 구성됩니다.

다른 폼 팩터의 Android 개발에 사용되는 표준 미디어 API를 사용하여 Android XR 앱에서 비입체 2D 동영상을 렌더링할 수 있습니다.

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