প্রদর্শন সেটিংস সামঞ্জস্য করুন

অ্যান্ড্রয়েডে এমন API গুলি রয়েছে যা অ্যাপগুলিকে সমর্থিত হার্ডওয়্যারে প্রদর্শন সেটিংস সামঞ্জস্য করার অনুমতি দেয়। অ্যান্ড্রয়েড টিভি ওএস-এ, অ্যাপগুলি দেখার জন্য আদর্শ দেখার অভিজ্ঞতার জন্য ফ্রেমরেট এবং রঙের প্রোফাইলের সাথে মিল রেখে, সম্ভাব্য সর্বোত্তম বিন্যাসে সামগ্রী প্রদর্শন করা নিশ্চিত করতে এর সুবিধা নিতে পারে।

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

যখন একটি ভিডিওর ফ্রেমরেট ডিসপ্লের রিফ্রেশ হারের সাথে মেলে না, ব্যবহারকারীরা ফ্রেম রেট রূপান্তর থেকে অপ্রীতিকর মোশন জুডার আর্টিফ্যাক্টগুলি অনুভব করতে পারে৷ এটি বিশেষত ধীর প্যানিং শটগুলির সময় দৃশ্যমান। এই কারণে, বিষয়বস্তুর ফ্রেম রেট সম্পর্কে ফ্রেমওয়ার্ককে অবহিত করতে এবং ভিডিও বিষয়বস্তু একটি নন-সিমলেস ফ্রেম রেট স্যুইচের জন্য যোগ্য কিনা তা সংকেত দিতে SurfaceControl.Transaction.setFrameRate() API ব্যবহার করা গুরুত্বপূর্ণ৷

আরও তথ্যের জন্য, ফ্রেম রেট নির্দেশিকা পড়ুন।

পছন্দের ছবি প্রোফাইল মেলে

Android 16-এ MediaQuality API ডেভেলপারদের ছবি প্রোফাইলের উপর নিয়ন্ত্রণ নিতে দেয়।

কিছু উদাহরণের মধ্যে রয়েছে:

  • মুভি এবং টিভি সিরিজের জন্য যেগুলি একটি বিস্তৃত গতিশীল পরিসরের সাথে আয়ত্ত করা হয়, বিকাশকারীরা ফিল্মমেকার মোডকে অনুরোধ করতে পারে যাতে নির্মাতা এটি দেখতে চেয়েছিলেন সেভাবে বিষয়বস্তু সঠিকভাবে প্রদর্শন করতে। বৃহত্তর রঙ নির্ভুলতা সহ একটি সিনেমা প্রোফাইল উজ্জ্বলতা বৃদ্ধির পক্ষে ছায়ায় সূক্ষ্ম বিবরণ তুলে ধরে।
  • লাইভ স্পোর্টিং ইভেন্টগুলি, যা প্রায়শই একটি সংকীর্ণ গতিশীল পরিসরে আয়ত্ত করা হয় এবং দিনের আলোতে দেখা হয়, এমন প্রোফাইল থেকে উপকৃত হতে পারে যা রঙের নির্ভুলতার চেয়ে উজ্জ্বলতাকে অগ্রাধিকার দেয়।
  • গেম ডেভেলপাররা মিনিমাম ইমেজ প্রসেসিং সহ একটি কম লেটেন্সি প্রোফাইলের অনুরোধ করতে পারে যাতে প্লেয়াররা তাদের ডিসপ্লে থেকে সেরা পারফরম্যান্স পেতে পারে।

একটি সিস্টেম ছবি প্রোফাইল নির্বাচন করা হচ্ছে

একটি ছবির প্রোফাইল নির্বাচন করার আগে, ডিভাইসটি এটি সমর্থন করে কিনা তা যাচাই করা গুরুত্বপূর্ণ৷

নিম্নলিখিত স্নিপেটটি দেখায় কিভাবে getAvailablePictureProfiles() ব্যবহার করতে হয় সমস্ত সমর্থিত ছবি প্রোফাইল অনুসন্ধান করতে এবং একটি স্পোর্টস প্রোফাইল প্রয়োগ করতে:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {
    val mediaQualityManager: MediaQualityManager =
        context.getSystemService(MediaQualityManager::class.java)
    val profiles = mediaQualityManager.getAvailablePictureProfiles(null)
    for (profile in profiles) {
        // If we have a system sports profile, apply it to our media codec
        if (profile.profileType == PictureProfile.TYPE_SYSTEM
            && profile.name == NAME_SPORTS
        ) {
            val bundle = Bundle().apply { 
                putParcelable(MediaFormat.KEY_PICTURE_PROFILE_INSTANCE, profile)
            }
            mediaCodec.setParameters(bundle)
        }
    }
}

নামের দ্বারা একটি নির্দিষ্ট প্রোফাইল পেতে, getPictureProfile() ব্যবহার করুন :

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {
    val profile = mediaQualityManager.getPictureProfile(
        PictureProfile.TYPE_SYSTEM, NAME_SPORTS, null)
}

একটি প্রোফাইল উপলব্ধ কিনা তা জিজ্ঞাসা করার প্রয়োজন না হলে, MediaFormat.KEY_PICTURE_PROFILE_INSTANCE ব্যবহার করে প্রোফাইলগুলি সরাসরি তাদের ID দ্বারা একটি MediaCodec-কে প্রদান করা যেতে পারে।

যদিও সমর্থিত প্রোফাইলগুলি ডিভাইস অনুসারে আলাদা হতে পারে, আপনি নিম্নলিখিত পরিচিত সিস্টেম প্রোফাইল আইডিগুলির সাথে মিল বিবেচনা করতে পারেন:

const val NAME_STANDARD: String = "standard"
const val NAME_VIVID: String = "vivid"
const val NAME_SPORTS: String = "sports"
const val NAME_GAME: String = "game"
const val NAME_MOVIE: String = "movie"
const val NAME_ENERGY_SAVING: String = "energy_saving"
const val NAME_USER: String = "user"