I just updated the roku's firmware and it broke how I was dealing with closed captions. The firmware stops the dispatching of the options click so my pas resolution no longer works.
Now when I click the options button, it opens a window on the left hand side allowing the user to change the close captions in this window. Right now the window doesn't work properly because I assume I have to listen to dispatching of new events. I checked our 3rd party apps (i.e. Amazon Video) and this seems like it is a consistent UI change. Other apps's handling of closed captioning is also broken.
1) Is there any info on this new change? 2) I assume this was a change in the new UI. Can someone confirm this?
The options button was partly repurposed when Roku TVs arrived on the market. Even if your solution would work on a box, it would still have an issue on a RokuTV. The UI of Roku boxes is converging to one similar to the Roku TVs. These TVs are required to show the sidebar menu when the option button is pressed whenever video is playing. If there is another UI element on top of the video, shown to the user, that UI element can use the options button. Users need to get to the side bar menu for all the picture settings. The TV menu has many more items than the Roku boxes. As such a channel is forced to add a button or so for CC. Or just leave it to the firmware as described below.
In 8.0 firmware an option was added called "preferred caption language" and the firmware will automatically select the track according to the language setting. When the user changes the track, the new language setting will become the preferred setting (if the track has the language set). This way in playlists and when going back and forth to playing a video, and when switching channels, the user will get the preferred caption languange. Instead of having to select the track again for each video in the playlist. (TED channel is an example).
Since it selects tracks automatically, a channel need not do much at all anymore. In "SubtitleTracks" part of "Content Meta-Data" add the track, the language of the track, and leave the description empty (unless it is a special track). When no description is provided it will show the language instead. When a description is added, it should preferably contain the language.
No need to add SubtitleConfig. It would get in the way of the automatic track selection in the 8.0 firmware.
On the video node, availableSubtitleTracks and subtitleTrack still work. Also setting subtitleTrack there would get in the way of the automatic track selection. Unless creating an own UI with the user selecting a subtitle track causing subtitleTrack to be set, a channel should not set subtitleTrack.
I noticed that the settings are not saved from one video to another video. If I turn on Closed captioning in one video, it doesn;t stay on when the next video plays. (But I have not yet implemented SubtitleTracks so perhaps that is why this setting is not saved.) Is there a way to tell the setting window to remember the closed captioning settings from one video to the next?
Also, is there a way to be alerted of any firmware changes so we can make quick changes without having to accidentally find a new or missing feature? This feature was very obvious, but other changes may not be so obvious,
If a track list is provided, and the language fields are set to the proper 3 letter code, and SubtitleConfig is not overriding the automatically selected track, then in 8.0 firmware the next video will select the track with the same language (could be a different track).. The caption track list will show, for example :
Show French captions when Available Currently showing English Captioning Track <*French>
The *entry is the preferred caption language. If that track is not available, it will still show up in the list ... but "Currently showing" will specify the track that is actually selected.
(Note I mentioned TED channel as an example before ... but it was not a good example ... there the channel defaults to the first track each time).
Main thing is to not use SubtitleConfig ... for backwards compatibility the firmware is forced to select that track and has to forego automatic track selection based on language.
But there is a problem. When I have the closed captioning side window appear (after clicking the * options button), there are 2 possible languages: "*English" and "English". If I select "English", the closed captions appears. However, by default the 1st option is selected "*English" - that is English with a "*" in front of it. Selecting this language does nothing.
Do you know what "*English" is appearing as an option?
The problem is that when "*English" is pre-selected with the "On Always" setting is set, the closed captioning does not appear. It's only when I select "English" w/o the asterisks does the captioning show up. Or the closed captioning shows up after I select "English" but then go back and select "*English". Is this a firmware issue?
At this point I'd be guessing... Maybe there are 2 English tracks, one without caption, one with? Set your track language to fre and see if the demux found another one. Look at AvailableSubtitleTracks field. That includes the tracks the demux finds.
I change the language to French. Uploaded the app to the roku and saw the following. *English is the default value again. I selected French and the subtitles appeared. Then I exited the video to the main window and selected the same video. Opened the closed captions window and this time *French was preselected. Even though the "Always On" option was selected, the closed captions were not appearing. I changed the language from *French to French, and the closed captions appeared.
So I would like to get rid of the 1st language option because it is causing issues. Is that possible?
The language with the * is the UI presenting the preferred caption language... It's not really a track. So nothing to get rid of really. What caption format is used (webvtt, ttml) ? What video container format (hls, smooth, mp4)?