Поиск через переданный потоком файл MP3 с HTML5 <аудио> тег

Попробуйте это регулярное выражение:

^[0-9]+([.][0-9]{1,2})?$

Объяснение :

  • ^ устанавливает позицию в начале строки
  • Соответствует одиночному символ, присутствующий в списке ниже [0-9] +
  • + Квантор - соответствует от одного до неограниченного количества раз, столько раз, сколько возможно, возвращая по мере необходимости (жадный) 0-9 один символ в диапазоне от 0 (индекс 48) до 9 (индекс 57) (с учетом регистра)
  • 1-я группа захвата ([.] [0-9] {1,2})?
  • ? Квантификатор - соответствует от нуля до одного раза, столько раз, сколько возможно, возвращая при необходимости (жадный)
  • Соответствует одному символу, присутствующему в списке ниже [.] , соответствует персонажу. буквально (с учетом регистра)
  • Соответствует одному символу, представленному в списке ниже [0-9] {1,2} {1,2} Квантор - соответствует от 1 до 2 раз столько раз, сколько возможно, возвращая по мере необходимости (жадный)
  • 0-9 один символ в диапазоне от 0 (индекс 48) до 9 (индекс 57) (с учетом регистра)
  • $ утверждает позицию в конце строки

Рабочий пример: https://regex101.com/r/iRaRPX/1/

Он проверит все целые и десятичные числа до двух десятичных знаков. Вы можете изменить это в соответствии с вашими требованиями.

25
задан Aurélien Gasser 17 December 2015 в 19:19
поделиться

6 ответов

Убедитесь, что сервер принимает запросы Range, вы можете проверить, есть ли в заголовке Accept-Ranges. В jPlayer это распространенная проблема в браузерах Webkit (особенно в Chrome), когда речь идет о прогрессе и поиске функциональности.

Возможно, вы не используете jPlayer, но информация об ответе сервера на официальном веб-сайте может оказаться полезной.

http://www.jplayer.org/latest/developer-guide/#jPlayer-server-response

6
ответ дан 28 November 2019 в 22:00
поделиться

Отправляете ли вы диапазоны принятия ( RFC 2616, раздел 14.5) заголовок ответа?

1
ответ дан 28 November 2019 в 22:00
поделиться

но у меня была такая же проблема. Необходимо установить несколько заголовков для ответа медиа файла.

как пример:

Accept-Ranges:bytes
Content-Length:7437847
Content-Range:bytes 0-7437846/7437847

Тогда аудио тег сможет искать

1
ответ дан 28 November 2019 в 22:00
поделиться

Из того, что я понимаю, вы хотите, чтобы проигрыватель позволял пользователю переходить к частям аудио / видео, которые еще не буферизовались, что-то вроде того, что делают плееры Vimeo / YouTube. Но я не уверен, что это так. возможно, так как я рассмотрел некоторые примеры медиальных элементов html5, и они просто не позволяли мне искать небуферизованные части: (

Если вы хотите просмотреть буферизованную часть - тогда это не так. проблема. На самом деле - насколько я понимаю, вы создаете проблему для себя здесь. Вы хотите передавать файл в потоковом режиме, и это заставляет игрока думать, что у вас есть какой-то прямой эфир. Если вы просто отправил файл напрямую - у вас не возникло бы этой проблемы, потому что проигрыватель сможет начать воспроизведение до того, как загрузит весь файл.Это отлично работает как с аудио, так и с видео элементами, и я подтвердил такое поведение в обоих Chrome и FF:)

Надеюсь, это поможет!

-1
ответ дан 28 November 2019 в 22:00
поделиться

Возможно, этот пример html5 audio player объяснит и продемонстрирует нам новый элемент и его методы .load, .play, .currentTime и т. Д.

Я использую массив элементов и, конечно, могу установить позицию currentTime. мы также можем использовать обработчики событий (например, «загруженные данные»), чтобы подождать, прежде чем разрешить поиск.

пингуй и веселись с html5:)

-1
ответ дан 28 November 2019 в 22:00
поделиться

посмотрите здесь http://www.scottandrew.com/pub/html5audioplayer/ , я использовал это, и он воспроизводится во время загрузки файла. бит для буфера, но затем воспроизводится. Никогда не пробовал искать, но я бы начал с попытки установить "aud.currentTime" в его коде, если это возможно.

Удачи

3
ответ дан 28 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: