从今天起,当我想在我的网站上动态更改视频时,我在youtube托管视频上遇到以下问题。
_。getVideoData不是函数
Uncaught TypeError: _.getVideoData is not a function
at M (ssl.p.jwpcdn.com/player/v/7.12.11/provider.youtube.js:1)
at load (ssl.p.jwpcdn.com/player/v/7.12.11/provider.youtube.js:1)
at l.a (ssl.p.jwpcdn.com/player/v/7.12.11/provider.youtube.js:1)
at l.<anonymous>
(ssl.p.jwpcdn.com/player/v/7.12.11/provider.youtube.js:1)
at P (ssl.p.jwpcdn.com/player/v/7.12.11/provider.youtube.js:1)
at K.f.I (s.ytimg.com/yts/jsbin/www-widgetapi-vflnzpyZ4/www-
widgetapi.js:66)
at W.f.l (s.ytimg.com/yts/jsbin/www-widgetapi-vflnzpyZ4/www-
widgetapi.js:114)
at W.f.J (s.ytimg.com/yts/jsbin/www-widgetapi-vflnzpyZ4/www-
widgetapi.js:127)
at S.g (s.ytimg.com/yts/jsbin/www-widgetapi-vflnzpyZ4/www-
widgetapi.js:143)
at g (s.ytimg.com/yts/jsbin/www-widgetapi-vflnzpyZ4/www-
widgetapi.js:95)
直到今天它运作良好。 (jwplayer 8版本显示相同的问题)
答案 0 :(得分:1)
JW Player 7.12.x使用youtube-iframe-api。 getVideoData
方法在未经警告的情况下被删除,我们希望Google将其恢复以恢复使用它的集成功能。
可以在此处找到并分叉JW Player Youtube提供程序的源代码:
https://github.com/jwplayer/jwplayer/blob/v7.12.x/src/js/providers/youtube.js
此项目正在跟踪此问题:
答案 1 :(得分:1)
尝试了补丁插件,但得到了错误:无法在'DOMWindow'上执行'postMessage':提供的目标来源('https://www.youtube.com')与收件人不匹配
更新:
如果从source / git v7.12;
编译在 src / js / providers / youtube.js
替换:
var videoData = _youtubePlayer.getVideoData();
var currentVideoId = videoData && videoData.video_id;
使用:
var videoData = _youtubePlayer.getVideoUrl();
videoData = videoData.split('=');
var currentVideoId = videoData[1];
答案 2 :(得分:0)
当你等待谷歌的消息时,我已经创建了一个插件来修复它。从这里下载:
https://www.dev.powered-by-haiku.co.uk/solutions/getvideodata/code/getvideodata.js
(注意:您需要将URL复制并粘贴到浏览器中以获取代码,因为不允许使用热链接)
像任何其他JW插件一样应用它:
Brain
编辑:现在已更新以满足“autostart”:true 方案。 请注意,最近版本的Chrome现在会阻止不通过用户手势启动的媒体播放,并且由于JW Player无法正常处理生成的错误状态(例如,在尝试自动启动YouTube时),播放器将获得进入明显无休止的缓冲状态。此插件通过取消Chrome上的自动启动请求并将其留给用户启动播放来解决此问题。