Не очень хорошо, если вы положили весь файл в память, я знаю, что в настоящее время у каждого есть тонны памяти, но подумайте, есть ли в файле несколько ГБ журналов или что-то в этом роде.
Лучше всего скопировать его строку по строке в новый файл, чем удалить первый или что-то подобное
У меня были некоторые проблемы с проигрыванием аудио, тем более, что Chrome обновил это, пользователь должен взаимодействовать с документом сначала.
Однако почти через все решения я нашел, то, что код JS должен активно установить слушателей (например, нажатия кнопок) для получения пользовательских событий для проигрывания аудио.
В моем случае я просто хотел, чтобы моя игра играла BGM, как только плеер взаимодействует с ним, таким образом, я сделал меня простым слушателем, который продолжает проверять, взаимодействуется ли веб-страница или нет.
const stopAttempt = setInterval(() => {
const audio = new Audio('your_audio_url_or_file_name.mp3');
const playPromise = audio.play();
if (playPromise) {
playPromise.then(() => {
clearInterval(stopAttempt)
}).catch(e=>{
console.log('' + e);
})
}
}, 100 )
С требованиями к защите, которые пользователь должен взаимодействовать с веб-страницей для аудио, которому позволят, это - то, как я делаю это, на основе чтения многих статей, включая на этом сайте
, поскольку все звуковые файлы "игрались" на том же OnClick, можно теперь играть их любое время в игре без ограничений
Примечание, которые для лучшей совместимости не используют wav файлы, MS не поддерживают их
Использование mp3 и ogg, который покрывает все устройства
Пример:
<audio id="welcome">
<source src="URL/welcome.ogg" type="audio/ogg">
<source src="URL/welcome.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
повторение по мере необходимости для всего аудио в игре
Затем:
document.getElementById("welcome").play();
document.getElementById("welcome").pause();
повторение по мере необходимости кроме не приостанавливает аудио, которое Вы хотите услышать, когда игра запускается
Вот решение на 2020 год, когда Вы видите ошибку:
<час>[Ошибка] Необработанное Отклонение Обещания: NotSupportedError: операция не поддерживается. (анонимная функция) rejectPromise игра (анонимная функция) (testaudio.html:96) отправка (jquery-3.4.1.min.js:2:42577)
<div onclick="new Audio('/assets/test.mp3').play()">aaa</div>
не является гладкой и думает ох, что это - старая школа oclick
, я просто перемещу это ниже на страницу к моему jQuery или моему внешнему файлу JavaScript. Нет. Это должно быть onclick
.