إضافة فيديو مكاني إلى تطبيقك

تتيح حزمة تطوير البرامج Jetpack XR SDK تشغيل فيديوهات الاستيريو بجانب بعضها على الأسطح المستوية. في الفيديو المجسم، يتألّف كل إطار من صورة للعين اليسرى وصورة للعين اليمنى لمنح المشاهدين إحساسًا بالعمق.

يمكنك عرض فيديو ثنائي الأبعاد غير مجسم على تطبيقات الواقع المعزّز من Android باستخدام واجهات برمجة تطبيقات قياسية للوسائط المستخدَمة لتطوير تطبيقات Android على أشكال أجهزة أخرى.

تشغيل فيديوهات جنبًا إلى جنب باستخدام حزمة تطوير البرامج (SDK) من Jetpack XR

في الفيديوهات التي يتم عرضها جنبًا إلى جنب، يتم عرض كل إطار مجسم على شكل صورتَين مرتبتين أفقيًا بجانب بعضهما. يتم ترتيب لقطات الفيديو العلوية والسفلية بجانب بعضها عموديًا.

الفيديو المعروض على جانبَي الشاشة ليس برنامج ترميز، بل هو طريقة لتنظيم 🖼️اللقطات المجسمة، ما يعني أنّه يمكن ترميزه باستخدام أي من برامج الترميز المتوافقة مع 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()