Playing any type of video requires just one Scene Graph node class: Video.
For the most basic video playback, you only need to set the
StreamFormat field values in a ContentNode node, assign the ContentNode node to the
content field of the Video node, then set the Video node
control field value to
play to start the video. For example:
videoContent = createObject("RoSGNode", "ContentNode")
videoContent.url = "video_URI"
videoContent.streamformat = "hls"
m.video = m.top.findNode("video_node_ID")
m.video.content = videoContent
m.video.control = "play"
For more advanced video playback (for example, incorporating "trick play" DVD-like scene indexing functionality), there are fields in the Video node and the associated ContentNode node to provide this functionality.
Adding closed caption support is a simple matter of configuring the subtitleconfig video node content element. See SceneGraphCaptionsDemo.zip for an example of using side loaded TTML captions in your channel.
Here are two example applications showing selecting and playing videos. These examples demonstrate the use of RowList to create a custom content grid and Video node for video playback. The second example also shows how to create a very simple details screen for displaying more information about selected content before video playback. The also show how to load and parse an MRSS feed so you can see how to populate your channels with dynamic content.
Here is another example application that uses the same content feed, but renders the UI as a PanelSet.