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

Android TV-তে এমন সেটিংস আছে যা ব্যবহারকারীকে মিডিয়া অ্যাপ জুড়ে একই ধরনের অভিজ্ঞতা তৈরি করতে কেন্দ্রীয়ভাবে ক্যাপশন সংক্রান্ত পছন্দ সেট করতে দেয়।

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

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

সেটিংস > অ্যাক্সেসিবিলিটি > ক্যাপশন বিকল্পে গিয়ে, বেছে নেওয়া ক্যাপশন স্টাইলের প্রিভিউ সহ ক্যাপশন সংক্রান্ত বিকল্প খুঁজে নিন:

Android TV-তে ক্যাপশন সেটিংস মেনু।
ছবি ১. ক্যাপশন সেটিংস পৃষ্ঠা।

CaptioningManager পান

কোনও অ্যাক্টিভিটি থেকে, 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();