バッファする必要があるのはフラッシュ ポリフィルです。HTML5 をサポートしていない古いブラウザーでは<audio>
、代わりに jPlayer フラッシュ フォールバックが使用されるため、この問題が発生します。
Web サーバーがストリームのシークをサポートしている必要があります。
シークとAccept-Rangesに関する議論については、HTML5 <audio> タグとhttps://groups.google.com/forum/#!topic/jplayer/irSrmN0aUSUを使用したストリーミング MP3 ファイルのバッファリングとシークに関するjPlayer Google グループの質問を参照してください。ヘッダー。
編集:私はこの問題を掘り下げました...まだ最終的な答えがなくて申し訳ありませんが。
まず、jPlayer 開発ガイドでは、.mp3
ファイルと Accept-Ranges ヘッダーの問題について詳しく説明しています。Chrome を使用している場合は、[ネットワークF12] タブを押して選択すると、Accept-Ranges 要求と応答ヘッダーが実際に表示されます。ファイルをクリックすると、ヘッダーを検査できます。良いニュースは、サーバーがAccept-Ranges ヘッダーをサポートしているように見えることです。ただし、ダウンロードを最初にバッファリングする必要がある場合がある理由はまだ説明されていません。.mp3
フラッシュをサポートせず、単一の.mp3
. プレイリストはランダムに生成されるため、問題が特定のファイルだけにあるのかどうかを判断するのは困難です。また、問題の診断に役立つ jPlayer の詳細な統計情報を提供できるjPlayer Inspectorを使用しました。
<!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 コンストラクターで、Flash を強制的にデフォルトのプレーヤーにします。