HTML Audio Tag получает ошибку - Аудио рендеринга в Chrome - PullRequest
0 голосов
/ 19 марта 2019

Я работаю над Angular Application, где пользователь может воспроизводить аудиофайлы.Для этого нам нужно получить файл как blob из api, а затем создать blobURL и присвоить его атрибуту src HTML Audio, но в chrome иногда (очень странно) он выдает следующую ошибку -

MediaError
    code: 3
    message: "AUDIO_RENDERER_ERROR: audio render error"

Если я попробую еще несколько раз, он воспроизводится, а затем все файлы воспроизводятся без ошибок.Кроме того, если я попытаюсь через некоторое время, он начинает играть без каких-либо ошибок.Работает нормально на Firefox.

Вот код, который получает аудио от API -

res.subscribe((audioData) => {
        this.unsafeBlobUrl = URL.createObjectURL(audioData);
        this.audio.nativeElement.addEventListener('error', onError);
        this.audio.nativeElement.addEventListener('ended', onEnded);
        this.audio.nativeElement.addEventListener('paused', onPaused);
        this.audio.nativeElement.addEventListener('canplay', canPlay);
      }, onError)

Вот код для воспроизведения аудио -

 const canPlay = () => {
      this.audio.nativeElement.play()
        .then(() => {
          this.isPlaying = true;
          this.isLoading = false;
          this.isError = false;
        })
        .catch(onError);
    };

1 Ответ

0 голосов
/ 19 марта 2019

Хорошо, я обнаружил проблему.

На самом деле, я инициализировал аудио-контекст несколько раз, что приводит к этой ошибке.

this.audioCtx = new (window.AudioContext || window.webkitAudioContext)();

Удаление этой строки спасло мне жизнь:)

...