Отключить удаленные кнопки (Trick Play) в видео-узле приложения потокового вещания Roku?
У меня проблемы с отключением кнопок пульта дистанционного управления, таких как "быстрая перемотка вперед", "пауза" и т. Д. В приложении Roku. Это очень простое приложение, которое имеет только одну главную сцену, которая создает только видео узел, который воспроизводит прямой эфир нашего телевизионного канала. Roku согласился с тем, что они требуют от вас отключить кнопки трюка, такие как "перемотка вперед" во время прямой трансляции. В документации сказано, что это должно быть обработано с помощью функции "onKeyEvent()". Если событие обрабатывается, оно "не должно" всплывать и обрабатываться микропрограммой. Я могу утешить журнал, чтобы доказать, что функция запускается, но когда я переключаю "handled" в true и возвращаю его, это, похоже, не имеет никакого эффекта. все кнопки продолжают срабатывать и делают свое дело.
Я использовал предоставленный им пример и даже упростил его до простого превращения "обработанного" в истинное, безоговорочно. (между прочим) Я попытался переместить его из файла brs видео сцены в main (где все инициализировано) и переместить его, но я в тупике. Он срабатывает при нажатии кнопок, но возвращение true, похоже, ничего не дает.
Приложение только запускается, создает видео узел и начинает воспроизведение потока. Кроме запуска события Google Analytics, он больше ничего не делает.
Пример Року: ( https://sdkdocs.roku.com/display/sdkdoc/Handling+Application+Events)
function onKeyEvent(key as String, press as Boolean) as Boolean
handled = false
if press then
if (key = "back") then
handled = false
else
if (m.warninglabel.visible = false)
m.warninglabel.visible="true"
else
if (key = "OK") then
m.warninglabel.visible="false"
end if
end if
handled = true
end if
end if
return handled
end function
Чего-то не хватает по этому поводу? Если кто-нибудь знает, как отключить эти кнопки, я был бы более чем благодарен.
4 ответа
Интересно, почему вы не использовали для этой цели поля "enableTrickPlay" и "enableUI" узла Video. Пожалуйста, проверьте: https://sdkdocs.roku.com/display/sdkdoc/Video разделе "Поля пользовательского интерфейса"
Вам не нужно делать это в функции onKeyEvent, как вы упомянули в своем вопросе.
Просто установите значение поля "Live" в true в метаданных контента для видео узла, как указано в документации https://sdkdocs.roku.com/display/sdkdoc/Content+Meta-Data
Если будет обрабатывать элементы управления видео для вашего живого контента.
Вы можете найти пример кода проигрывателя видео в https://github.com/rokudev/simple-videoplayer-channel
Вы можете попробовать установить поля enableUI и enableTrickPlay на видео узле. Кроме того, если видео узел имеет фокус, он будет автоматически обрабатывать определенные нажатия клавиш. Если он не сфокусирован, он не будет обрабатывать эти нажатия клавиш автоматически. Нажатия клавиш, которые не обрабатываются, будут выходить из видеопроигрывателя и подниматься по цепочке фокусировки. Какова цепочка фокусировки, зависит от вашего кода. Но это должно выглядеть примерно так сверху донизу.
main.brs MainScene Все остальные ваши компоненты
Вы можете настроить пользовательский компонент, который расширяет компонент Roku Video и переопределяет его функцию onKeyEvent, как показано ниже
function onKeyEvent(key as String, press as Boolean) as Boolean
if (press)
if (key = "replay" OR key = "fastforward" OR key = "rewind")
return true
end if
end if
return false
end function