Of the many HTML capable clients that I’ve worked with, among them is an interesting family of devices called BrightSign Media Players (made by Roku). One of the things that they do exceptionally well is playing videos. They support a variety of codecs for that job and it’s easy to have them go from one video to another in response to a network signal, a switch being pressed, or a touch on the screen. I’m using the XT1143 and XT1144 models for my test.
For simple video-only projects, the free tool BrightAuthor works well. But the scenarios that this is best fit for seem to be scenarios with relatively low amounts of navigation complexity. For projects with higher amounts of navigational complexity or projects that require more complex logic in general, an HTML based project may be a better choice.
After working on a number of HTML projects for BrightSign, I’ve discovered some of the boundaries of what can and can’t be done to have a different shape than on some other platforms. I have seen that there are some things that while taxing to other devices, work well on the BrightSign players; and other things that don’t work so well on BrightSign that will work fine on other players.
The BrightSign HTML rendering engine in devices with recent firmware is based on Chromium.
|BrightSign Firmware Version||Rendering Engine|
|8.0 (not released yet)||Chromium 65|
You can encounter some quirky rendering behaviour if you are on a device with an older firmware version. At the time that I’m writing this the 8.0 firmware isn’t actually available (coming soon). I’ve found that while the device can render SVG, if I try to animate SVG objects, then performance can suffer greatly. It is also only possible to have no more than two media items playing at a time (audio or video). If an attempt is made to play more than two items, then the third item will be queued and will not begin to play until the previous two complete playing.
Rather than spend a lot of time developing and testing something in Chrome before deploying it to a BrightSign, it is better if you start off testing your code on the BrightSign as soon as possible. The normal deployment process for code that is to run from the BrightSign is to copy a set of files to an HTML card, insert it into the BrightSign, reboot it, and wait a minute or two for the device to start up and render your content.
Compared to something being tested locally ,where you can just hit a refresh button to see how it renders, this process is way too long. A better alternative, if your development machine and BrightSign are on the same network and sub-net is to make a BrightSign presentation that contains an HTML widget that points back to your development machine. You’ll need to have a web server up and running on your machine and use the URL for the page of interest in the BrightSign presentation. You will also want to make sure that you have enabled HTML debugging. This is necessary for quick refreshes of the page.
The interface that you see here is identical to what you would see in the Chrome Developer Console when debugging locally. If you make a change to the HTML, refreshing the page is simply a matter of pressing [CTRL]+[R] from the development window. This will invoke a refresh on the BrightSign too.
I’ll be working on a BrightSign project over the course of the next few weeks and will be documenting some of the other good-to-know things and things that do or don’t work well on the devices.
One thought on “Brightsign: An Interesting HTML Client”