我正在启动一个播放器,然后将一个文档推送到导航堆栈上。视频正在后台播放,但由于文档占据了屏幕,所以不可见。谁能告诉我如何使文档透明,或者有没有更好的方法来实现相同的效果?
3 回答
您可以在以下链接中获得交互式视频叠加:http: //devstreaming.apple.com/videos/wwdc/2016/212s41rh77qgdg26s86/212/212_developing_tvos_apps_using_tvmlkit_part_1.pdf 叠加可以互动,因为您实际上是在向其中添加文档覆盖文档。所以任何类型的按钮锁定都可以正常工作。
覆盖 TVML?
TVJS 播放器属性overlayDocument
,请参阅https://developer.apple.com/library/tvos/documentation/TVMLJS/Reference/TVJSPlayer_Ref/index.html或https://forums.developer.apple.com/thread/18431
交互式覆盖文档是要走的路。以下代码显示了这是如何完成的。
App.onLaunch = function(options) {
var singleVideo = new MediaItem('video', 'http://somevideo.mp4');
var videoList = new Playlist();
videoList.push(singleVideo)
var myPlayer = new Player();
myPlayer.playlist = videoList;
var parser = new DOMParser();
var parsedDoc = parser.parseFromString(`<document>
<alertTemplate>
<button>
<text>Click Me</text>
</button>
</alertTemplate>
</document>`, "application/xml");
myPlayer.interactiveOverlayDocument = parsedDoc;
myPlayer.interactiveOverlayDismissable = false;
myPlayer.play();
}
苹果没有很多文档。但他们确实在 WWDC,WWDC 2016 演示文稿的幻灯片 98-102 中提到了它。
本文档的结尾——Apple TV 标记语言参考——复合多媒体元素
以及 TVML 指南中的一个示例:TVML 和 TVMLKit 中的核心概念——Server/PlaybackVideo/index.js
这件事确实有一些错误,即如果视频是您显示的第一件事,则 interactiveOverlayDismissable 值不活动,或者整个事情与 TVML 之外的本机代码一起运行良好。但这是做视频背景更容易的部分。
请注意,您可能希望添加一些偶数侦听器以在最后重播视频,因为默认行为是弹出视图。