Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
firemaple
Level 7

Scene Graph Video Player - notificationInterval Not Working

Hi All,

While watching a video I'd like to display the timecode (hh:mm:ss:ff) in a label on the video player while the video is playing. In order to do this I'm observing the "position" field of the scene graph video player (see documentation here). In my code, no matter what I set the "notificationInterval" value to, it only executes my observer function every .5 seconds. 

I downloaded the Simple_Grid_and_Video.zip reference code (here) and added the following lines of code to demonstrate the problem

' ********** Copyright 2016 Roku Corp.  All Rights Reserved. ********** 
 ' inits grid screen
 ' creates all children
 ' sets all observers 
Function Init()
    ' listen on port 8089
    ? "[HomeScene] Init"

    'main grid screen node
    m.GridScreen = m.top.findNode("GridScreen")
    'video player node
    m.videoPlayer = m.top.findNode("videoPlayer")
    
    'MY ADDED CODE----------------------------------------------
    m.videoPlayer.ObserveField("position", "positionChanged")
    m.videoPlayer.notificationInterval = 0.1
    '----------------------------------------------------------- 

    'added handler on item selecting event in grid screen
    m.top.observeField("rowItemSelected", "OnRowItemSelected")
    
    ' loading indicator starts at initializatio of channel
    m.loadingIndicator = m.top.findNode("loadingIndicator")
End Function 

'MY ADDED CODE----------------------------------------------
Function positionChanged()
    ? m.videoPlayer.position
End Function
'-----------------------------------------------------------



Can anyone offer any insight? I'm sure I'm overlooking something.

Many Thanks in Advance!
0 Kudos
2 Replies
belltown
Level 7

Re: Scene Graph Video Player - notificationInterval Not Working

It looks like the resolution of the notificationInterval and of the position is only about 0.5 secs. If that's the case, you won't be able to set notificationInterval to less than 0.5 secs; even if you could the position would only be accurate to within 0.5 secs. You can set it to something larger, but still with about 0.5 secs of resolution.

I don't think it was intended to be used to display a timecode label to within a fraction of a second. Position notifications have typically been used to trigger saving bookmark information, which doesn't need that level of accuracy.

You can use a Timer node to trigger more frequent updates, doing "fake" timecode updates that you sync up with the position every half second or so.
https://github.com/belltown/
0 Kudos
firemaple
Level 7

Re: Scene Graph Video Player - notificationInterval Not Working

Thanks Belltown! I was hoping that there was a way to get the position resolution to be smaller but your idea about using a timer node and syncing it up with the position every .5 seconds is brilliant. I'm going to give that a try. I appreciate the help!
0 Kudos