2014-09-02 52 views
3

我开发一个应用程序的AndroidiOSMac OSWindows使用PhoneGapNode-WebKit铬没有定义。此应用程序嵌入了youtube视频。节点的WebKit和YouTube:

这些youtube视频在我的Mobile的应用程序(Android/iPhone)使用PhoneGap工作正常,但如果我测试它在我的Mac(建筑用grunt node-webkit builder应用程序)我收到以下错误:

Uncaught ReferenceError: chrome is not defined
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> 

任何人都知道我该如何解决它?

谢谢!

+2

今天同样发生在我身上。仍然无法解决这个问题。 – 2014-09-02 12:07:29

+0

这发生在Android手机上......也许是一个核心的YouTube错误? – 2014-09-03 06:40:49

+0

我在node-webkit github页面上打开了一个问题https://github.com/rogerwang/node-webkit/issues/2291 – 2014-09-03 06:41:56

回答

1

看起来这与Chromecast Chrome插件有关。我假设您已在您的清单中使用闪光灯

"webkit": { 
    "plugin": true 
} 

,因此Chromecast插件也正在加载。然后,当它尝试与YouTube播放器进行互动时,就会失败。

请尝试移除Chromecast插件,看看是否可以解决问题。如果是的话那么你的选择是:

  1. 删除Chromecast的插件,没有办法只能加载在节点的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://协议导致的,因此使用本地web服务器加载您的HTML可能会解决此问题。我个人在方法2中使用此方法来避开受限的播放错误(https://cloudup.com/cUXiDgrYBOm),但我不确定它是否能解决您的问题。

编辑:我刚刚意识到我得到这个错误与webkit插件设置为false,请尝试将其设置为true!当启用webkit插件时,该视频对我无影响。在视频播放前,错误确实闪烁。

https://cloudup.com/c6VyHbIyyez

+1

嗨,我只是将webkit插件设置为true,现在正在播放视频!正如您所说,它在播放前仍然显示错误,但在考虑使用JavaScript播放器API时,这已足够。谢谢! – 2014-09-08 09:49:06