0

我正在使用 jPlayer,流式受保护的媒体,如果我在曲目完全缓冲从头开始播放的曲目之前单击搜索栏的一部分,但是,进度条仍保留在我单击的位置。

有什么办法可以避免这种情况,我已经调查了内容范围等,并遇到了以下解决方案,但我并不完全在那里:

header("Content-Type: ".$mimeTypes[$ext]);
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('Accept-Ranges: bytes');
//header('Content-Range: bytes');

$begin  = 0;
$end    = $fsize - 1;

if (preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER['HTTP_RANGE'], $matches))
{
    $begin  = intval($matches[1]);
    if (!empty($matches[2]))
    {
        $end    = intval($matches[2]);
    }
}

header('Content-Length:' . (($end - $begin) + 1));
header("Content-Range: bytes $begin-$end/$fsize");

在 smartReadFile.php 中更正的代码的帮助下,跟踪进度条确实可以工作:

https://groups.google.com/forum/#!msg/jplayer/nSM2UmnSKKA/bC-l3k0pCPMJ

如果我给它几秒钟缓冲它可以正常工作。

jPlayer 中是否有一种方法可以在搜索栏获取数据之前进行预缓冲?

$(document).ready(function(){

  $("#jquery_jplayer_1").jPlayer({

    swfPath: "js",
    supplied: "mp3, m4a, oga"
  });

});

function playTrack(id,title) {

$("#jquery_jplayer_1").jPlayer("setMedia", { mp3: "/download.php?track=" + id });
$("#jp-audio-container .track-name").text(title);
$("#jquery_jplayer_1").jPlayer("play");

var span = document.getElementById('trackTitle');

while( span.firstChild ) {

    span.removeChild( span.firstChild );

}

span.appendChild( document.createTextNode("Now playing: " + title) );

}

有什么想法可以解决这个问题吗?

非常感谢。

4

0 回答 0