jPlayer 过早结束曲目 2-8%(几秒钟)

jPlayer ends tracks 2-8% (a few seconds) too early?

本文关键字:几秒 2-8% 结束 曲目 jPlayer      更新时间:2023-09-26

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

基本上,当使用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
    };
})();

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

听起来正在发生的事情是原始估计长度用于播放长度。 这可能是播放音频的任何内容或其使用的编解码器的错误。 使用jPlayer,您可以通过HTML5使用Flash或浏览器进行播放。 由于强制使用Flash超过HTML5在您的情况下有效,因此我相信这是您正在使用的Chrome构建中的一个错误。 不幸的是,没有直接的方法可以解决此问题,因为它超出了您的控制范围。 你只能解决它。