Android - 字幕管理器 class

Android - CaptioningManager class

在我的应用程序中使用的 CastCompanionLibrary 中,有一部分代码如下所示:

CaptioningManager captioningManager = (CaptioningManager) mContext.getSystemService(Context.CAPTIONING_SERVICE);
return captioningManager.isEnabled();

CaptioningManager class 的 documentation 非常简短,我不知道为什么方法 isEnabled() returns 不同的值(truefalse) 在各种设备上。

有谁知道,是什么决定了返回值,或者我该如何更改这个值?

我们在 source code 中有下一条语句:

/**
 * @return the user's preferred captioning enabled state
 */
public final boolean isEnabled() {
    return Secure.getInt(
            mContentResolver, Secure.ACCESSIBILITY_CAPTIONING_ENABLED, DEFAULT_ENABLED) == 1;
}

因此,该值取决于用户的辅助功能设置。我不确定,但看起来是不是默认显示字幕的设置。

如果用户在系统级别启用了字幕(设置 -> 辅助功能 -> 字幕),则 returns 为真,否则为假。

CCL,对于在框架中确实具有该设置的 android 版本,尊重该设置并将其用于样式轨道。对于 Android 的早期版本,它提供了一个提供相同选项集的首选项页面。