SDK Jetpack XR hỗ trợ phát video cạnh nhau âm thanh nổi trên các bề mặt phẳng. Với video 3D, mỗi khung hình bao gồm một hình ảnh mắt trái và một hình ảnh mắt phải để mang lại cho người xem cảm giác về chiều sâu.
Bạn có thể kết xuất video 2D không lập thể trên các ứng dụng Android XR bằng API đa phương tiện tiêu chuẩn dùng để phát triển Android trên các kiểu dáng khác.
Phát video cạnh nhau bằng SDK Jetpack XR
Với video cạnh nhau, mỗi khung hình ba chiều được trình bày dưới dạng hai hình ảnh được sắp xếp cạnh nhau theo chiều ngang. Các khung hình video trên cùng và dưới cùng được sắp xếp theo chiều dọc cạnh nhau.
Video cạnh nhau không phải là một bộ mã hoá và giải mã mà là một cách sắp xếp các khung hình ba chiều, tức là video này có thể được mã hoá bằng bất kỳ bộ mã hoá và giải mã nào mà Android hỗ trợ.
Bạn có thể tải video cạnh nhau bằng Media3 Exoplayer, sau đó hiển thị video đó bằng StereoSurfaceEntity
mới. Để tạo StereoSurfaceEntity
, hãy gọi createStereoSurfaceEntity()
trên Session
, như trong ví dụ sau.
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()