Way*_* Fu 8 javascript youtube-iframe-api
我非常确定 YouTube Iframe API“onError”事件过去会触发,因为我运行一个基于此 API 的项目。但最近“onError”事件不会触发,即使是最简单的错误。
\n这是一个基于官方页面(https://developers.google.com/youtube/iframe_api_reference)的简单示例代码,并且是可行的:
\n<iframe id="existing-iframe-example"\n width="640" height="360"\n src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1"\n frameborder="0"\n style="border: solid 4px #37474F"\n></iframe>\n\n<script type="text/javascript">\n var tag = document.createElement(\'script\');\n tag.id = \'iframe-demo\';\n tag.src = \'https://www.youtube.com/iframe_api\';\n var firstScriptTag = document.getElementsByTagName(\'script\')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\n var player;\n function onYouTubeIframeAPIReady() {\n player = new YT.Player(\'existing-iframe-example\', {\n events: {\n \'onReady\': onPlayerReady,\n \'onStateChange\': onPlayerStateChange,\n \'onError\': onError\n }\n });\n }\n function onError(event) {\n console.log(event.data)\n }\n \n function onPlayerReady(event) {\n \n }\n\n function onPlayerStateChange(event) {\n console.log(event.data);\n }\n</script>\nRun Code Online (Sandbox Code Playgroud)\n一旦将视频 ID 字符串“M7lc1UVf-VE”更改为错误的字符串,例如“M7lc1UVf”,它应该触发“onError”事件,但现在不会。
\n根据官方页面指南:https://developers.google.com/youtube/players/support \xe2\x86\x92“Google工程师使用youtube-iframe-api标签监控并回答问题”,希望Google工程师能够看到这个发布并修复“onError”问题。
\n我找到了解决这个问题的方法。我发现,至少在我的情况下,onError回调不会在初始加载时触发(当最需要的时候!),但会在播放器的其余部分完全加载后触发。
如果您绝对需要该onError事件正常工作,您可以在已加载的播放器中重新加载视频。autoplay从对象中删除参数playerParams——这会导致黑客失败。添加loadByVideoId(用于自动播放)或cueByVideoId使用相同的视频 ID 到onReady回调。
这将重新加载当前视频,并onError在需要时触发回调。autoplay否则,除了视频在播放前短暂提示(如预期)之外,几乎不会有任何明显的效果。
如果您想了解更多信息,请告诉我 - 希望有帮助!
编辑:
onReady回调以及列表中填充的错误。更新:我不知道它是什么时候发生的——谷歌的开发人员从未更新过我的问题——但看起来这个错误可能已经解决了。第一个演示现在按预期列出了加载时的错误代码。对于实施此解决方法的任何人,您现在也许可以删除该黑客攻击。
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |