অ্যান্ড্রয়েডকে লক্ষ্য করে ইউনিটিতে একটি AR সেশন রেকর্ড করুন এবং প্লে ব্যাক করুন

রেকর্ডিং এবং প্লেব্যাক API আপনাকে একটি নির্দিষ্ট পরিবেশের মধ্যে একবার ভিডিও এবং AR ডেটা রেকর্ড করতে এবং একটি লাইভ ক্যামেরা সেশন প্রতিস্থাপন করতে সেই সামগ্রীটি ব্যবহার করতে সক্ষম করে।

পূর্বশর্ত

এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি মৌলিক AR ধারণা এবং কীভাবে একটি ARCore সেশন কনফিগার করবেন তা বুঝতে পেরেছেন।

অন্যান্য ARCore API-এর সাথে সামঞ্জস্যপূর্ণ

সেশন ডেটা যেভাবে প্রক্রিয়া করা হয় তার কারণে, ARCore APIগুলি রেকর্ডিংয়ের সময় পর্যবেক্ষণের চেয়ে প্লেব্যাকের সময় ভিন্ন ফলাফল দিতে পারে। তারা পরবর্তী প্লেব্যাক সেশনের সময় বিভিন্ন ফলাফলও তৈরি করতে পারে। উদাহরণস্বরূপ, সনাক্ত করা ট্র্যাকেবলের সংখ্যা, তাদের সনাক্তকরণের সুনির্দিষ্ট সময় এবং সময়ের সাথে সাথে তাদের ভঙ্গি প্লেব্যাকের সময় ভিন্ন হতে পারে।

ক্লাউড অ্যাঙ্করগুলির সাথে সামঞ্জস্যপূর্ণ

আপনি একটি সেশন রেকর্ডিং বা প্লেব্যাক করার সময় ক্লাউড অ্যাঙ্কর হোস্ট এবং সমাধান করতে পারেন।

রেকর্ডিং

একটি ARCore সেশন রেকর্ডিং শুরু করুন, বন্ধ করুন এবং স্থিতি পরীক্ষা করুন।

একটি ARCore সেশন রেকর্ড করুন

একটি সম্পূর্ণ ARCore সেশন রেকর্ড করতে, Session.StartRecording() কল করুন। রেকর্ডিং ইতিমধ্যেই চলমান থাকলে এই পদ্ধতিটি ব্যর্থ হবে। সেশন পজ করা হলেও রেকর্ডিং চলতে পারে। যদি এটি ঘটে, ARCore ক্যামেরা ফিডটিকে একটি কালো স্ক্রীন হিসাবে রেকর্ড করার সময় সেন্সর ডেটা ক্যাপচার করতে থাকবে।

ARCoreRecordingConfig config = new ARCoreRecordingConfig();
config.Mp4DatasetFilepath = "path/to/file.mp4";

Session.StartRecording(config);

একটি রেকর্ডিং বন্ধ করুন

রেকর্ডিং বন্ধ করতে, Session.StopRecording() কল করুন।

Session.StopRecording();

রেকর্ডিং অবস্থা চেক করুন

বর্তমান RecordingStatus স্ট্যাটাস নির্ধারণ করতে ARRecordingManager.RecordingStatus যেকোনো সময় ব্যবহার করা যেতে পারে।

Debug.Log("Current Recording Status: " + Session.RecordingStatus);

প্লেব্যাক

আগে রেকর্ড করা AR সেশন প্লে ব্যাক করুন। রিয়েল টাইমে সেশন প্লে ব্যাক হয় এবং সেশন প্লেব্যাক বা গতি সামঞ্জস্য করা যায় না।

পূর্বে রেকর্ড করা একটি সেশন প্লে ব্যাক করুন

পূর্বে রেকর্ড করা সেশন প্লে ব্যাক করতে, Session.SetPlaybackDataset() কল করুন এবং আপনি যে ডেটাসেট ব্যাক করতে চান তার জন্য একটি ফাইল পাথ প্রদান করুন। এই পদ্ধতিটি ব্যবহার করার জন্য আপনাকে অবশ্যই সেশনটি বিরতি দিতে হবে। পরিবর্তনটি কার্যকর হওয়ার জন্য সেশনটি পুনরায় শুরু করুন৷

একবার প্লেব্যাক শুরু হয়ে গেলে, ARCoreSession নিষ্ক্রিয় করে সেশনটি বিরতি দিলে তা সমস্ত ক্যামেরা ইমেজ ফ্রেম এবং ডেটাসেটে রেকর্ড করা সেন্সর ডেটার প্রক্রিয়াকরণ স্থগিত করবে। ক্যামেরা ইমেজ ফ্রেম এবং সেন্সর ফ্রেম ডেটা যা এইভাবে বাতিল করা হয়, সেশন পুনরায় চালু হলে পুনরায় প্রক্রিয়া করা হবে না ARCoreSession পুনরায় সক্ষম করে৷ সেশনের জন্য AR ট্র্যাকিং সাধারণত প্রক্রিয়াকৃত ডেটার ফাঁকের কারণে ক্ষতিগ্রস্ত হবে।

// Pause the current session when providing the path.
session.enabled = false;

// In the next frame, provide a filepath for the dataset you wish to play back.
session.SetPlaybackDataset("path/to/file.mp4");

// In the frame after that, resume the session.
session.enabled = true;

শুরু থেকে প্লেব্যাক পুনরায় আরম্ভ করুন

ডেটাসেটের শুরু থেকে একটি প্লেব্যাক পুনরায় চালু করতে, সেশনটি বিরতি দিন এবং Session.SetPlaybackDataset() কল করুন।

// Pause the current session when re-setting the path.
session.enabled = false;

// In the next frame, specify the same dataset.
session.SetPlaybackDataset(filepath); // filepath is the same path you used before

// In the frame after that, resume playback from the beginning of the dataset.
session.enabled = true;

একটি ভিন্ন সেশন প্লে ব্যাক

একটি ভিন্ন ডেটাসেট প্লে ব্যাক করতে, Session.SetPlaybackDataset() কল করুন এবং সেশন পুনরায় শুরু করার আগে একটি নতুন ডেটাসেট নির্দিষ্ট করুন৷

// Pause the current session when re-setting the path.
session.enabled = false;

// In the next frame, specify a new dataset.
session.SetPlaybackDataset(newFilepath); // newFilepath is a different path than the one you used before

// In the frame after that, resume playback from the beginning of the new dataset.
session.enabled = true;

প্লেব্যাক স্থিতি পরীক্ষা করুন

ARPlaybackManager.PlaybackStatus বর্তমান প্লেব্যাক স্থিতি নির্ধারণ করতে যেকোনো সময় ব্যবহার করা যেতে পারে।

Debug.Log("Current Playback Status: " + session.PlaybackStatus);

এরপর কি