【发布时间】:2015-06-02 10:44:09
【问题描述】:
使用 Chrome 扩展程序,将脚本注入 Youtube 网站本身,并使用 Youtube 播放器 API 监听播放器事件。
注入的脚本代码:
(您可以在 Youtube HTML5 视频页面上的控制台中运行它并查看它是否有效)
var theYTplayer = document.getElementById('movie_player');
theYTplayer.addEventListener('onStateChange', function(){
console.log('--- player state has been changed');
});
在 HTML5 视频方面,一切都很好,但在 Flash 直播中却不行。
在 Flash 中,由于某种原因,所有 GET 函数都会返回错误,而 SET 函数则运行良好。
获取:getPlayerState、isMuted、getVolume
设置:playVideo、pauseVideo、mute、unMute、setVolume
这可能是一个错误,所以我在这里报告了它:issue #7043
例如,您可以在 this live streaming video 上对其进行测试。
如果我做错了什么,请告诉我应该怎么做。
如果这是一个错误,那么让我们考虑另一种方法来检测视频是否正在播放。
我比较了两个 DOM,当状态发生变化或其他任何事情时,没有添加任何类,文件最终匹配。
然后我看到,当视频播放时,Chrome 会在选项卡中添加新的额外图标扬声器,但这只是在有声音的情况下,如果视频静音,则图标不会出现,所以这不好。那么您是否有任何其他想法/解决方法来检测视频是否正在播放或修复我的代码?
【问题讨论】:
-
确保这不是您的问题:stackoverflow.com/questions/9515704/…
-
@Xan:谢谢,但这不是我的问题,我确实将脚本注入页面并在加载 DOM 后执行此操作,然后尝试在 HTML5 中的控制台中使用它视频和 Youtube 上的 Flash 视频,你会看到我面临的问题。
-
我也很怀疑,我只是想澄清一下你确实正确地注入了脚本。
标签: javascript google-chrome-extension youtube-api