1

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

基本上在使用 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
    };

})();
4

1 回答 1

0

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

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

于 2013-10-07T04:07:49.583 回答