ভার্চুয়াল বা অগমেন্টেড রিয়েলিটি ওয়েব অ্যাপে কাজ করা ডেভেলপাররা নিঃসন্দেহে DeviceOrientationEvent
সাথে পরিচিত। অপ্রচলিতদের জন্য, “ দিস এন্ড আপ: ইউজিং ডিভাইস ওরিয়েন্টেশন ” একটি deviceorientation
ইভেন্ট শ্রোতা কীভাবে একটি ডিভাইস বাঁকানো এবং ঘুরতে পারে তার একটি দুর্দান্ত ওভারভিউ প্রদান করে।
ক্রোমের পূর্ববর্তী সংস্করণগুলিতে, DeviceOrientationEvent
অন্তর্ভুক্ত alpha
, beta
এবং gamma
মানগুলিকে পৃথিবীর স্থানাঙ্ক ফ্রেমের ক্ষেত্রে absolute
ডিগ্রী হিসাবে প্রদান করা হয়েছিল৷ পরম ডিগ্রী প্রদানের জন্য পৃথিবীর চৌম্বক ক্ষেত্র সনাক্ত করতে একটি ডিভাইসের ম্যাগনেটোমিটার সেন্সর ব্যবহার করা প্রয়োজন এবং এটি কাছাকাছি চৌম্বক ক্ষেত্রের ওঠানামার জন্য সংবেদনশীল যা রিডিং বন্ধ করে দিতে পারে। বাস্তবে, এটি একটি ওয়েব অ্যাপকে একটি আশেপাশের চুম্বকের কারণে DeviceOrientationEvent
এর একটি গুচ্ছ নিবন্ধনের দিকে নিয়ে যেতে পারে, যদিও ডিভাইসটি নিজেই নড়ছে না। একটি ভার্চুয়াল রিয়েলিটি অ্যাপ্লিকেশনের জন্য যা শুধুমাত্র অভিযোজন পরিবর্তনগুলি ট্র্যাক করার বিষয়ে যত্নশীল, এই চৌম্বকীয় গোলমালটি খারাপ খবর।
কি পরিবর্তন হচ্ছে?
Chrome 50 দিয়ে শুরু করে, DeviceOrientationEvent
এ অন্তর্ভুক্ত ডিগ্রিগুলি ডিফল্টরূপে পৃথিবীর স্থানাঙ্ক ফ্রেমের ক্ষেত্রে আর পরম নয়৷ এর মানে হল যে ডিভাইসের অ্যাক্সিলোমিটার এবং জাইরোস্কোপের কিছু সংমিশ্রণ দ্বারা শনাক্ত করা হলেই DeviceOrientationEvent
শুধুমাত্র তখনই ট্রিগার করা উচিত যখন সেখানে প্রকৃত নড়াচড়া হয়। ম্যাগনেটোমিটার, এবং চৌম্বক ক্ষেত্রের ওঠানামার কারণে মিথ্যা রিডিং ছবির বাইরে।
কিন্তু আমার এখনও পরম ডিগ্রি দরকার!
আপনি যদি জাভাস্ক্রিপ্ট লিখছেন যার জন্য নিখুঁত ডিগ্রী ব্যবহার করতে হবে, সম্ভবত একটি বর্ধিত বাস্তবতা ওয়েব অ্যাপ্লিকেশনের অংশ হিসাবে যা সরাসরি ভৌত জগতের মানচিত্র করতে হবে, তবে আপনার ভাগ্যের বাইরে নয়। পূর্ববর্তী আচরণ, একটি ডিভাইসের ম্যাগনেটোমিটারের উপর নির্ভরশীল, একটি নতুন deviceorientationabsolute
ইভেন্টের মাধ্যমে উপলব্ধ। একটি বিকাশকারীর দৃষ্টিকোণ থেকে, এটি বিদ্যমান DeviceOrientationEvent
সাথে সাদৃশ্যপূর্ণ, গ্যারান্টি সহ যে absolute
সম্পত্তি true
সেট করা হবে৷
কি সমর্থিত তা সনাক্ত করা
ডেভেলপাররা যারা পরম ডিগ্রী পছন্দ করবে তারা নতুন DeviceOrientationAbsoluteEvent
ইভেন্ট সমর্থন করে এমন একটি ব্রাউজারে আছে কিনা তা নির্ধারণ করতে বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করতে পারেন:
if ('ondeviceorientationabsolute' in window) {
// We can listen for the new deviceorientationabsolute event.
} else if ('ondeviceorientation' in window) {
// We can still listen for deviceorientation events.
// The `absolute` property of the event tells us whether
// or not the degrees are absolute.
}
ক্রস ব্রাউজার সামঞ্জস্য
DeviceOrientationEvent
রিপোর্ট করা মানগুলি কখনই সামঞ্জস্যপূর্ণ ছিল না।
IOS-এ Safari এবং Firefox ডিগ্রীর জন্য আপেক্ষিক মান ব্যবহার করে, যা Chrome 50-এ প্রবর্তিত বাস্তবায়ন পরিবর্তনের সাথে মেলে। পরিবর্তনটি আইওএসকে মাথায় রেখে ওয়েব অ্যাপ্লিকেশনগুলির সাথে আরও সামঞ্জস্যের দিকে পরিচালিত করবে।
Firefox (iOS ব্যতীত অন্য প্ল্যাটফর্মে), Edge এবং Chrome সংস্করণ 50-এর পূর্বের DeviceOrientationEvent
জন্য পরম ডিগ্রী মান ব্যবহার করে যখন উপযুক্ত সেন্সর সহ ডিভাইসগুলিতে চালানো হয়।
এই লেখা পর্যন্ত, Chrome 50 হল প্রথম ব্রাউজার যা নতুন DeviceOrientationAbsoluteEvent
সমর্থন করে।
ডিভাইসমোশন ইভেন্টের সাথে উন্নত অভিযোজন ট্র্যাকিং
Boris Smus-এর কাছে DeviceOrientationEvent
ব্যবহার করার কিছু খারাপ দিক এবং DeviceMotionEvent
s ব্যবহার করে একটি বেসপোক সেন্সর ফিউশন কীভাবে প্রয়োগ করা যায় তার সাথে একটি চমত্কারভাবে বিস্তারিত নিবন্ধ রয়েছে। তারা অ্যাক্সিলোমিটার এবং জাইরোস্কোপে নিম্ন-স্তরের অ্যাক্সেস সরবরাহ করে এবং আপনার ব্যবহারকারীদের জন্য আরও সঠিক ভার্চুয়াল বাস্তবতার অভিজ্ঞতার দিকে নিয়ে যেতে পারে।