সিস্টেম ক্যাপশন সেটিংস গ্রহণ করুন

অ্যান্ড্রয়েড টিভি এমন সেটিংস প্রদান করে, যা ব্যবহারকারীকে বিভিন্ন মিডিয়া অ্যাপে একটি সমন্বিত অভিজ্ঞতা তৈরির জন্য কেন্দ্রীয়ভাবে ক্যাপশন সংক্রান্ত পছন্দসমূহ নির্ধারণ করতে দেয়।

এই সেটিংস ব্যবহারকারীদের ক্যাপশন চালু করতে, পছন্দের ভাষা নির্বাচন করতে এবং তাদের প্রয়োজন অনুযায়ী একটি কাস্টম ক্যাপশন স্টাইল নির্ধারণ করতে দেয়। ব্যবহারকারীরা আরও নির্দিষ্ট করতে পারেন যে তারা প্রায় তৃতীয় শ্রেণীর পাঠ্য স্তরের সরলীকৃত ক্যাপশন পছন্দ করেন কিনা, যা "ইজি রিডার" নামে পরিচিত।

এই নির্দেশিকাটি দেখায় কীভাবে আপনার অ্যাপের ক্যাপশনগুলিতে সিস্টেম-প্রদত্ত ক্যাপশন সেটিংস পেতে এবং প্রয়োগ করতে হয়।

সেটিংস > অ্যাক্সেসিবিলিটি > ক্যাপশন- এর অধীনে ক্যাপশন বিকল্পগুলি খুঁজুন, যার মধ্যে নির্বাচিত ক্যাপশন শৈলীর একটি প্রিভিউও রয়েছে।

অ্যান্ড্রয়েড টিভিতে ক্যাপশন সেটিংস মেনু।
চিত্র ১. ক্যাপশন সেটিংস পাতা।

ক্যাপশনিংম্যানেজার পান

একটি অ্যাক্টিভিটি থেকে, Context এর CaptioningManager সার্ভিসটি নিন:

CaptioningManager captioningManager = (CaptioningManager) context.getSystemService(Context.CAPTIONING_SERVICE);

ক্যাপশন সেটিংস পরিবর্তন পরিচালনা করুন

CaptioningChangeListener ক্লাসটি ইমপ্লিমেন্ট করার মাধ্যমে ক্যাপশন সেটিংসের পরিবর্তনগুলো পরিচালনা করুন:

if (captioningManager != null) {
  // Define a class to store the CaptionStyle details.
  CurrentCaptionStyle currentCaptionStyle = new CurrentCaptionStyle();
  // Define the listeners.
  captioningManager.addCaptioningChangeListener(new CaptioningChangeListener() {

    @Override
    public void onEnabledChanged(boolean enabled) {
      super.onEnabledChanged(enabled);
      Log.d(TAG, "onEnabledChanged");
      currentCaptionStyle.isEnabled = enabled;
    }

    @Override
    public void onLocaleChanged(@Nullable Locale locale) {
      super.onLocaleChanged(locale);
      Log.d(TAG, "onLocaleChanged");
      currentCaptionStyle.locale = locale;
      if (locale == null) {
        currentCaptionStyle.isEasyReaderEnabled = false;
      } else {
        currentCaptionStyle.isEasyReaderEnabled = locale.getVariant().contains("simple");
      }
    }

    @Override
    public void onFontScaleChanged(float fontScale) {
      super.onFontScaleChanged(fontScale);
      Log.d(TAG, "onFontScaleChanged");
      currentCaptionStyle.fontScale = fontScale;
    }

    @Override
    public void onUserStyleChanged(@NonNull CaptionStyle userStyle) {
      super.onUserStyleChanged(userStyle);
      Log.d(TAG, "onUserStyleChanged");
      currentCaptionStyle.hasBackgroundColor = userStyle.hasBackgroundColor();
      currentCaptionStyle.backgroundColor = userStyle.backgroundColor;
      currentCaptionStyle.backgroundOpacity = userStyle.backgroundColor >>> 24;
      currentCaptionStyle.hasForegroundColor = userStyle.hasForegroundColor();
      currentCaptionStyle.foregroundColor = userStyle.foregroundColor;
      currentCaptionStyle.foregroundOpacity = userStyle.foregroundColor >>> 24;
      currentCaptionStyle.hasWindowColor = userStyle.hasWindowColor();
      currentCaptionStyle.windowColor = userStyle.windowColor;
      currentCaptionStyle.windowOpacity = userStyle.windowColor >>> 24;
      currentCaptionStyle.hasEdgeColor = userStyle.hasEdgeColor();
      currentCaptionStyle.edgeColor = userStyle.edgeColor;
      currentCaptionStyle.hasEdgeType = userStyle.hasEdgeType();
      currentCaptionStyle.edgeType = userStyle.edgeType;
      currentCaptionStyle.typeFace = userStyle.getTypeface();
    }

  });
}

বিকল্পভাবে, সরাসরি getUserStyle মেথডটি কল করুন:

CaptionStyle systemCaptionStyle = captioningManager.getUserStyle();