wao*_*813 5 javascript youtube-javascript-api
这是一个类似于如何将参数传递给addeventlistner的问题 但是使用Youtube播放器的api情况有点不同.
所以我在同一页面上有多个youtube播放器,使用swfobject:
swfobject.embedSWF("http://www.youtube.com/v/"+video_id+"?enablejsapi=1&version=3&modestbranding=1&theme=light&color=white&autohide=1&controls=1&showinfo=0&iv_load_policy=3&autoplay=0&playerapiid=<%= "ytPlayer#{index}" %>", "<%= "ytPlayer#{index}" %>", "500", "280", "8", null, null, params);
Run Code Online (Sandbox Code Playgroud)
我在哪里使用ruby来生成ytplayer对象id.我正在另一个函数中侦听onStateChange事件.
ytplayer.addEventListener("onStateChange", "onytplayerStateChanged");
function onytplayerStateChanged(newState) {
if(newState == -1){
//unstarted
}else{
debugger;
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是我无法知道这个事件来自哪个ytPlayer.(在onytplayerStateChanged函数中找到调用者的来源)因为我只能通过遵循这个结构的确切实现来捕获这个事件.我试图在执行这一个,但它不会再赶上事件.
我认为您可以嵌入一个 Id,然后将侦听器添加到动态函数中,如下所示: How to display multiple YouTube video without指交叠音频
window["dynamicYouTubeEventHandler" + embedid] = function(state) { onytplayerStateChange(state, embedid); }
ytplayer.addEventListener("onStateChange", "dynamicYouTubeEventHandler"+embedid);
(...)
function onytplayerStateChange(newState, playerId)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |