как автоматически воспроизводить аудиоэлемент в наблюдателе - PullRequest
0 голосов
/ 07 мая 2020

Я знаю, что есть похожие темы, но я пробовал многие ответы

Получил тот же результат; когда я открываю свой проект, звук воспроизводится автоматически, что я хочу. но при обновлении страницы звук не воспроизводится. и я получил это сообщение об ошибке;

DOMException: play() failed because the user didn't interact with the document first

У меня есть такой обозреватель rx js;

this.alertLastChat$.subscribe((lastChat) => {
          if (lastChat.state == "continuing") {
            this.audioCallingPlay()
          }
        });

если состояние чата продолжается, он автоматически запускает воспроизведение звука. поэтому я хочу сделать просто звуковой сигнал

this.audioCallingPlay () функция;

 audioCallingPlay() {
    let audioCalling = <HTMLMediaElement>(
      document.getElementById("audioCalling")
    );

    let playPromise = audioCalling.play();
    if (playPromise !== undefined) {
      playPromise
        .then(() => {
          // Automatic playback started!
          // this.audioCalling.nativeElement.pause()
        })
        .catch((error) => {
          console.log("The play() Promise rejected!");
          console.log("Use the Play button instead.");
          console.log(error);
        });
    }
  }

Я получил коды от введите здесь описание ссылки

my template;

<audio id="audioCalling" src="/assets/TelephoneRing.mp3" ></audio>

в элементе audio я попытался добавить отключение звука, автовоспроизведение с разными типами. но не работает.

когда это не работает

Я попытался создать аудиообъект в компоненте

const audio = new Audio();
audio.src = "file_name.mp3";
audio.play();

вышеуказанные коды работают в простых javascripts, но в angular Я получил упомянутую ошибку.

...