2011-06-04 57 views
9

我有一個jPlayer(使用jQuery的HTML5歌曲播放器),它開始播放歌曲的xx秒。如何避免jPlayer中不必要的緩衝

但問題是,它必須先緩衝XX秒,然後開始播放,這是浪費帶寬。爲什麼不從XX秒開始緩衝?

這裏是我使用的代碼:

$("#jquery_jplayer_1").jPlayer({ 
     ready: function() { 
      $(this).jPlayer("setMedia", { 
      mp3: playList[0], 
      volume: CUR_VOL 
      }).jPlayer("play", 251); 
     }, 
     swfPath: "js", 
     supplied: "mp3", 
     errorAlerts: false 
     }); 

EDIT

我想要的答案爲避免第一XX秒的緩衝。

+0

你可以通過一個小緩衝區來避免這種情況(我不知道它是否是閃存的限制)。我前段時間在demad網站上製作了一段視頻,製作播放器的開發人員必須做一些很好的測試,才能在緩衝區大小上找到合適的平衡點,因爲緩衝區很小可能會導致低速連接出現問題。 – Augusto 2011-06-04 07:44:30

+0

我應該使用哪個屬性?我查閱了文檔,找不到任何設置緩衝值的選項。 – footy 2011-06-04 08:45:13

+0

對不起,我不知道在jplayer上使用什麼,因爲我們構建了一個自定義的視頻播放器。我只是想指出你可能的解決方案。 – Augusto 2011-06-05 00:04:17

回答

6

這是閃存polyfill,需要緩衝。不支持HTML5 <audio>的舊版瀏覽器會遇到此問題,而jPlayer閃回回退將用於此問題。

您的網絡服務器必須支持尋找流。

查看有關緩衝this jPlayer Google Group問題Seeking through a streamed MP3 file with HTML5 <audio> tag & https://groups.google.com/forum/#!topic/jplayer/irSrmN0aUSU的討論尋求和Accept-Ranges頭。

編輯:我已經做了一些挖掘這個問題&hellip;儘管我很抱歉我還沒有最終答案。

首先,jPlayer Development Guide詳細說明.mp3 files and the Accept-Ranges header的問題。如果您使用Chrome,則實際上可以看到Accept-Ranges請求和響應標題 - 如果按F12並選擇Network選項卡。點擊.mp3文件,您可以檢查標題。好消息是,看起來好像你的服務器確實支持Accept-Ranges標頭。但是,它仍然不能解釋爲什麼有時需要首先緩衝下載。

我認爲你應該從簡單演示開始,沒有閃光燈支持和一個單一的.mp3。您的播放列表是隨機生成的,因此很難確定問題是否僅限於某些文件。另外,我使用了jPlayer Inspector,它可以給出jPlayer的詳細統計數據,這可能有助於診斷問題。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> 
    <script src="jQuery.jPlayer.2.0.0/jquery.jplayer.min.js" type="text/javascript"></script> 
    <script src="jQuery.jPlayer.2.0.0/jquery.jplayer.inspector.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function(){ 
      $('#jplayer').jPlayer({ 
       ready: function() { 
        $(this).jPlayer('setMedia', { 
         mp3: 'mp3/example.mp3' 
        }); 
       }, 
       swfPath: 'not_a_valid_directory', 
       solution: 'html, flash', 
       supplied: 'mp3' 
      }); 

      $('#jplayer_inspector').jPlayerInspector({jPlayer:$('#jplayer')}); 

      $('#seeker').click(function() { 
       $('#jplayer').jPlayer('play', 20); 
       return false; 
      }); 
     }); 
    </script> 
</head> 
<body> 
<div id="jplayer"></div> 
<a href="#" id="seeker">Play 20s from start</a> 
<div id="jplayer_inspector"></div> 
</body> 
</html> 

您還可以更改演示代碼上面包括:

swfPath: 'jQuery.jPlayer.2.0.0', 
solution: 'flash, html', 

在jPlayer構造強制閃光成爲默認播放器。

+0

嗨,我沒有使用舊的瀏覽器。最新的Chrome/Opera/IE全部緩衝它們。請檢查我的播放器在這裏部署... www.uttarakhandradio.com在任何瀏覽器...它仍然緩衝...有點新和學習如何檢查我的服務器是否支持這種緩衝或不?我正在使用一個必須可以流式傳輸的mp3文件嗎? – footy 2011-06-09 15:54:58

+0

我會看看您的網站。 – andyb 2011-06-10 09:37:20

+0

謝謝。你可以請那麼做。歡呼聲:) – footy 2011-06-12 02:14:56