Я работаю над 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);
};