معرفی ضبط و پخش

راهنماهای مخصوص پلتفرم

اکثریت قریب به اتفاق تجربیات واقعیت افزوده «در لحظه» هستند. آن‌ها مستلزم این هستند که کاربران در یک زمان مشخص در یک مکان خاص باشند، گوشی آن‌ها در حالت AR خاص تنظیم شده و یک برنامه AR باز باشد. به عنوان مثال، اگر کاربری بخواهد ببیند که یک مبل AR در اتاق نشیمن او چگونه به نظر می‌رسد، باید مبل را در محیط روی صفحه نمایش «قرار» دهد، در حالی که از نظر فیزیکی در اتاق حضور دارد.

API ضبط و پخش، این الزام «زمان واقعی» را از بین می‌برد و شما را قادر می‌سازد تا تجربیات واقعیت افزوده‌ای ایجاد کنید که در هر زمان و هر مکانی قابل مشاهده باشند. API ضبط، جریان ویدیویی دوربین، داده‌های IMU یا هر ابرداده سفارشی دیگری را که برای ذخیره در یک فایل MP4 انتخاب می‌کنید، ذخیره می‌کند. سپس می‌توانید این ویدیوهای ضبط شده را از طریق API پخش به ARCore ارسال کنید، که با MP4 درست مانند یک فید جلسه زنده رفتار می‌کند. شما هنوز هم می‌توانید از یک جلسه دوربین زنده استفاده کنید، اما با این API جدید، برنامه‌های واقعیت افزوده شما می‌توانند به جای آن جلسه زنده، از یک MP4 از پیش ضبط شده استفاده کنند.

کاربران نهایی نیز می‌توانند از این ویژگی بهره‌مند شوند. فرقی نمی‌کند در زندگی واقعی کجا باشند، می‌توانند هر ویدیویی را که با API ضبط و پخش ضبط شده است از گالری اصلی خود بیرون بکشند و اشیاء، جلوه‌ها و فیلترهای واقعیت افزوده را ویرایش یا پخش کنند. با این ویژگی، کاربران می‌توانند خرید واقعیت افزوده خود را در حالی که در قطار به سمت محل کار خود می‌روند یا در رختخواب لم می‌دهند، انجام دهند.

موارد استفاده برای توسعه با API ضبط و پخش

API ضبط و پخش، محدودیت‌های زمانی و مکانی ساخت برنامه‌های واقعیت افزوده را از بین می‌برد. در اینجا چند روش برای استفاده از آن در پروژه‌های خود آورده شده است.

یک بار ضبط کنید، همه جا تست کنید

به جای اینکه هر بار که نیاز به آزمایش یک ویژگی AR دارید، به صورت فیزیکی به مکانی بروید، می‌توانید با استفاده از Recording API یک ویدیو ضبط کنید و سپس آن را با استفاده از هر دستگاه سازگار پخش کنید. ایجاد یک تجربه در یک مرکز خرید؟ نیازی نیست هر بار که می‌خواهید یک تغییر را آزمایش کنید، به آنجا بروید. کافیست یک بار بازدید خود را ضبط کنید و سپس از راحتی میز خود، آن را تکرار و توسعه دهید.

کاهش زمان تکرار

به جای اینکه مجبور باشید برای هر دستگاه اندرویدی که می‌خواهید از آن پشتیبانی کنید، برای هر سناریویی که می‌خواهید آزمایش کنید، ویدیو ضبط کنید، می‌توانید یک بار ویدیو را ضبط کنید و در طول مرحله تکرار، آن را روی چندین دستگاه مختلف پخش کنید.

کاهش بار تست دستی در تیم‌های توسعه

به جای ایجاد مجموعه داده‌های سفارشی برای هر ویژگی جدید، از مجموعه داده‌های از پیش ضبط شده هنگام راه‌اندازی ویژگی‌های جدیدی که عمق یا آخرین پیشرفت‌های ردیابی از ARCore را در بر می‌گیرند، استفاده کنید.

سازگاری دستگاه

برای ضبط داده‌ها با استفاده از API ضبط و پخش، به ARCore نیاز خواهید داشت، اما برای پخش به آن نیازی نخواهید داشت. فایل‌های MP4 ضبط شده با استفاده از این ویژگی، اساساً فایل‌های ویدیویی با داده‌های اضافی هستند که می‌توانند با استفاده از هر پخش‌کننده ویدیویی مشاهده شوند. می‌توانید آنها را با ExoPlayer اندروید یا هر پخش‌کننده سازگاری که می‌تواند هم فایل‌های MP4 را demux کند و هم داده‌های اضافی اضافه شده توسط ARCore را مدیریت کند، بررسی کنید.

