【问题标题】:Node WebKit and YouTube: chrome is not definedNode WebKit 和 YouTube:chrome 未定义
【发布时间】:2014-10-26 15:43:09
【问题描述】:

我正在使用PhoneGapNode-WebKitAndroidiOSMac OSWindows 开发应用程序。此应用程序嵌入了youtube 视频。

这些youtube 视频在我的Mobile 应用程序(Android/iPhone)中使用PhoneGap 运行良好,但如果我在Mac 上测试它(使用grunt node-webkit builder 构建应用程序)我收到以下错误:

未捕获的 ReferenceError:未定义 chrome
www-embed-player.js:184

我试图检查那行代码,例如:

chrome.cast.requestSession(v(this.Lc,this)

我正在使用 iframe 嵌入视频:

<iframe src="http://www.youtube.com/embed/rjKRQYmi1Lk" frameborder="0" allowfullscreen="" ></iframe>

有人知道我该如何解决吗?

谢谢!

【问题讨论】:

  • 今天我也遇到了同样的情况。仍然无法解决此问题。
  • 这发生在我的 Android 手机上...可能是 YouTube 的核心错误?
  • 我在node-webkit github页面github.com/rogerwang/node-webkit/issues/2291上打开了一个issue@
  • 好的,这个错误可能与视频无法播放的问题无关,因为在package.json 中添加"user-agent": " Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405", 可以消除所有错误,但视频仍然显示错误。跨度>

标签: javascript youtube gruntjs node-webkit


【解决方案1】:

看起来这与 Chromecast Chrome 插件有关。我假设你有

"webkit": {
    "plugin": true
}

在您的 flash 清单中,因此 Chromecast 插件也会被加载。然后,当它尝试与 YouTube 播放器交互时,它会失败。

尝试删除 Chromecast 插件,看看是否能解决问题。如果是这样,那么您的选择是:

  1. 删除 Chromecast 插件,没有办法只加载我知道的 node-webkit 中的特定插件。这可能不是最好的解决方案,尤其是在您分发应用程序时。

  2. 使用其他方法加载 YouTube 视频。我使用 JavaScript Player API,没有任何问题。你可以在这里找到我的例子:

    https://gist.github.com/octalmage/03a054bb27d597a9f095

    以及API参考:

    https://developers.google.com/youtube/js_api_reference#Embedding

  3. 通过本地网络服务器加载您的 HTML。此错误似乎是由使用 file:// 协议引起的,因此使用本地网络服务器加载 HTML 可能会解决此问题。我个人将其与方法 2 一起使用以克服限制播放错误 (https://cloudup.com/cUXiDgrYBOm),但我不确定它是否能单独解决您的问题。

编辑:我刚刚意识到 webkit 插件设置为 false 时出现此错误,尝试将其设置为 true!启用 webkit 插件后,该视频对我有效,无需任何更改。不过,该错误确实会在视频播放之前闪烁。

https://cloudup.com/c6VyHbIyyez

【讨论】:

  • 嗨,我刚刚将 webkit 插件设置为 true,现在正在播放视频!正如你所说,它仍然会在播放前显示错误,但是当我们考虑使用 JavaScript Player API 时这已经足够了。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2014-10-12
  • 2013-05-31
  • 2015-10-03
  • 2016-06-25
  • 1970-01-01
  • 2014-11-17
相关资源
最近更新 更多