通过通道应用程序中的代码在Roku Scene Graph Video节点上设置标题样式

时间:2018-06-08 14:02:14

标签: roku brightscript

我正在开发一个Roku频道应用。我在将样式应用于场景图Video节点的字幕时遇到了问题。

如果我通过系统的“设置”屏幕全局设置字幕样式,则字幕会在我的全屏,聚焦的场景图Video节点上显示风格(背景颜色,文本颜色,文本边缘效果,它们都可以作为但是,我无法通过我的频道应用程序上的代码复制此内容。

据我所知,Scene Graph Video节点的captionStyle属性仅在固件版本8.0之后可用。我的Roku设备有这么精确的版本,我测试过的第二个更新的Roku设备也是如此。

这是我的BrightScript代码(我添加了固件版本检查,以便能够判断if语句的正分支是否执行):

m.video.globalCaptionMode = "On"
m.video.subtitleTrack = params.subtitlesUrl

print "Caption Style before our customizations: "; FormatJson(m.video.captionStyle) ' Prints null

firmwareVersion = GetFirmwareVersion()

if firmwareVersion >= 8 then

    captionStyle = {
        "Background Color": "Yellow"
    }

    m.video.captionStyle = captionStyle

    print "Subtitles Style set on Video node: "; FormatJson(m.video.captionStyle) ' Prints the assoc array as expected

else        
    print "Caption Style not supported on firmware version: "; firmwareVersion
end if

请注意,在应用自定义项之前,包含print的第一个m.video.captionStyle语句会打印null。我希望它至少显示当前的全局系统设置(如果该属性用于读取而不仅仅是写入,就像某些属性一样。)我的猜测是captionStyle属性不属于{直接{1}}节点,但我无法在官方Roku SDK文档或其他地方找到任何示例(包括此站点。)

第二个猜测是,Video关联数组中的键可能不应指定为字符串值(此关联数组文字样式也是新的,但BrightScript Eclipse插件不会抱怨,也不会在实际执行期间Roku本身。)也就是说,而不是:

captionStyle

该条目可能必须设置为:

captionStyle = {
    "Background Color": "Yellow"
}

但它也不起作用。通过阅读captionStyle = { backgroundColor: "Yellow" } 属性(https://sdkdocs.roku.com/display/sdkdoc/Video)的Roku SDK文档,我希望它实际上被指定为字符串(包括空格)。

有什么想法吗?感谢。

0 个答案:

没有答案