jwplayer v7.xx _.getVideoData 不是功能问题
jwplayer v7.xx _.getVideoData is not a function issue
从今天开始,当我想动态更改我网站上的视频时,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版本显示同样的问题)
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
此问题正在此处的项目中进行跟踪:
在您等待 Google 的消息期间,我已经创建了一个插件来同时修复它。从这里下载:
https://www.dev.powered-by-haiku.co.uk/solutions/getvideodata/code/getvideodata.js
(注意:您需要将 URL 复制并粘贴到浏览器中以获取代码,因为不允许盗链)
像使用任何其他 JW 插件一样应用它:
"plugins":{
"getvideodata.js":{}
}
编辑: 现在已经更新以适应 "autostart":true 场景。
请注意,Chrome 的最新版本现在会阻止不是通过用户手势启动的媒体播放,因为 JW Player 无法妥善处理由此产生的错误状态(例如,尝试自动启动 YouTube 时) ),播放器将进入明显的无限缓冲状态。 此插件通过取消 Chrome 上的自动启动请求来解决此问题,并将其留给用户启动播放。
尝试了补丁插件但出现错误:无法在 '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];
从今天开始,当我想动态更改我网站上的视频时,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版本显示同样的问题)
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
此问题正在此处的项目中进行跟踪:
在您等待 Google 的消息期间,我已经创建了一个插件来同时修复它。从这里下载:
https://www.dev.powered-by-haiku.co.uk/solutions/getvideodata/code/getvideodata.js
(注意:您需要将 URL 复制并粘贴到浏览器中以获取代码,因为不允许盗链)
像使用任何其他 JW 插件一样应用它:
"plugins":{
"getvideodata.js":{}
}
编辑: 现在已经更新以适应 "autostart":true 场景。 请注意,Chrome 的最新版本现在会阻止不是通过用户手势启动的媒体播放,因为 JW Player 无法妥善处理由此产生的错误状态(例如,尝试自动启动 YouTube 时) ),播放器将进入明显的无限缓冲状态。 此插件通过取消 Chrome 上的自动启动请求来解决此问题,并将其留给用户启动播放。
尝试了补丁插件但出现错误:无法在 '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];