Я занимаюсь разработкой приложения для канала Roku.У меня возникают проблемы с применением стилей к субтитрам для узла Scene Graph 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
не принадлежит Video
напрямую, но я не могу найти никаких примеров в официальной документации Roku SDK или где-либо еще (включая этот сайт).
Второе предположение: возможно, ключи в ассоциативном массиве captionStyle
указывать не нужнокак строковое значение (этот литеральный стиль ассоциативного массива также является новым, но плагин BrightScript Eclipse не жалуется, как и сам Roku во время реального выполнения.) То есть вместо:
captionStyle = {
"Background Color": "Yellow"
}
Возможно, запись должна быть установлена следующим образом:
captionStyle = {
backgroundColor: "Yellow"
}
Но она также не работает.Читая документацию Roku SDK для свойства captionStyle
(https://sdkdocs.roku.com/display/sdkdoc/Video), я ожидаю, что оно будет указано в виде строки (включая пробелы).
Есть идеи? Спасибо.