我有一个包含许多 YouTube 播放器的 HTML。
我订阅 onStateChange 以在用户播放视频时收到通知。
function onYouTubePlayerReady(playerid) {
var player = document.getElementById("playerA");
player.addEventListener("onStateChange", "callback");
}
现在回调获取 newState 作为参数。
function callback(newState) {
...
}
仅适用于一名玩家。
但是对于很多玩家来说,我怎么知道是哪个玩家引发了 State Change 事件呢?回调只有一个参数。
有没有办法知道哪个玩家引发了事件表单回调,或者我必须为每个玩家设置不同的回调?
这是我基于其他答案的解决方案:
(1) Add id
对象和/或嵌入标签的参数
(2) Add playerapiid https://developers.google.com/youtube/player_parameters#playerapiid视频网址的参数(它应该匹配id
)
<object id="video1" data="http://www.youtube.com/v/AAAAAAAAAAA&version=3&enablejsapi=1&playerapiid=video1" ...>
<embed ...>
</object>
<object id="video2" data="http://www.youtube.com/v/BBBBBBBBBBB&version=3&enablejsapi=1&playerapiid=video2" ...>
<embed ...>
</object>
(3) 为每个视频创建命名回调函数,并将其分配给播放器中的播放器onYouTubePlayerReady
事件。这是一种方法:
function onYouTubePlayerReady(playerApiId) {
var player = document.getElementById(playerApiId);
window["onStateChange" + playerApiId] = function(state) {
console.log("#" + playerApiId + ": new state " + state);
};
player.addEventListener("onStateChange", "onStateChange" + playerApiId);
}
我已经发表了一个演示在这里 http://salman-w.blogspot.com/2012/10/multiple-youtube-as3-players-on-page.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)