نحوه ضبط داده‌های ویدیویی و واقعیت افزوده برای پخش

ARCore جلسات ضبط شده را در فایل‌های MP4 در دستگاه هدف ذخیره می‌کند. این فایل‌ها حاوی چندین قطعه ویدیویی و سایر داده‌های متفرقه هستند. پس از ذخیره این جلسات، می‌توانید برنامه خود را طوری تنظیم کنید که از این داده‌ها به جای یک جلسه دوربین زنده استفاده کند.

چه چیزهایی در ضبط وجود دارد؟

ARCore داده‌های زیر را با فرمت ویدیویی H.264 ضبط می‌کند. می‌توانید در هر پخش‌کننده ویدیویی سازگار با MP4 که قابلیت تعویض آهنگ را دارد، به آن دسترسی داشته باشید. آهنگ با بالاترین وضوح، اولین آهنگ در لیست است زیرا برخی از پخش‌کننده‌های ویدیویی سازگار با MP4 به طور خودکار اولین آهنگ موجود در لیست را پخش می‌کنند بدون اینکه به شما اجازه دهند آهنگ ویدیویی را انتخاب کنید.

تراک ویدیویی اصلی (تراک تصویر CPU)

فایل ویدیویی اصلی، محیط یا صحنه را برای پخش بعدی ضبط می‌کند. به طور پیش‌فرض، ARCore تصویر CPU با وضوح 640x480 (VGA) را که برای ردیابی حرکت استفاده می‌شود، به عنوان جریان ویدیویی اصلی ضبط می‌کند.

ARCore بافت (با وضوح بالا) پردازنده گرافیکی را که به عنوان تصویر دوربین عبوری روی صفحه نمایش داده می‌شود، ضبط نمی‌کند.

اگر می‌خواهید جریان تصویری با وضوح بالا در حین پخش در دسترس باشد، باید دوربینی را پیکربندی کنید که تصویر CPU با وضوح مورد نظر را ارائه دهد. در این حالت:

  • ARCore هم تصویر CPU با وضوح 640x480 (VGA) که برای ردیابی حرکت نیاز دارد و هم تصویر CPU با وضوح بالا که توسط پیکربندی دوربین پیکربندی شده مشخص شده است را درخواست خواهد کرد.
  • ضبط جریان تصویر دوم CPU ممکن است بر عملکرد برنامه تأثیر بگذارد و دستگاه‌های مختلف ممکن است به طور متفاوتی تحت تأثیر قرار گیرند.
  • در طول پخش، ARCore از تصویر CPU با وضوح بالا که در طول ضبط ضبط شده است، به عنوان بافت GPU در طول پخش استفاده خواهد کرد.
  • تصویر CPU با وضوح بالا به جریان ویدیویی پیش‌فرض در ضبط MP4 تبدیل خواهد شد.

پیکربندی دوربین انتخاب شده در طول ضبط، تصویر CPU و جریان اصلی ویدئو در ضبط را تعیین می‌کند. اگر پیکربندی دوربینی با تصویر CPU با وضوح بالا انتخاب نکنید، این ویدئو اولین تراک فایل خواهد بود و صرف نظر از اینکه از کدام پخش‌کننده ویدئو استفاده می‌کنید، به طور پیش‌فرض پخش می‌شود.

تجسم نقشه عمق دوربین

این یک فایل ویدیویی است که نقشه عمق دوربین را نشان می‌دهد، که از حسگر عمق سخت‌افزاری دستگاه، مانند حسگر زمان پرواز (یا حسگر ToF)، ضبط شده و به مقادیر کانال RGB تبدیل شده است. این ویدیو فقط باید برای اهداف پیش‌نمایش استفاده شود.

رویدادهای فراخوانی API

ARCore اندازه‌گیری‌های حسگرهای ژیرومتر و شتاب‌سنج دستگاه را ثبت می‌کند. همچنین داده‌های دیگری را نیز ثبت می‌کند که برخی از آنها ممکن است حساس باشند:

  • نسخه‌های قالب مجموعه داده‌ها
  • نسخه ARCore SDK
  • سرویس‌های گوگل پلی برای نسخه واقعیت افزوده
  • اثر انگشت دستگاه (خروجی adb shell getprop ro.build.fingerprint )
  • اطلاعات تکمیلی در مورد حسگرهای مورد استفاده برای ردیابی AR
  • هنگام استفاده از API مکانی ARCore ، موقعیت تخمینی دستگاه، قرائت‌های مغناطیس‌سنج و قرائت‌های قطب‌نما