Я пытался создать сайт, который воспроизводит аудиофайлы, которые хранятся удаленно (и не являются общедоступными).Я воспроизводил аудио следующим образом:
- Получить аудио с сервера через XMLHttpRequest
- Сохранить это аудио в BLOB-объекте
- Воспроизвести аудио с помощью Howler.js
Я выполняю это с помощью следующего кода:
//Get the audio file from the API
var request = new XMLHttpRequest();
request.addEventListener("load", loadMusic);
request.responseType = "blob";
request.open("GET", root+"getmusic/"+path);
request.send();
//Function that catches the data, and plays the audio
function loadMusic(data) {
var objectUrl = window.URL.createObjectURL(data.currentTarget.response);
var howler = new Howl({
autoplay: true,
src: [objectUrl],
format: ["mp3"]
});
howler.play();
}
Это прекрасно работает в моих настольных браузерах Chrome, Safari и Firefox (воспроизведение аудио).Однако при открытии страницы на моем телефоне (iPhone 6s, iOS) в iOS Safari или в мобильной версии Chrome звук не воспроизводится, и я не получаю никаких ошибок в консоли разработчика, чтобы дать мне подсказкуотносительно того, почему.Что меня больше всего озадачивает, так это то, что он работает в браузере моего компьютера, а не в мобильной среде.
Есть ли способ это исправить?Или маршруты отладки, которые я должен использовать?
Некоторая дополнительная информация:
- Пользователь должен нажать кнопку, чтобы загрузить / запустить аудио, чтобы они взаимодействовалисначала с DOM.
- Аудио файлы в формате mp3.