TVOS获取ReferenceError:调用SWIFT函数

时间:2016-03-09 08:44:10

标签: swift tvos tvml

我正在尝试在appleTV上播放带有tvml的youtube视频。它基于: https://gist.github.com/nickv2002/b7bb28cdccc000bdb910

我第一次启动它,它正在工作,但在我玩游戏(离开应用程序)后,我得到:

ReferenceError: Can't find variable: playYTblock

重新启动/退出(0)应用程序ATV它再次正常工作......似乎,应用程序<> tvjs之间的上下文丢失了 - 有想法的人?

这是我的代码:

in AppDelegate.swift
let playerVC = YTPlayerViewController()

in the application function:
playerVC.createPlayYT( appController! )

in presenter.js
if (youtubeUrl && (event.type === "play")) {
        playYTblock(youtubeUrl);
    }

in the template.xml.js
<listItemLockup youtubeUrl="H4O6oEaIDrs">

btw有人知道为什么在加载模板后立即触发event.type === select(不点击我的身边)

1 个答案:

答案 0 :(得分:-1)

无法回答有关这个确切的问题,但

我正在使用的是在tvos上播放youtube视频:

pod&#34; AKYoutubeParser&#34;

用于检索实际YouTube视频网址的解析器。 视频播放由Apple核心内容(AVFoundation,AVKit)处理

如果你不使用它,你可以删除所有的hud部分。

import AKYoutubeParser
import AVFoundation
import AVKit

func displayTrailer(trailer: String) {
    AKYoutubeParser.h264Streams(trailer) { [weak self] streams, error in
        if let s = streams, v = AKYoutubeParser.getBestQuality(s) {
            let playerVC = AVPlayerViewController()
            let playerItem = AVPlayerItem(asset: AVAsset(URL: v.url))
            let videoPlayer = AVPlayer(playerItem: playerItem)
            playerVC.player = videoPlayer
            self?.presentViewController(playerVC, animated: true) {
                playerVC.player?.play()
            }
        }
    }
}