Почему кнопка быстрой перемотки вперед/назад в первый раз работает слишком медленно

Я работаю над видеоплеером, используя видео узел. Моя проблема заключается в том, что когда я впервые нажимаю кнопку быстрой перемотки вперед/назад во время воспроизведения/буферизации видео, кнопка не работает. После нажатия 4-6 раз кнопка быстрой перемотки вперед или назад работает, после этого она работает правильно, но в первый раз мне приходится нажимать кнопку 4-6 раз, после чего работает. Мой код...

function setVideo()
    m.InnerVideo = m.top.createChild("InnerVideo")
    inner = createObject("RoSGNode", "ContentNode")
    inner.url = "url..."    
    inner.streamformat = "hls"

    m.innerVideo.visible = true    
    m.innerVideo.content = inner
    m.innerVideo.control = "play"
end function 

Код обработчика события...

function onKeyEvent(key as String, press as Boolean) as Boolean
    handled = false

    if press
        if key = "fastforward"
            print "fastforward" 

            handled = true
        end if
    end if

    return handled
end function

Пожалуйста, предложите мне, что должно быть проблемой? Связана ли проблема с форматом видеофайла, кодировкой/декодированием или чем-то еще?


person Katty    schedule 10.06.2016    source источник
comment
Пожалуйста, предоставьте более подробную информацию, не ясно, что именно не работает.   -  person Eugene Smoliy    schedule 13.06.2016
comment
@ Евгений Смолий Я печатаю простое сообщение, например привет, когда кто-то нажимает кнопку быстрой перемотки, но она не работает. После нажатия 4-6 раз это печатает сообщение привет   -  person Katty    schedule 14.06.2016
comment
В таком случае, где находится функция onKeyEvent? Убедитесь, что он находится в узле Video, потому что узел Video обрабатывает это событие и не выдает его.   -  person Eugene Smoliy    schedule 15.06.2016


Ответы (2)


В функции onKeyEvent вы печатаете указанное выше значение handled = false "?key" и проверяете, какое значение печатается здесь. а также проверьте "?press", если правда, то нажата клавиша и ложь, то не нажата. Вот лучший способ узнать, что происходит в вашей функции onKeyEvent. Как ниже

function onKeyEvent(key as String, press as Boolean) as Boolean

   ? "Key Event is about to execute - key = "key " press = " press 

end function
person Nikunj Chaklasiya    schedule 03.12.2019

Если отпечатки из onKeyEvent печатаются после 5-го или 6-го раза, возможно, у Вас проблемы с фокусом. Возможно, Ваш игрок сначала не находится в фокусе, а затем в какой-то момент Вы назначаете ему фокус. Попробуйте добавить: m.InnerVideo.setFocus(true) в свою функцию setVideo(). Если это не работает, проверьте, есть ли что-то еще, что отвлекает внимание от m.InnerVideo после выполнения функции setVideo().

person U.Mitic    schedule 04.12.2019