@grande2k

Как отключить буферизацию у плеера проигрывающего live поток?

Добрый день, уже неделю не могу решить проблему. Разрабатываю веб версию для радио-приложения на 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>


Буду рад если сможете помочь :)
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы