I'm working on my first roVideoPlayer (instead of roVideoScreen), mostly so I can remove the playback bar completely for live video where I don't want the user to manipulate anything.
At the very minimum, I need to implement a loading screen for when the HLS stream first begins to buffer, and a screen when the video stops playing due to buffering issues.
The first part is easy, since I adapted some code from the video player example in the SDK:
...
if msg.isStatusMessage() and msg.GetMessage() = "startup progress"
curProgress% = msg.getIndex() / 10
if progress <> curProgress%
progress = curProgress%
PaintFullscreenCanvas(canvas, progress)
end if
...
In PaintFullScreenCanvas I just overlay some text that shows the percentage as it increases.
When a video begins to buffer after having already started up, what's the behavior? Will roVideoPlayer automatically pause playback on the last frame and then fire another event similar to "startup progress"?
My main issue is that I don't know how I can force my Roku to buffer. I have a pretty decent internet connection. I do have at my disposal a powerful live encoder, so I suppose I could push out a very high bit rate stream until I have trouble playing it - but that seems very hit or miss. Maybe if I could rate-limit the Roku or something?