Я использую npm реагирующий проигрыватель для воспроизведения некоторых аудио и видео файлов в приложении реагирования. Я позволил пользователю переключать функцию автозапуска для звука.
const ReactPlayer = require('react-player').default;
const autoplay = true; // if user chose to enable autoplay
React.createElement(ReactPlayer, { playing: autoplay, url: 'some/audio.wav' })
Когда проигрыватель воспроизводится и начинает воспроизведение в браузере chrome android, он также запускает собственный проигрыватель android, (один доступен в области уведомлений os)
Оба проигрывателя синхронизированы c, но если проигрыватель браузера приостановлен, родной продолжается. Кроме того, если перетаскивать точку на временной шкале в проигрывателе браузера, они перестают синхронизироваться c и общаются друг с другом.
Самое смешное, что когда автозапуск не настроен, но пользователь должен вручную нажать кнопка, устанавливающая игровую опору на true
, собственные аудиопроигрыватели и элементы управления проигрывателя браузера влияют друг на друга, если в браузере приостанавливается обе паузы, если пауза в области уведомлений одновременно приостанавливается и остается синхронизированной c.
Как я могу это исправить?
Обновление:
Я не пробовал немного больше вокруг. Вместо установки playing
в значение true перед отображением компонента, я попытался получить элемент html в componentDidMount()
и использовать там функцию play()
. К сожалению, у него такое же поведение, что и при запуске двух отдельных игроков, которые со временем станут несинхронными.