Разрешить audio.play () в приложении safari для чата - PullRequest
0 голосов
/ 05 января 2019

Поскольку Apple отключила возможность автоматического воспроизведения звука через HTMLMedia​Element​.play() в javascript без взаимодействия с пользователем, я не уверен, как мне воспроизводить звук, когда пользователь получает сообщение в чате, прежде чем взаимодействовать с DOM после страница загружается.

socket.on("receive message", data => {
  const receiveSound = new Audio("1.mp3");
  messages.push(data);
  receiveSound.play();
});

Я попытался воспроизвести аудиоэлемент на событии mousemove. Я также попытался подделать click() через элемент ссылки Реакт, чтобы изначально активировать его. Ни одно из решений не сработало.

Есть ли способ автоматического воспроизведения аудиоэлемента, если поступает сообщение? Это должно быть возможно, поскольку YouTube может автоматически воспроизводить видео без взаимодействия.

Каждый раз, когда я пытаюсь воспроизвести звук, я получаю эту ошибку:

Unhandled Rejection (NotAllowedError): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
...