Отключить удаленные кнопки (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

Другие вопросы по тегам