Forum Discussion

KDOV's avatar
KDOV
Visitor
13 years ago

Problems with my Roku channel on LT (with Grid Screen)

Hi,
I'm working on building a channel... I have the development working and functioning well - tested on the Roku 2 XS. However, when I test it on a Roku LT - I run into problems when 'exiting' a video.. The problem is that the grid screen doesn't refresh properly (on exiting the video).
This problem only shows up when I test it on the Roku LT - not the Roku 2 XS.
Here is a link to the private channel: https://owner.roku.com/add/theDove
Here is the access code for the private channel: TD7Y4
I'd appreciate any feedback or thoughts on whether this is a coding problem - or whether I need to limit this channel to Roku 2 and up??!
Thanks
-Michael.

7 Replies

  • It's also an issue on the Roku 1, for what it's worth. The "fix" is to hide the grid screen prior to displaying the video screen. I usually put up an roPosterScreen as a facade, then close the grid, then show the video screen.
  • Thanks for your help on this...
    While the initial problem (of the grid not redrawing on vid exit/close) is resolved - I know have the problem that on my Roku XS - I get a green flash when I close the video. However, I do not have this problem on my Roku LT.
    What am I doing wrong??!
    screenFacade = CreateObject("roGridScreen")
    screenFacade.show()

    grid.Close()

    video.SetContent(videoclip)
    video.show()

    lastSavedPos = 0
    statusInterval = 10 'position must change by more than this number of seconds before saving

    while true
    vidmsg = wait(0, video.GetMessagePort())
    if type(vidmsg) = "roVideoScreenEvent" then
    print "showVideoScreen | vidmsg = "; vidmsg.GetMessage() " | index = "; vidmsg.GetIndex()
    if vidmsg.isScreenClosed()
    print "Screen closed"
    exit while
    elseif vidmsg.isRequestFailed()
    print "Video request failure: "; vidmsg.GetIndex(); " " vidmsg.GetData()
    elseif vidmsg.isStatusMessage()
    print "status message: "; vidmsg.GetMessage()
    elseif msg.isButtonPressed()
    print "Button pressed: "; vidmsg.GetIndex(); " " vidmsg.GetData()
    elseif vidmsg.isPlaybackPosition()
    print "playback position: "; vidmsg.GetIndex()
    else
    print "Unexpected event type: "; vidmsg.GetType()
    end if
    else
    print "Unexpected message class: "; type(vidmsg)
    end if
    end while
    screenFacade.close()


    As per theEndless's suggestion - I tried closing the Grid, after launching the Facade.... however - I can't work out how to restart the Grid, when the Video closes. I tried grid.Show(), but it just crashed out.
  • I don't know if this is what's causing the problem, but you're using a grid screen rather than a poster screen as the facade.

    --Mark
  • Thanks Mark... I switched to a Poster Screen as the facade - but still the same problem - the green flash - when exiting/closing the video.
    At the moment - I'm launching a facade, then the video... then closing the facade as the video exits....
    theEndless suggested closing the grid screen as well.... if I do this - how do I relaunch it when I exit the video? Does it have to be reinitialized etc?
    Any thoughts on why I get this issue on the Roku XS and not the Roku LT?
    thanks -- Michael
  • RESOLVED!
    Okay... I worked out that by adding sleep(25) with the facade close did the trick... Has eliminated the flash.
    Thanks for the help.
  • Hi -
    "KDOV" wrote:
    I worked out that by adding sleep(25) with the facade close did the trick... Has eliminated the flash.

    Would you be willing to share your code of how you implemented this? I'm having the same issue - launching video from a grid results in a green flash when the video is exited.
  • it seems to be a function of the sleep time; with "25" I almost always see the green flash. With sleep of "40" it's about 1 in 4 times that the green flash shows up. With sleep of "50" I'm seeing it about 1 out of 10. At "75" I haven't seen it at all. Here's my code, fwiw:


    ' play the movie selected
    shotfacade = CreateObject("roPosterScreen")
    shotfacade.Show()
    showVideoScreen(selection)
    sleep(50)
    shotfacade.Close()