Добрый день, уже неделю не могу решить проблему. Разрабатываю веб версию для радио-приложения на Vue.js, у нас есть live stream
https://stream.rovr.live/live+05 на котором 24/7 играет поток. В качестве плеера использую объект new Audio(), при получении ответа с сервера создаю плеер (функция createPlayer) и в src передаю эту ссылку. Есть кнопка PlAY/STOP, Что бы быть UP TO DATE с потоком, при нажатии на на PlAY я заново загружаю источник с помощью метода load(), и после запускаю воспроизведение. Проблема в том что есть ощутимая задержка между нажатием на кнопку PLAY и началом воспроизведения, пробовал и preload = 'none' и 'auto' и 'metadata', не помогло, пробовал прослушивать на события canplay и canplaythrough, тоже не помогло. iOS Разработчик которой уже сделал приложение (у него работает все как надо) говорит что решил это путем отключения буферизации, но в вебе я не нашел этому альтернативы.
Вот код компонента Player.vue:
<!-- eslint-disable vue/valid-template-root -->
<template></template>
<script setup>
import { ref, watch } from 'vue';
import { usePlayerStore } from '@/stores/player';
const player = ref(null);
const playerStore = usePlayerStore();
// При успешном ответе с сервера и валидной ссылке на поток строю плеер
watch(() => playerStore.stream_url, (state) => {
if (state) createPlayer();
});
watch(() => playerStore.isPlaying, (state) => {
state ? play() : stop();
});
const createPlayer = () => {
player.value = new Audio(playerStore.stream_url);
}
const play = () => {
player.value.load(playerStore.stream_url);
player.value.play();
}
const stop = () => {
player.value.pause();
}
</script>
Буду рад если сможете помочь :)