控制嵌入式播放器

时间:2015-07-23 13:18:03

标签: javascript wordpress embed soundcloud

我的页面上有一个嵌入式SC播放器,我希望用户能够从页面上的链接跳转到声音文件中的特定时间码。我第一次点击就可以了。但是,如果用户然后点击指向某个细分的另一个链接,则SC播放器会忽略它。它只是继续播放并忽略输入。

这是我的相关代码:

function playSC(seekto){
seekto = HMSToMS(seekto);
var container = document.getElementById("SCPlayer"); 
var iframe = container.getElementsByTagName("iframe"); 
var widgetIframe = iframe[0],
widget = SC.Widget(widgetIframe);       
widget.bind(SC.Widget.Events.READY, function() {
    widget.play();
});
widget.bind(SC.Widget.Events.PLAY, function() {
    widget.seekTo(seekto); 
});
widget.bind(SC.Widget.Events.SEEK, function() {
    widget.unbind(SC.Widget.Events.PLAY);
});
widget.bind(SC.Widget.Events.PAUSE, function() {
    widget.unbind(SC.Widget.Events.PLAY); 
}); 
widget.bind(SC.Widget.Events.PLAY, function() {
    widget.unbind(SC.Widget.Events.PLAY); 
}); 

}
var container = document.getElementById("SCPlayer"); 
var iframe = container.getElementsByTagName("iframe"); 
var widgetIframe = iframe[0],
widget = SC.Widget(widgetIframe);

seekto = getParameterByName('t');
if (seekto){    
  (function(){
    playSC(seekto); 
  }());
}

SC播放器是通过Wordpress插件嵌入的,通过DOM获取它有点棘手,因为我不能只为它分配一个唯一的ID。

用户点击的href如下所示:javascript:playSC(“00:01:21”);

我在这里缺少什么?在第二次(或第三次或第四次)点击为什么玩家不停止,寻找新的时间并再次开始游戏?

1 个答案:

答案 0 :(得分:0)

我想我可能已回答了我自己的问题。这就是我所拥有的,似乎正在工作。

function playSC(seekto){
    seekto = HMSToMS(seekto);
    var container = document.getElementById("SCPlayer"); 
    var iframe = container.getElementsByTagName("iframe"); 
    var widgetIframe = iframe[0],
    widget = SC.Widget(widgetIframe);           
    widget.bind(SC.Widget.Events.READY, function() {
        widget.play();
    });
    widget.bind(SC.Widget.Events.PLAY, function() {
        widget.seekTo(seekto); 
    });
    widget.bind(SC.Widget.Events.PLAY_PROGRESS, function() {
        widget.getPosition(function(pos) {
        seekto = pos;
      }); 
    }); 
}

想法或建议?这似乎有效,但我不是一个有经验的编码员。我欢迎你的意见。