Javascript jPlayer提前2-8%(几秒钟)结束曲目?

Javascript jPlayer提前2-8%(几秒钟)结束曲目?,javascript,audio,jplayer,Javascript,Audio,Jplayer,我不确定这会是什么。。。调试起来有点困难 基本上,当使用jPlayer时,每首曲目都会提前几秒钟结束(仅限mp3格式) 我正在使用S3/Cloudfront CDN进行分发,但我认为这与此无关(除非有一些奇怪的标题问题可能会造成类似的症状)。到目前为止,我试过5种不同的mp3,效果都一样 另外,.progress bar也没有达到100%,它在95%左右结束,然后转到下一个播放列表项 var fnmApp = (function() { var player = function()

我不确定这会是什么。。。调试起来有点困难

基本上,当使用jPlayer时,每首曲目都会提前几秒钟结束(仅限mp3格式)

我正在使用S3/Cloudfront CDN进行分发,但我认为这与此无关(除非有一些奇怪的标题问题可能会造成类似的症状)。到目前为止,我试过5种不同的mp3,效果都一样

另外,
.progress bar
也没有达到100%,它在95%左右结束,然后转到下一个播放列表项

var fnmApp = (function() {

    var player = function() {

        var options = {
            swfPath       : '<%= asset_path 'Jplayer.swf' %>'
          , supplied      : 'mp3'
          , solution      : 'html,flash'
          , wmode         : 'transparent'
          , smoothPlayBar : false
        };

        var fnmPlaylist = new jPlayerPlaylist({
            jPlayer: '#fnmp'
          , cssSelectorAncestor: '#fnmp-container'
        }, mixtapePlaylist, options); 

        $('.fnmp-container .jp-gui a').click(function(e) {
            e.preventDefault();
        });
    };

    return {
        player: player
    };

})();
var fnmApp=(函数(){
var player=function(){
变量选项={
swfPath:“”
,提供:'mp3'
,解决方案:“html,flash”
,wmode:'透明'
,smoothPlayBar:false
};
var fnmPlaylist=新的jPlayerPlaylist({
jPlayer:“#fnmp”
,cssSelectorAncestor:“#fnmp容器”
},播放列表,选项);
$('.fnmp container.jp gui a')。单击(函数(e){
e、 预防默认值();
});
};
返回{
玩家:玩家
};
})();

通过HTTP传输MP3文件有点问题,因为通常在完全下载并计算帧数之前,不可能知道该文件有多大(时间或样本)。大多数播放器通过估计时间来解决这个问题,然后在播放继续时更新估计值,或者简单地滚动到文件末尾,即使在原始估计长度之后仍然有数据要播放


听起来好像是原来估计的长度被用于播放长度。这可能是一个错误,无论是播放音频还是使用编解码器。使用jPlayer,您可以使用Flash或通过HTML5的浏览器进行播放。由于在HTML5上强制Flash在您的情况下起作用,我相信这是您正在使用的Chrome构建中的一个bug。不幸的是,没有直接的方法来解决这个问题,因为它超出了您的控制范围。你只能解决这个问题。

在大多数情况下,不阅读MP3就不可能知道MP3的完整长度(时间)。这听起来像是一个bug,预测的长度被用作绝对长度。你用的是什么浏览器?你知道你是在HTML5模式还是Flash模式吗?现在是HTML5模式,最新的chrome测试版。我没有试过IE或其他任何东西。这个问题可能与您的代码无关,而在HTML5的情况下,可能与jPlayer无关。这可能是一个Chrome bug。不幸的是,您可能无法直接修复它。这似乎迫使它在html5工作之前使用flash。。。flash并不理想,但至少html5是一种退路。如果你把它记下来作为答案,我可以把它当作答案