2016-02-14 51 views
1

我有一个假的jPlayer音频谁的时间和进度条设置为真正的球员,使它看起来像他们是一样的。jPlayer /音频寻找酒吧非音频元素

下面是代码源jPlayer.js文件:

updateFakePlayer: function(realjPlayer) { 
    var self = this; 
    var playlistjPlayer = $(realjPlayer.cssSelector.jPlayer).data().jPlayer; 

    this.status.currentTime = playlistjPlayer.status.currentTime; 
    this.status.currentPercentAbsolute = playlistjPlayer.status.currentPercentAbsolute; 
    this.status.currentPercentRelative = playlistjPlayer.status.currentPercentRelative 
    this.status.remaining = playlistjPlayer.status.remaining; 
    this.status.readyState = playlistjPlayer.status.readyState; 

    this._updateInterface(); 
}, 

我不希望因为用户必须下载不必要的额外文件加载媒体的假球员。

但是,因为我没有在假玩家中加载媒体,所以内置的html events将无法​​正常工作,最重要的是寻找(用户点击搜索栏并且音频跳转到该位置)。那么,我该如何模仿这个或创建自己的?我想要它,以便如果用户对一个玩家执行操作,则会影响另一个玩家。当用户对真实玩家采取行动时,这很有效,但显然不是假玩家。 SoundCloud.com会和他们的玩家们这样做。

编辑http://jsfiddle.net/XLNCY/19674/

+0

更新发布到包括的jsfiddle。 –

回答

1

你可以得到当前鼠标的位置,然后由轨道的整个持续时间相乘,然后在父div的宽度划分。

下面是一个例子:

// Get uer click event 
    $(".jp-seek-bar").click(function(e) { 

    // Get div offset position (top and left) 
    var offset = $(this).offset(); 

    // Get the full width of the seek bar 
    var totalWidth = $(this).outerWidth(); 

    // Get seek bar click position 
    var left = e.pageX - offset.left; 

    // Get the track total duration 
    var totalDuration = $("#jquery_jplayer_2").data("jPlayer").status.duration; 

    // Get the current time position 
    var currentPosition = (left * totalDuration)/totalWidth; 

    // Set the player to start for the new psotion 
    $("#jquery_jplayer_2").jPlayer("play", currentPosition); 
    }); 

的jsfiddle: http://jsfiddle.net/XLNCY/19683/

+0

你真了不起。谢谢。 –