2012-07-16 63 views

回答

2

使用ended()事件与playHead方法一起使播放头在播放结束时保持结束状态。

修改的例子,这里就是我的了:

$(document).ready(function() { 

    $("#jquery_jplayer_1").jPlayer({ 
     ready: function(event) { 
      $(this).jPlayer("setMedia", { 
       mp3: "http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3", 
       oga: "http://www.jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg" 
      }); 
     }, 
     swfPath: "http://www.jplayer.org/2.1.0/js", 
     supplied: "mp3, oga", 
     ended : function(){ 
      console.log("ended"); 
      $(this).jPlayer("playHead",100); 
     } 
    }); 
});          
​ 

的jsfiddle:http://jsfiddle.net/wjsKa/2/
参考:http://jplayer.org/latest/developer-guide/

+0

感谢JSFiddle演示。这是一个很好的解决方案,但我希望有更直接的方式来配置播放器,以防万一它从100%移动到0%并回到100%时引起明显的闪光。特别是当我的进度条正在使用CSS动画时。但如果没有其他方法,这肯定是可行的。 – mahemoff 2012-07-16 19:24:46

+0

你可以做的另一件事是使用“$ .jPlayer.event.timeupdate”事件,每250毫秒触发一次。监视媒体相对于其总长度的当前位置。就在你触摸结尾之前,你可以停止播放。它会模仿媒体的结局。 – xbonez 2012-07-16 19:27:06

1

jPlayer是开源的,所以您可以根据您的需要调整代码。我建议从jquery.jplayer.js获取jquery.jplayer源代码并删除973974行。然后你只需保存自己的副本并压缩它,如果你想这样做。

或者您可以使用_updateInterface方法进行游戏,以便从"ended" event handler调用时不会移动搜索栏。

对不完整的答案,目前无法测试。