Хорошо, поэтому в течение последних нескольких дней я действительно боролся с этой проблемой.
Вот мой анализ и решение:
Короче говоря, проблема, которую я пытался решить:
Iзаметил, что проигрыватель HTML5 не прекращает загрузку, когда проигрыватель находится в режиме паузы (вообще, даже через разумное количество времени).Работая с аудиопотоком в режиме 24/7 и разрабатывая мобильный веб-сайт, я понял, что это далеко не оптимально для моих посетителей, учитывая высокое использование данных, если они оставляют сайт открытым - хотя я думаю, что некоторые операторы будут очень довольны, "пропуская""эта проблема ...
Просто чтобы прояснить, мне не особо важны файлы с фиксированной длиной.Загрузка полного файла - это в большинстве случаев функциональность, необходимая для просмотра онлайн-ресурсов (например, медленное соединение), поэтому я не пытался это предотвратить.
Анализ:
У аудиоэлемента HTML5 нет остановки (), а также у него нет опции, в которой вы можете указать объем данных, которые ему разрешено буферизовать, или способ сказать, что вы хотите, чтобы элемент прекратил буферизацию. Не путайте это с функцией preload, этоприменяется только к элементу до нажатия кнопки воспроизведения.
Понятия не имею, почему это так и почему эта функция недоступна.Если кто-то может объяснить мне, почему эти важные функции не реализованы в стандарте, который должен сделать веб-разработку для мобильных телефонов лучше и стандартизированнее, я хотел бы знать.
Решение:
Единственное работающее решение, которое яобнаружена реализация (своего рода) функции остановки в вашем аудиоэлементе следующим образом:
1. Пауза текущего проигрывателя - вы можете перехватить событие паузы на проигрывателе через audio.addEventListener ('pause', yourFunction);
2. Установите источник пустым - audio.src = "";
3. Загрузите src - audio.load ();
4. Удалите весь аудиоэлемент
5. Вставьте новыйАудиоэлемент HTML5 без определенного источника
6. Установите источник (источник, который был там в первую очередь) - audio.src = "url старого источника
7. Перезапустите событие паузы - audio.addEventListener ('pause ', current-function);
Полное введение нового аудиоплеера HTML5 необходимо для iOS. Просто сбросьте src и затем загрузите его, чтобы проигрыватель автоматическиoplay 'в моем случае ...
Для ленивых людей (включая jQuery):
var audio = $("audio").get(0);
audio.pause(0);
var tmp = audio.src;
audio.src = "";
audio.load();
$("audio").remove();
$("#audio-player").html("<audio controls preload='none'></audio>");<br>
audio = $("audio").get(0);
audio.src = tmp;
audio.addEventListener('pause', current-function);
Нажатие паузы приведет к тому, что ваш посетитель потеряет свое текущее местоположение в аудио /видео файл, и он начнется снова.У меня нет решения этой проблемы.Опять же, если вы имеете дело с прямой трансляцией, это решение должно подойти.
Надеюсь, это поможет.