From 123b74cd14594ac59baa03e0e1526c01a194119d Mon Sep 17 00:00:00 2001 From: Vinny DaSilva Date: Thu, 8 May 2025 14:09:50 -0400 Subject: [PATCH] Adding snippet for MV-HEVC video playback --- .../com/example/xr/scenecore/SpatialVideo.kt | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/xr/src/main/java/com/example/xr/scenecore/SpatialVideo.kt b/xr/src/main/java/com/example/xr/scenecore/SpatialVideo.kt index 272c21a8..f60d9ecf 100644 --- a/xr/src/main/java/com/example/xr/scenecore/SpatialVideo.kt +++ b/xr/src/main/java/com/example/xr/scenecore/SpatialVideo.kt @@ -32,7 +32,6 @@ private fun ComponentActivity.surfaceEntityCreate(xrSession: Session) { val stereoSurfaceEntity = SurfaceEntity.create( xrSession, SurfaceEntity.StereoMode.SIDE_BY_SIDE, - // Position 1.5 meters in front of user Pose(Vector3(0.0f, 0.0f, -1.5f)), SurfaceEntity.CanvasShape.Quad(1.0f, 1.0f) ) @@ -83,3 +82,26 @@ private fun ComponentActivity.surfaceEntityCreateTb(xrSession: Session) { // ... and use the surface for playing the media. // [END androidxr_scenecore_surfaceEntityCreateTb] } + +private fun ComponentActivity.surfaceEntityCreateMVHEVC(xrSession: Session) { + // [START androidxr_scenecore_surfaceEntityCreateMVHEVC] + // Create the SurfaceEntity with the StereoMode corresponding to the MV-HEVC content + val stereoSurfaceEntity = SurfaceEntity.create( + xrSession, + SurfaceEntity.StereoMode.MULTIVIEW_LEFT_PRIMARY, + Pose(Vector3(0.0f, 0.0f, -1.5f)), + SurfaceEntity.CanvasShape.Quad(1.0f, 1.0f) + ) + val videoUri = Uri.Builder() + .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) + .path("mvhevc_video.mp4") + .build() + val mediaItem = MediaItem.fromUri(videoUri) + + val exoPlayer = ExoPlayer.Builder(this).build() + exoPlayer.setVideoSurface(stereoSurfaceEntity.getSurface()) + exoPlayer.setMediaItem(mediaItem) + exoPlayer.prepare() + exoPlayer.play() + // [END androidxr_scenecore_surfaceEntityCreateMVHEVC] +} \ No newline at end of file