So there's an updated TVML Catalog sample code project out.
Instead of having js files that make an XML file, it's just a straight XML file now. Makes much more sense to me to have it this way.
TVML Catalog: Using TVML Templates
Another thing they've changed is they suggest using Ruby instead of Python.
ruby -run -ehttpd . -p9001
I think this might be to get around the fact videos locally didn't work with Python, I still need to test this.
In most of my previous files I was using template=".xml.js" whereas now they use documentURL=".xml" so one to check on.
I've also amended a couple of files to get video playback working, the documentcontroller.js was the place to add it.
[gist 1f510cc84ce9968642383aa62b621643]
Catalog.xml
<listItemLockup videoURL="">
<ordinal minLength="2" class="ordinalLayout">0</ordinal>
<title>Introduction</title>
<subtitle>0</subtitle>
<decorationLabel>(9:58)</decorationLabel>
</listItemLockup>
DocumentController.js
class DocumentController {
...
setupDocument(document) {
document.addEventListener("select", this.handleEvent);
document.addEventListener("play", this.handleEvent);
}
...
handleEvent(event) {
const target = event.target;
...
const videoURL = target.getAttribute("videoURL");
...
} else if (videoURL) {
var player = new Player();
var playlist = new Playlist();
var mediaItem = new MediaItem("video", videoURL);
player.playlist = playlist;
player.playlist.push(mediaItem);
player.play();
}
}
}
A useful dub dub video to watch is the following.
WWDC 212 - Developing tvOS Apps Using TVMLKit: Part 1
(https://developer.apple.com/videos/play/wwdc2016/212/)
The video/slides do cover a basic example:
// Setting up a TVMLKit JS Video Player
var video = new MediaItem(
"video",
"[https://example.com/video.m3u8](https://example.com/video.m3u8)"
);
video.title = "My Great Movie";
video.description = "An extensive description...";
video.resumeTime = 10.0; // seconds
var playlist = new Playlist();
playlist.push(video);
var player = new Player();
player.playlist = playlist;
player.play(); // Present the player
The AudioVideo sample code hasn't been updated yet and there isn't an example of video playback in the above Catalog sample, the WWDC video was handy though. I like the embedded player in a lockup.
TVMLAudioVideo: Audio and Video Playback on tvOS
Check out the new MediaContent docs:
MediaContent