【问题标题】:TVOS getting ReferenceError: Can't find variable when calling SWIFT functionTVOS 获取 ReferenceError:调用 SWIFT 函数时找不到变量
【发布时间】:2016-03-09 08:44:09
【问题描述】:

我正在尝试在我的 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">

顺便说一句,有人知道为什么在加载模板后立即触发 event.type === select(不点击我这边)

【问题讨论】:

    标签: swift tvos tvml


    【解决方案1】:

    无法回答那个确切的问题,但是,

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

    pod "AKYoutubeParser"

    用于检索实际 youtube 视频网址的解析器。 并且视频播放由苹果核心的东西(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()
                }
            }
        }
    }
    

    【讨论】:

    • 问题不是播放器而是JSContext。应用程序进入后台并再次激活后,找不到应该启动 Swiftcode 播放视频的 JS-Function 调用
    • 这不是回答问题,是工具推荐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2018-04-24
    • 2016-06-20
    • 1970-01-01
    • 2016-10-30
    相关资源
    最近更新 更多