Это флэш-полифил, который необходимо буферизовать. Старые браузеры, не поддерживающие HTML5 <audio>
, будут страдать от этой проблемы, поскольку вместо этого использовался резервный флэш-код jPlayer.
Ваш веб-сервер должен поддерживать поиск потока.
См. этот вопрос группы Google jPlayer о буферизации. и Поиск в потоковом MP3-файле с помощью HTML5 ‹audio› тег и https://groups.google.com/forum/#!topic/jplayer/irSrmN0aUSU для обсуждения поиска и Заголовки Accept-Ranges.
Изменить: Я немного разобрался в этой проблеме, но мне очень жаль, что у меня до сих пор нет окончательного ответа.
Во-первых, jPlayer Development Guide подробно описывает проблемы с _ 2_ файлы и заголовок Accept-Ranges. Если вы используете Chrome, вы действительно можете увидеть заголовок запроса и ответа Accept-Ranges - если вы нажмете F12 и выберете вкладку Сеть. Щелкнув файл .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, чтобы Flash стал проигрывателем по умолчанию.
person
andyb
schedule
09.06.2011