ক্যামেরা কনফিগার করা হচ্ছে

CameraConfig অন্তর্নিহিত ক্যামেরা সেন্সরের বৈশিষ্ট্য বর্ণনা করে, যার মধ্যে রয়েছে:

  • ক্যামেরা আইডি
  • উপলব্ধ হলে, একটি গভীরতা সেন্সর ব্যবহার করা হবে কিনা
  • ক্যামেরা যে দিকে মুখ করছে:
    • সামনের দিকে (সেলফি)
    • পিছনমুখী (বিশ্ব)
  • FPS (ফ্রেম প্রতি সেকেন্ড) পরিসর
  • CPU ছবির মাত্রা
  • GPU টেক্সচার মাত্রা
  • উপস্থিত থাকলে ডিভাইসটির স্টেরিও মাল্টি ক্যামেরা ব্যবহার করা হবে কিনা

একটি নতুন ARCore সেশন তৈরি করার সময়, ARCore ক্যামেরা কনফিগার সেট করতে setCameraConfig ব্যবহার করে যা getSupportedCameraConfigs(CameraConfigFilter) দ্বারা প্রত্যাবর্তিত উপলব্ধ কনফিগারগুলির তালিকার সাথে সেরা মেলে। আপনার অ্যাপ আপনার অ্যাপের প্রয়োজনের উপর ভিত্তি করে ফিল্টার করে রানটাইমে প্রদত্ত ডিভাইসের জন্য উপলব্ধ ক্যামেরা কনফিগারগুলিকে সংকুচিত করতে CameraConfigFilter ব্যবহার করতে পারে।

ফিল্টারিংয়ের জন্য সাধারণ ব্যবহারের ক্ষেত্রে অন্তর্ভুক্ত:

  • ক্যামেরা ক্যাপচার ফ্রেম রেট 30 fps এ সীমিত করা । 60 fps সমর্থনকারী ডিভাইসগুলিতে, ARCore সেই ফ্রেম রেট সমর্থন করে এমন ক্যামেরা কনফিগারেশনগুলিকে অগ্রাধিকার দেবে৷ 60 fps সমর্থন করে এমন সমস্ত ক্যামেরা কনফিগার ফিল্টার করতে, TargetFps.TARGET_FPS_30 ব্যবহার করে setTargetFps সহ একটি ফিল্টার প্রয়োগ করুন।

    জাভা

    // Return only camera configs that target 30 FPS camera capture frame rate.
    filter.setTargetFps(EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30));

    কোটলিন

    // Return only camera configs that target 30 FPS camera capture frame rate.
    filter.targetFps = EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30)

  • ARCore কে ডেপথ সেন্সর ব্যবহার করা থেকে আটকান । সমর্থিত ডেপথ সেন্সর আছে এমন ডিভাইসগুলিতে, ARCore ক্যামেরা কনফিগারেশনগুলিকে অগ্রাধিকার দেয় যা গভীরতা সেন্সর ব্যবহার করে। ডেপথ সেন্সর ব্যবহার করে এমন সমস্ত ক্যামেরা কনফিগার ফিল্টার করতে, DepthSensorUsage.DO_NOT_USE ব্যবহার করে setDepthSensorUsage ফিল্টারটি প্রয়োগ করুন।

    জাভা

    // Return only camera configs that will not use the depth sensor.
    filter.setDepthSensorUsage(EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE));

    কোটলিন

    // Return only camera configs that will not use the depth sensor.
    filter.depthSensorUsage = EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE)

  • একটি বিকল্প GPU টেক্সচার রেজোলিউশন নির্বাচন করা হচ্ছেসমর্থিত ডিভাইসগুলিতে , ARCore অতিরিক্ত GPU টেক্সচার রেজোলিউশন প্রদান করতে পারে। একটি কম রেজোলিউশন GPU টেক্সচার নির্বাচন করা GPU লোড কমিয়ে এবং মেমরি ব্যান্ডউইথের প্রয়োজনীয়তা কমিয়ে অ্যাপের কার্যক্ষমতা উন্নত করতে সাহায্য করতে পারে, যদিও সব ক্ষেত্রে কর্মক্ষমতা উন্নত করার নিশ্চয়তা দেওয়া হয় না।

ক্যামেরা কনফিগার ফিল্টার ব্যবহার করে

ক্যামেরা কনফিগার ফিল্টার করতে আপনার অ্যাপ সক্ষম করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

জাভা

// Create a camera config filter for the session.
CameraConfigFilter filter = new CameraConfigFilter(session);

// Return only camera configs that target 30 fps camera capture frame rate.
filter.setTargetFps(EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30));

// Return only camera configs that will not use the depth sensor.
filter.setDepthSensorUsage(EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE));

// Get list of configs that match filter settings.
// In this case, this list is guaranteed to contain at least one element,
// because both TargetFps.TARGET_FPS_30 and DepthSensorUsage.DO_NOT_USE
// are supported on all ARCore supported devices.
List<CameraConfig> cameraConfigList = session.getSupportedCameraConfigs(filter);

// Use element 0 from the list of returned camera configs. This is because
// it contains the camera config that best matches the specified filter
// settings.
session.setCameraConfig(cameraConfigList.get(0));

কোটলিন

// Create a camera config filter for the session.
val filter = CameraConfigFilter(session)

// Return only camera configs that target 30 fps camera capture frame rate.
filter.targetFps = EnumSet.of(CameraConfig.TargetFps.TARGET_FPS_30)

// Return only camera configs that will not use the depth sensor.
filter.depthSensorUsage = EnumSet.of(CameraConfig.DepthSensorUsage.DO_NOT_USE)

// Get list of configs that match filter settings.
// In this case, this list is guaranteed to contain at least one element,
// because both TargetFps.TARGET_FPS_30 and DepthSensorUsage.DO_NOT_USE
// are supported on all ARCore supported devices.
val cameraConfigList = session.getSupportedCameraConfigs(filter)

// Use element 0 from the list of returned camera configs. This is because
// it contains the camera config that best matches the specified filter
// settings.
session.cameraConfig = cameraConfigList[0]

ফোকাস মোড

এছাড়াও আপনি সেশন কনফিগারেশনে ফোকাস মোড সেট করতে পারেন। স্থির ফোকাস সাধারণত ট্র্যাকিংয়ের জন্য ভাল (এবং বেশিরভাগ ডিভাইসে এটি ARCore ডিফল্ট)। রেকর্ডিং, ফটোগ্রাফি, ভিডিওগ্রাফির জন্য স্বয়ংক্রিয় ফোকাস প্রয়োজন এবং যখন কাছাকাছি বস্তুগুলি ফোকাসে থাকা প্রয়োজন।

বিস্তারিত জানার জন্য Config.FocusMode দেখুন।