Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
WilDD
Roku Guru

Simple roVideoPlayer Code Crashes When Packaged

The following roVideoPlayer code runs "forever" when ran in side-loaded developer mode, but crashes when packaged and ran as a private channel.

Sub RunUserInterface()
    port=CreateObject("roMessagePort")
    canvas=CreateObject("roImageCanvas")
    player=CreateObject("roVideoPlayer")
    player.SetMessagePort(port)
    player.SetLoop(true)
    player.SetContentList([{
        Stream: { url: "http://wilddtech.com/public/video.mp4" }
        StreamFormat: "mp4"
    }])
    canvas.SetMessagePort(port)
    canvas.SetLayer(0, { Color: "#00000000" })
    canvas.Show()
    player.Play()
    eventLoop(port)
End Sub

Sub EventLoop(port)
    while true
        msg = wait(0, port)
    end while
End Sub


The video is only a 2 second video, but my attempt is to simulate a signage application that loops a video constantly 24 hours a day. I wanted to see if the number of looping repetitions causes problems without having to wait for it to run for days or weeks to see the result. So the 2 second video represents a longer running video that might run looping constantly for several days.

This code runs for a very long time in developer mode (I stop it after about 12 hours), but crashes after 2 hours and 10 minutes when packaged and ran as a private channel. It doesn't cause a reboot, it just stops and exits to the Roku home screen.

Does anyone know why this would happen? And more importantly, is there a way to prevent it from happening?

I have tested this on the following configurations with the same results:

Roku 2 XS Version 7.2.0 Build 4100-02
Roku 4 Version 7.2.0 Build 4100-17
0 Kudos
4 REPLIES 4
belltown
Roku Guru

Re: Simple roVideoPlayer Code Crashes When Packaged

That sounds like the new "feature" that Roku implemented recently to prevent the device from doing what you described -- running for more than a few hours at a time before returning to the Home Screen:
https://forums.roku.com/viewtopic.php?f=28&t=94604

It shouldn't happen if you're playing a single video continuously, but I imagine it might if you're looping the same video repeatedly. A possible workaround is for your channel to send ECP key press commands to itself at regular intervals to prevent screensaver activation/returning to the Home screen.
0 Kudos
WilDD
Roku Guru

Re: Simple roVideoPlayer Code Crashes When Packaged

Thanks for the info belltown. I'll try the ECP workaround and report back with the results.
0 Kudos
RokuKC
Roku Employee
Roku Employee

Re: Simple roVideoPlayer Code Crashes When Packaged

"WilDD" wrote:
Thanks for the info belltown. I'll try the ECP workaround and report back with the results.


Having an app use ECP to send keypress events to itself is not a recommended technique, and does not work in all environments.
See roAppManager UpdateLastKeyPressTime() instead.
https://sdkdocs.roku.com/display/sdkdoc/ifAppManager#ifAppManager-UpdateLastKeyPressTime()asVoid
0 Kudos
WilDD
Roku Guru

Re: Simple roVideoPlayer Code Crashes When Packaged

The UpdateLastKeyPressTime() fixed the problem.

Thanks belltown and RokuKC for your help.
0 Kudos