Попробуйте это регулярное выражение:
^[0-9]+([.][0-9]{1,2})?$
Объяснение :
Рабочий пример: https://regex101.com/r/iRaRPX/1/
Он проверит все целые и десятичные числа до двух десятичных знаков. Вы можете изменить это в соответствии с вашими требованиями.
Убедитесь, что сервер принимает запросы Range, вы можете проверить, есть ли в заголовке Accept-Ranges
. В jPlayer это распространенная проблема в браузерах Webkit (особенно в Chrome), когда речь идет о прогрессе и поиске функциональности.
Возможно, вы не используете jPlayer, но информация об ответе сервера на официальном веб-сайте может оказаться полезной.
http://www.jplayer.org/latest/developer-guide/#jPlayer-server-response
Отправляете ли вы диапазоны принятия ( RFC 2616, раздел 14.5) заголовок ответа?
но у меня была такая же проблема. Необходимо установить несколько заголовков для ответа медиа файла.
как пример:
Accept-Ranges:bytes
Content-Length:7437847
Content-Range:bytes 0-7437846/7437847
Тогда аудио тег сможет искать
Из того, что я понимаю, вы хотите, чтобы проигрыватель позволял пользователю переходить к частям аудио / видео, которые еще не буферизовались, что-то вроде того, что делают плееры Vimeo / YouTube. Но я не уверен, что это так. возможно, так как я рассмотрел некоторые примеры медиальных элементов html5, и они просто не позволяли мне искать небуферизованные части: (
Если вы хотите просмотреть буферизованную часть - тогда это не так. проблема. На самом деле - насколько я понимаю, вы создаете проблему для себя здесь. Вы хотите передавать файл в потоковом режиме, и это заставляет игрока думать, что у вас есть какой-то прямой эфир. Если вы просто отправил файл напрямую - у вас не возникло бы этой проблемы, потому что проигрыватель сможет начать воспроизведение до того, как загрузит весь файл.Это отлично работает как с аудио, так и с видео элементами, и я подтвердил такое поведение в обоих Chrome и FF:)
Надеюсь, это поможет!
Возможно, этот пример html5 audio player объяснит и продемонстрирует нам новый элемент и его методы .load, .play, .currentTime и т. Д.
Я использую массив элементов и, конечно, могу установить позицию currentTime. мы также можем использовать обработчики событий (например, «загруженные данные»), чтобы подождать, прежде чем разрешить поиск.
пингуй и веселись с html5:)
посмотрите здесь http://www.scottandrew.com/pub/html5audioplayer/ , я использовал это, и он воспроизводится во время загрузки файла. бит для буфера, но затем воспроизводится. Никогда не пробовал искать, но я бы начал с попытки установить "aud.currentTime" в его коде, если это возможно.
Удачи