Я использую буфер AudioContext для воспроизведения звука, как только событие, основанное на php-сценарии отправленного сервером события, приходит к клиенту.
Звук отлично работает на настольных компьютерах и на большинстве мобильных устройств, но не работаетв iPhone Safary.
testiky.addEventListener('message', () => {
let audioCtx = new (window.AudioContext || window.webkitAudioContext)(); let xhr = new XMLHttpRequest();
xhr.open('GET', 'sooundsource.mp3'); xhr.responseType = 'arraybuffer';
xhr.send();
var event_source = new EventSource("eventsource.php");
event_source.addEventListener('message', function(e) { var sse_response = JSON.parse(e.data);
console.log(sse_response);
let playsound = (audioBuffer) => {
let source = audioCtx.createBufferSource();
source.buffer = audioBuffer;
source.connect(audioCtx.destination);
source.loop = false;
source.start();
setTimeout(function () {
playsound(audioBuffer);
});
};
audioCtx.decodeAudioData(xhr.response).then(playsound);
Пожалуйста, есть идеи, что изменить, чтобы звук воспроизводился и в iPhone?
Спасибо большое!