Браузер iOS (любой) не будет воспроизводить звуки пользовательского интерфейса, инициированные пользовательскими событиями - PullRequest
0 голосов
/ 16 февраля 2019

Я пробовал несколько хаков там, но ни один не работает.Я пробовал на Chrome, Safari и Firefox работать на iOS, но все звуки беззвучны.Вот код для моей библиотеки sounds.js, который я использую во всех своих веб-приложениях:

// Sounds
var silenceEle;
var sndDir = "/sounds/";
var sndSilence = sndDir + "silence.wav";
var sndIntro = sndDir + "intro.wav";
var sndType = sndDir + "type.wav";
var sndAlert1 = sndDir + "alert1.wav";
var sndAlert2 = sndDir + "alert2.wav";
var sndAlert3 = sndDir + "alert3.wav";
var sndDing = sndDir + "ding.wav";
var sndButton = sndDir + "button.wav";
var sndMessage = sndDir + "message.wav";
var sndError = sndDir + "error.wav";
var sndSuccess = sndDir + "success.wav";
var sndSlide = sndDir + "slide.wav";
var sndAHAHAH = sndDir + "nedry.wav";

$(document).ready(function () {
  silenceEle = document.createElement('audio');
  silenceEle.setAttribute('src', sndSilence);
  silenceEle.setAttribute('autoplay', true);
});

function playSound(snd)
{
  var old = document.getElementsByClassName('soundsJS');
  while (old[0])
  {
    old[0].parentNode.removeChild(old[0]);
  }
  var ele = document.createElement('audio');
  ele.setAttribute('src', snd);
  ele.setAttribute('autoplay', true);
  ele.setAttribute('class', 'soundsJS');
  silenceEle.play();
  ele.play();
}

Я также попытался поместить это в тело (вверху) моего HTML-шаблона:

<iframe src="/sounds/silence.wav" allow="autoplay" id="audio" style="display:none"></iframe>

Я читал об этом взломе в другом посте, но звуки не будут воспроизводиться.Я запускаю playSound() только когда пользователь инициирует событие (например, target.click()), но все равно ничего не будет воспроизводиться!Есть мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...