We just published an update to our app that provides customers with an SD stream in addition to our HD stream. This is to avoid letterboxing on devices set to 4:3 mode or 16:9 mode, and reduces unnecessary bandwidth for the customer.
Since "quality" is set to true for the HD stream, if I attempt to play that stream on a device in SD mode, it will fail to play. This is the expected behavior.
After publishing the update, we have received a number of complaints of videos not working (attempting to play HD streams in SD display mode). After some troubleshooting, I found that if I have customers switch their display mode (say 4:3 to 16:9) and then back again, it works fine. This looks like a bug in the Roku firmware to me, where these devices are getting into a state where they are not properly reporting the video mode.
Here is the function I am using to determine which stream to use:
Function CanPlayHD()
device = createobject("rodeviceinfo")
vm = device.getvideomode()
if vm = "480i" or vm = "480p" or vm = "576p60"
return false
else
return true
end if
End Function
Roku already told us we can just play HD streams in letterbox mode by setting the quality to false, but that is not our desired behavior.