Как избежать задержки в конце при проигрывании аудиофайла?
Пишу небольшой тренажер для музыкантов в браузере:
Одновременно играют несколько аудиодорожек и синхронно со звуком бежит бегунок по нотному стану.
Своего рода Guitar Pro на минималках.
Дорожки проигрываются на репите.
Использую тег audio, обращаюсь к нему через JS.
Столкнулся с проблемой, что когда трэк доходит до конца, то возникает небольшая пауза перед переходом на начало.
Для утилитарного прослушивания музыки это нормально, но для музыкантов это проблема, т к они параллельно играют на музыкальном инструменте и паузы их сбивают.
Стал пробовать проигрывать этот трэк в других плеерах.
В VLC тоже эта задержка в конце тоже есть, а вот в Windows Media играет как надо, переход из конца в начало плавный.
Вопросы:
1) Как избавиться от этой задержки в конце при проигрывании в браузере
2) Возможно, есть уже готовые плееры такого назначения и можно не заморачиваться с написанием своего, а использовать готовое решение
(я просто проходил мимо)
Только задержка не в конце, а в начале. Закончить воспроизведение легко.
Представьте, что вы варите борщ. И он уже сварился, нужно завершить процесс, будет ли задержка? Конфорку выключили - и всё. А теперь вам нужно начать варить борщ. А у вас чистой кастрюли нет, картошку нужно чистить, капусту нужно шинковать... Короче, куча задержек... Нельзя начать варить борщ так же быстро, как закончить его варить. А что там насчёт воспроизведения, откуда задержка перед началом? Да нужно "помыть кастрюлю" - открыть файл и считать в оперативку первый кусок (или весь файл, если он маленький) для начала воспроизведения - вот и задержка.
а вот в Windows Media играет как надо
Мухлюет, зараза. Не закрывает ранее открытый файл. Использует то, что уже раньше считано в оперативку.
В VLC тоже эта задержка в конце тоже есть
VLC шибко честный, наверное. Ему труднее мухлевать, он кроссплатформенный.
Как избавиться от этой задержки в конце при проигрывании в браузере
Боюсь, что только средств JS может не хватить. Но я не фронтендер вообще, так что пусть вынесут вердикт профессионалы.
А плей-лист вы создать можете? И десять раз добавить в плей-лист один трек. Просто предложение в порядке бреда. А вдруг там в случае плей-листа предусмотрена магия упреждающего чтения (в некоторых плеерах бывает)? Не особо в это верю, ну а вдруг.
Как понимаю каждая дорожка проигрывается в своем проигрывателе? Тогда шаманить второй проигрыватель и при конце в первом, воспроизводить второй. При конце во-втором, воспроизводить первый.
Браузеры не предназначены для таких серьёзных целей, как тренажоры для музыкантов, многодорожечные трекеры, т к их (браузеров) первичная миссия отображать вебстраницы, ну ещё просто слушать музыку. Поэтому поведение аудио не идеально корректно в плане возможных задержек. Для музыкантов лучше использовать десктопные программы - Steinberg Cubase, Steinberg Nuendo и др.